- store type parameter in parasymtable, push it to the symtablestack before parsing arguments and return type
- move procedure/function declaration parsing to procvar_dec subroutine
- don't skip parasymtable while searching types because they store type parameters now
- add TParaSymTable.ReadOnly field to prevent adding defs into symtable. Add defs to the parent symtable in this case (we are adding this symtable to stack to read type parameters only, add defs should go to parent in this case as it was before)
git-svn-id: trunk@16719 -
relocations for addr_pic_no_got references (do not go via the GOT)
* fixed code generator so that it generates addr_pic_no_got references
also for platforms that use the internal assembler (this will break linking
of some tests that check static data > 2GB on Linux/x86-64, but they were
already broken before as well because we don't use the "huge" x86-64
execution model)
* fixed x86-64 Linux syscall code to not expect GOT-based relocations for
the system unit's errno variable (it's an implementation-only variable)
git-svn-id: trunk@16717 -
- change id_type to single_type in readImplementedInterfacesAndProtocols to allow use of interface specializations inside class parent block
- change single_type boolean arguments to set, add stoParseClassParent option to that set
- move parse_generic variable assignment from parse_object_members to outer routine to setup it before parsing class parents
- return paticular generic in generate_specialization instead of undefineddef to pass class/interface checks inside parent class block
- add test for delphi mode
- modify tw11431 to be syntatically correct
git-svn-id: trunk@16706 -
- show array symtable
- support unicodestring
- don't read "Last VTable idx" field in case of interface - this entry is not stored in ppu
git-svn-id: trunk@16688 -
change is that it is now also allowed to specify an external name for
formal external class definitions, but if they are later mixed with
regular class definitions the external names have to match.
o because the "external" status of methods is now set while parsing the
class rather than afterwards, some procdir compatibility checks had to
be inlined because they only have to be performed for
* also adapted the syntax for external cppclasses in the same way
* fixed return type of NSObject.retainCount and NSObject.hash
(NSUInteger instead of cint)
* moved "patches" directory from cocoaint/src to cocoaint/utils/cocoa-skel
so they are used by the conversion script when re-parsing the headers
* updated Objective-C header parser script to
o use the new external class syntax
o not write inheritance information for root classes (NSObject, NSProxy)
o use internal translation tables for some conflicting method names that
are named specially in objcbase.pp
and updated parsed headers
* fixed rtl/inc/objcbase.pp and tests to conform to the new external class
syntax
git-svn-id: trunk@16684 -
by reference, and dereference the (hidden) pointer in the DW_AT_location
block. This solves problems with function parameters defined as 'var'
git-svn-id: trunk@16683 -
- add tarraysymtable to store generic type symbols
- process generic and specialize declarations similar to generic records and classes
- fix insert_generic_parameter_types to use def passed in argument instead of current_structdef because generic array type can't be assigned to the current_structdef variable
- increase ppu version because of arraydef changes
- tests
git-svn-id: trunk@16681 -
- allow pointermath for pchar, pwidechar, array[] of char and array[] of widechar without pointermath directive,
- don't check tpointerdef().has_pointer_math if this is not a tpointerdef
This fixes testsuite regression (tbs/tb0439.pp)
git-svn-id: trunk@16679 -
as a class-structure directly. Make sure that in this case:
- The size is the size of the structure, not the size of a pointer
- The (hidden) pointer is dereferenced
- The class is marked as unallocated when the (hidden) pointer is nil
git-svn-id: trunk@16674 -