| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: http://svn.freepascal.org/svn/fpc/trunk@16684 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
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: http://svn.freepascal.org/svn/fpc/trunk@16683 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16682 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
| |
- 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: http://svn.freepascal.org/svn/fpc/trunk@16681 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16680 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
| |
- 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: http://svn.freepascal.org/svn/fpc/trunk@16679 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16675 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
| |
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: http://svn.freepascal.org/svn/fpc/trunk@16674 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16673 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16672 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
of tabstractrecorddef to implement generic arrays
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16671 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
implementation + 1 test
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16670 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
(interfaces,dispinterfaces,objclasses,...) to have type,var,const sections if regular object types don't have them. currently only objects, classes and records are allowed to have nested type,var,const sections.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16669 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
check that object has vmt. records don't have vmt so we can leave only one check there
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16668 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
don't have operator overloads now)
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16667 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
cleanup
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16666 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
targets matches one defined in Windows unit, so WinAPI function result can be used directly. Resolves #18346.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16665 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
| |
is_implicit_pointer_object_type() to better indicate the purpose of
that routine, and to avoid having to change its name every time
a new object type with this property is added
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16664 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
right.register for subn, because it may be constant
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16663 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16662 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16661 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
use explicit type conversion to tobjectdef in other places where current_objectdef is needed
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16660 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
used, change type of current_genericdef and current_specializedef to tabstractrecorddef for future use with generic records
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16659 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16658 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16653 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16652 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
disable pointer arithmetic in delphi mode by default (compatible with delphi), enable pointer arithmetic in fpc/objfpc modes as they had it enabled by default before, add has_pointer_math field to tpointerdef to allow pointer arithmetic with such pointer even if pointer math mode is off (delphi compatible) + tests
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16651 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
| |
unaryminus code (a.o., fixes compiler crash with test/terecs6 on
darwin/ppc32 under certain circumstances:
http://www.freepascal.org/testsuite/cgi-bin/testsuite.cgi?action=3&run1id=74027&run2id=74101&testfileid=3838 )
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16650 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
a hint
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16649 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
delphi and fpc both allows this constructions now
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16647 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
|
|
| |
only don't permit this to regular fields.
- remove testcurobject hack and perform a check only for regular fields
- move is_holded_by to interface and rename it to is_owned_by
- don't check static symbols in _needs_init_final because they always point to symbols registered on unit level
- don't check object type in id_type, read_named_type when we are looking for type of structure member - the only check will be performed for record/object fields now
+ tests
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16646 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16645 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
structure where this operator is declared
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16644 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16643 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
has more than 255 elements now
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16642 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16641 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
cannot be handled by compiler, increase ppu version because of node types change
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16640 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16637 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
operator for delphi only (for now) which works when explicit type conversion happens + extend test
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16636 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
needs inittable.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16635 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
| |
Dmitry Boyarintsev, mantis #17486)
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16634 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
|
| |
* generate add.w instead of add for thumb-2 in case one of the registers
is > r8
* add register interferences for the "add" instruction so the register
allocator can detect invalid instruction forms (even for assembler code)
* fixed error in thumb2.inc detected by the previous change
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16633 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
|
|
| |
types:
* Link rtti to ancestor by writing rtti of ancestor as a field of type tkObject and offset zero. This is a cheat from formal point of view (as it replaces inheritance with aggregation), but is fine for the intended purpose of representing memory layout. Now RTL can handle entire instance of descendant object, and such objects can be statically allocated without leaks.
* Bypass finalization in inherited object destructors, as the instance is now entirely finalized in outermost destructor.
+ test
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16632 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16630 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
| |
- extend tok2node array to store inline function number for the case when nodetype = inlinen, add Inc, Dec operators to array
- implement inline function support in isunaryoverloaded
- check for operator overload if Inc, Dec is not used for standard types
- extend test to check Inc,Dec operators
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16629 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16628 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
| |
- parse operator return type the same way as we parse function return type - which pushing structures into the symtable and allowing self references,
- this change allows class operators to have return type = structure where they are defined
- extend test to check LogicalNot operator which can be finally compiled now
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16627 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
| |
parser_e_only_methods_allowed and extended the meaning it has, don't allow class constructors to be declared outside the class/record + test
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16626 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
| |
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16625 3ad0048d-3df7-0310-abae-a5850022a9f2
|
|
|
|
|
|
|
|
|
| |
- add delphi operator tokens into token enum
- move optoken search from parse_proc_dec to parse_proc_head and add delphi operator name search
- map delphi operators to existent fpc operators and skip some delphi operators for now
- implement store operators in record symtable and search in it
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16624 3ad0048d-3df7-0310-abae-a5850022a9f2
|