florian
bce905b106
* give correct error locations for errors when specializing templates
...
* removed more germanisms
* better dumping of tokenbuf in ppudump
git-svn-id: trunk@5101 -
2006-10-30 23:28:06 +00:00
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
d27fda4b01
* fix rtti for overriden properties
...
git-svn-id: trunk@5079 -
2006-10-29 23:20:00 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
daniel
67851f6aba
+ arrayvar[l..h] now valid parameter for open array.
...
git-svn-id: trunk@5064 -
2006-10-29 17:45:09 +00:00
peter
71af18855e
* remove sym from ttype, we can now reference any def in any unit directly
...
git-svn-id: trunk@5063 -
2006-10-29 16:32:07 +00:00
peter
0f6355e805
* fix property overriding
...
git-svn-id: trunk@5045 -
2006-10-28 20:35:53 +00:00
daniel
de423ab5b0
+ stringvar[l..h] now valid parameter for open array of char.
...
git-svn-id: trunk@5038 -
2006-10-27 22:23:25 +00:00
daniel
2450f5a778
+ First working concept of open_array_procedure(Pbyte_var[0..9]);
...
git-svn-id: trunk@5028 -
2006-10-26 20:30:16 +00:00
Jonas Maebe
2dd6a91a9f
+ allow implicit type conversions of 4 byte integers to strings for
...
parameter matching in macpas mode
git-svn-id: trunk@4957 -
2006-10-18 18:14:54 +00:00
Jonas Maebe
5eedbdfde9
+ support for indexing 4-byte sized integers as array[1..4] of char in
...
macpas mode
git-svn-id: trunk@4955 -
2006-10-18 17:26:00 +00:00
Jonas Maebe
12c76ca1ce
+ support for "return" without return value in MacPas mode
...
git-svn-id: trunk@4933 -
2006-10-15 19:22:39 +00:00
florian
32c7ba29ea
* when calling an inherited methode by msg, any var parameters are compatible,
...
if somebody knows how to implement it better, feel free to do so
git-svn-id: trunk@4889 -
2006-10-13 19:15:00 +00:00
peter
d07f470b71
* remove ifdef fpc
...
git-svn-id: trunk@4819 -
2006-10-07 13:43:34 +00:00
Jonas Maebe
cd5b9245f9
+ support for bitsizeof() function
...
+ some small tests for it
git-svn-id: trunk@4590 -
2006-09-09 18:57:49 +00:00
Jonas Maebe
eccbc78e04
+ support for bitpacked arrays:
...
+ use {$bitpacking on/+} to change the meaning of "packed"
into "bitpacked" for arrays. This is the default for MacPas.
You can also define individual arrays as "bitpacked", but
this is not encouraged since this keyword is not known by
other compilers and therefore makes your code unportable.
+ pack(unpackedarray,index,packedarray) to pack
length(packedarray) elements starting at
unpackedarray[index] into packedarray.
+ unpack(packedarray,unpackedarray,index) to unpack
packedarray into unpackedarray, with the first
element being stored at unpackedarray[index]
* todo:
* "open packed arrays" and rtti for packed arrays are not
yet supported
* gdb does not properly support bitpacked arrays
git-svn-id: trunk@4449 -
2006-08-19 12:54:12 +00:00
peter
eb829ea21b
* store procdef messageinf in the ppu
...
git-svn-id: trunk@4386 -
2006-08-07 19:39:32 +00:00
peter
22657a363b
* pass context class to searchsym_in_class to fix the visibility
...
of protected members called from a named class in a child class
that also has the visibility for those protected members
git-svn-id: trunk@4384 -
2006-08-07 19:10:11 +00:00
Jonas Maebe
03302dc7c4
* fixed support for macpas & and | operators: they only work on booleans
...
now, and always perform short circuit boolean evaluation (also in {$b+})
git-svn-id: trunk@3745 -
2006-05-30 13:02:36 +00:00
daniel
4d37c919cc
* Internal implementations of get_frame, get_caller_frame and get_caller_addr.
...
Not yet activated.
git-svn-id: trunk@3517 -
2006-05-14 08:39:19 +00:00
florian
f7817b5669
+ parsing of variant dispatching
...
git-svn-id: trunk@3387 -
2006-04-30 17:53:53 +00:00
florian
9e00f894a9
+ support for unaligned function
...
git-svn-id: trunk@3350 -
2006-04-29 11:15:29 +00:00
Jonas Maebe
3bc040cc45
* count references to symbols accessed via properties (fixes bug #4826 )
...
git-svn-id: trunk@2959 -
2006-03-18 22:53:27 +00:00
Jonas Maebe
791be20f28
* committed wrong file in r2614 (ncal.pas instead of pexpr.pas)
...
git-svn-id: trunk@2616 -
2006-02-17 09:05:03 +00:00
peter
b967ae8307
* support @inherited <method> to get the methodpointer
...
of <method> in a parent class
git-svn-id: trunk@2526 -
2006-02-11 22:49:00 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
301042c824
* more check_hints fixes
...
git-svn-id: trunk@2445 -
2006-02-05 20:18:57 +00:00
Jonas Maebe
9fd4e98dad
* fixed displaying of hints such for procedures and functions
...
(and moved check_hints from pbase to htypechk)
git-svn-id: trunk@2417 -
2006-02-03 18:14:13 +00:00
peter
45176ea2a8
* split tstringtype for stringdef and stringconstnode
...
to prevent wrong typecasts
git-svn-id: trunk@2276 -
2006-01-13 17:20:27 +00:00
Jonas Maebe
5ccbeea1d3
+ support for "return x" as equivalent for "exit(x)" in macpas mode
...
git-svn-id: trunk@2042 -
2005-12-23 22:49:15 +00:00
peter
710ea0edf0
* fix enum support in vecn in symlists
...
git-svn-id: trunk@2035 -
2005-12-23 14:11:29 +00:00
peter
80fef1e8ad
* fix parsing of typecasts in type declarations
...
git-svn-id: trunk@2026 -
2005-12-22 12:21:06 +00:00
peter
95879fe8a7
* basic support for generic classes
...
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
peter
739ea825d4
* fix sizeof(array of const)
...
git-svn-id: trunk@1954 -
2005-12-15 08:58:45 +00:00
florian
350c886460
+ support exit();
...
git-svn-id: trunk@1802 -
2005-11-22 21:27:56 +00:00
peter
f1af7cfe8f
* generate implicit 0+<x> for +<x> expressions
...
git-svn-id: trunk@1556 -
2005-10-21 07:46:14 +00:00
peter
38993ae7e8
* support procvar^, with procvar returning a procvardef in tp/mac modes
...
git-svn-id: trunk@1477 -
2005-10-18 12:33:27 +00:00
florian
71b90d4d00
+ slice implemented
...
git-svn-id: trunk@1384 -
2005-10-15 16:48:27 +00:00
peter
d1d2b0e1a1
* function name doesn't call the function in macpas
...
git-svn-id: trunk@1376 -
2005-10-14 07:25:22 +00:00
peter
89297d2c39
* move all stabs ($ifdef gdb) code to dbgstabs
...
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +00:00
peter
edf553a223
* string constants are now array of char until
...
they are converted to a specific string type
git-svn-id: trunk@1254 -
2005-10-02 11:08:58 +00:00
peter
9cda65c4b0
* support for widestrings in tconstsym
...
* fix widestring writing for stringconstn
git-svn-id: trunk@646 -
2005-07-18 12:54:15 +00:00
florian
7cd67ea3f0
* node optimizer branch merged
...
* gotonode and gotolabel refactored
* -Nu added to enable for loop unrolling
git-svn-id: trunk@446 -
2005-06-19 17:42:10 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
michael
55e76063df
* Fix methodpointer copy from callnode to loadnode
2005-04-06 11:49:37 +00:00
florian
10df6ea0a2
* fpc_variant_get call fixed
2005-03-28 14:14:52 +00:00
florian
252fa84c62
+ compiler support for reading/writing of vararrays
2005-03-27 20:19:21 +00:00
peter
3f9d6ab32f
* add hint when passing an uninitialized variable to a var parameter
2005-03-25 22:20:18 +00:00
florian
eeaded577a
* fixed copy(dyn. array,...);
2005-03-05 16:37:28 +00:00
Jonas Maebe
d612918bb2
* fixed Lazarus compilation
2005-03-04 09:56:35 +00:00
Jonas Maebe
39a372756f
* properties can also be inherited/overridden
2005-03-04 07:46:36 +00:00
Jonas Maebe
7fb6b96aed
* fixed web bug #3738
2005-03-03 19:58:14 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
acc34b08cd
* fixed precedence of is-operator
2005-02-06 20:29:12 +00:00
peter
79c20ebf7d
* use val() for decoding integers
2005-01-20 17:05:53 +00:00
peter
537dcdde20
* don't allow properties in C style operators
2005-01-04 16:38:07 +00:00
peter
ced6bf20cd
* fix lineinfo for with blocks
2004-12-26 16:22:01 +00:00
peter
9c0be16488
implicit load of variants unit
2004-12-06 19:23:05 +00:00
peter
2b6456fe16
* procvar handling for tp procvar mode fixed
...
* proc to procvar moved from addrnode to typeconvnode
* inlininginfo is now allocated only for inline routines that
can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
peter
89b1b583c9
* ttempcreatenode.create_reg merged into .create with parameter
...
whether a register is allowed
* funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
peter
14d25d278b
mangledname setting moved to place after the complete proc declaration is read
...
import generation moved to place where body is also parsed (still gives problems with win32)
2004-11-17 22:21:35 +00:00
peter
e740a66636
* tparaitem removed, use tparavarsym instead
...
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
peter
6458bd0ce1
* tvarsym splitted
2004-11-08 22:09:58 +00:00
peter
d804452dcc
added checking for token=_ID after _POINT is parsed
2004-11-04 17:57:58 +00:00
peter
f02ebed09e
* support @labelsym
2004-11-01 15:32:12 +00:00
peter
916041c81c
* symlist typeconv for absolute fixed
2004-11-01 10:33:01 +00:00
peter
e7459f5466
* heap and heapsize removed
...
* checkpointer fixes
2004-10-25 15:38:41 +00:00
mazen
581b52422c
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
1bb51a2667
* all checking for visibility is now done by is_visible_for_object
2004-10-12 19:51:13 +00:00
peter
4a7e02d817
* cstyle operators with calln in the tree now use a temp
2004-10-12 14:35:47 +00:00
peter
2c9a986fa3
* fix crash with calling method pointer from class procedure
2004-08-25 15:58:36 +00:00
olle
98df0978e1
+ adding operators "|" and "&" for macpas
2004-07-05 23:25:34 +00:00
olle
ff36adb056
+ macpas style: exit, cycle, leave
...
+ macpas compiler directive: PUSH POP
2004-07-05 21:49:43 +00:00
peter
2769c9048c
* don't allow assigned(tobject) anymore, it is useless since it
...
is always true
2004-06-29 20:59:43 +00:00
michael
41655fe0ac
+ Patch from peter to fix typinfo for classes
2004-06-28 14:38:36 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
peter
b86f2c6a25
* methodpointer is loaded into a temp when it was a calln
2004-05-23 18:28:40 +00:00
florian
aa64bb4c2c
+ support for assigned(<dyn. array>) added
2004-05-16 15:03:48 +00:00
daniel
b721e5872c
* Prepare compiler infrastructure for multiple ansistring types
2004-04-29 19:56:36 +00:00
florian
e678705648
* small x86_64 fixes
2004-04-12 18:59:32 +00:00
peter
8d078ada18
* variant array support
2004-03-29 14:42:52 +00:00
peter
e46cdcea48
* constants ordinals now always have a type assigned
...
* integer constants have the smallest type, unsigned prefered over
signed
2004-03-23 22:34:49 +00:00
peter
c844c5a505
* procvar cleanup
2004-02-20 21:55:59 +00:00
peter
6faddb5e71
* constants are now parsed as 64bit for cpu64bit
2004-02-18 21:58:53 +00:00
daniel
b38d7f59f4
* Make better use of try_to_consume
2004-02-17 23:36:40 +00:00
peter
1e3875ad36
- fix rtti generation for properties containing sl_vec
...
- fix crash when overloaded operator is not available
- fix record alignment for C style variant records
2004-02-17 15:57:49 +00:00
peter
ecfbbeffc3
* renamed xNNbittype to xNNinttype
...
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
Jonas Maebe
b46b7ff792
* integrated hack from 1.0.x so we can parse low(int64) as int64 instead
...
of as double (in 1.0.x, it was necessary for low(longint))
2003-12-29 17:19:35 +00:00
peter
1260eed8fd
* again procvar fixes
2003-12-08 22:35:28 +00:00
peter
90a0c832e4
* Initialize() added
2003-11-29 16:19:54 +00:00
peter
2d08c072b5
* fix crash with exit() in a procedure
2003-11-29 14:49:46 +00:00
peter
353219a928
* typed address only used for @ and addr() that are parsed
2003-11-29 14:33:13 +00:00
peter
76f5fbd7db
* check paralength instead of assigned(left)
2003-11-10 19:11:39 +00:00
florian
bbf7300a0c
* Florian's culmutative nr. 1; contains:
...
- invalid calling conventions for a certain cpu are rejected
- arm softfloat calling conventions
- -Sp for cpu dependend code generation
- several arm fixes
- remaining code for value open array paras on heap
2003-11-07 15:58:32 +00:00
peter
25bf6452b4
* fixed calling classmethod for other object from classmethod
2003-11-06 15:54:32 +00:00
peter
1688a42f0d
* assigned(proc()) does not change the calln to loadn
2003-11-04 16:42:13 +00:00
peter
079e489b08
* absolute to object field supported, fixes tb0458
2003-10-28 15:36:01 +00:00
peter
56ebcd1249
* self is not a token anymore. It is handled special when found
...
in a code block and when parsing an method
2003-10-09 15:20:56 +00:00
florian
8fcfcc6606
* fixed constructor call in class methods
2003-10-09 15:00:13 +00:00
peter
95f132db3d
* set_varstate cleanup
2003-10-08 19:19:45 +00:00
peter
cedb10116c
* fix assigned(property)
2003-10-05 12:56:04 +00:00
peter
00801693bb
* protected visibility fixes
2003-10-02 21:13:46 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
8af51ea6d3
* locals and paras are allocated in the code generation
...
* tvarsym.localloc contains the location of para/local when
generating code for the current procedure
2003-09-23 17:56:05 +00:00
florian
f3e9e7a24f
* fixed web bug #2669
...
* cosmetic fix in printnode
* tobjectdef.gettypename implemented
2003-09-06 22:27:08 +00:00
florian
22f1ff8da4
* merged Wiktor's Watcom patches in 1.1
2003-09-05 17:41:12 +00:00
peter
cb16846e3b
* fixed static class check for properties
2003-08-23 22:29:51 +00:00
peter
17d7fb5a03
* allow typeof(self) in class methods
2003-08-23 18:41:52 +00:00
peter
6731abb0db
* fixed some reported bugs
2003-08-10 17:25:23 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
peter
dc64b1b54f
* don't set nf_member when loaded from with symtable
...
* allow static variables in class methods
2003-06-03 21:02:57 +00:00
peter
31286d02e6
* search defaulthandler only for message methods
2003-05-22 17:43:21 +00:00
peter
92ee1804b6
* removed selfpointer_offset, vmtpointer_offset
...
* tvarsym.adjusted_address
* address in localsymtable is now in the real direction
* removed some obsolete globals
2003-05-15 18:58:53 +00:00
peter
fcea95f596
* ifdef'd code that checked for failed inherited constructors
2003-05-13 20:54:39 +00:00
peter
05c05f2555
* failn removed
...
* inherited result code check moven to pexpr
2003-05-13 19:14:41 +00:00
peter
26d78ff5c9
* moved implicit exception frame from ncgutil to psub
...
* constructor/destructor helpers moved from cobj/ncgutil to psub
2003-05-11 21:37:03 +00:00
peter
15b0132f6f
* tloadnode does not support objectsymtable,withsymtable anymore
...
* withnode cleanup
* direct with rewritten to use temprefnode
2003-05-11 14:45:12 +00:00
peter
1a2eedd767
* self moved to hidden parameter
...
* removed hdisposen,hnewn,selfn
2003-05-09 17:47:02 +00:00
florian
9612e57805
* introduced defaultordconsttype to decribe the default size of ordinal constants
...
on 64 bit CPUs it's equal to cs64bitdef while on 32 bit CPUs it's equal to s32bitdef
+ added defines CPU32 and CPU64 for 32 bit and 64 bit CPUs
* int64s/qwords are allowed as for loop counter on 64 bit CPUs
2003-05-01 07:59:42 +00:00
peter
60978ba89c
* aktprocdef renamed to current_procdef
...
* procinfo renamed to current_procinfo
* procinfo will now be stored in current_module so it can be
cleaned up properly
* gen_main_procsym changed to create_main_proc and release_main_proc
to also generate a tprocinfo structure
* fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
peter
7f14891d66
* aktprocdef cleanup, aktprocdef is now always nil when parsing
...
a new procdef declaration
* aktprocsym removed
* lexlevel removed, use symtable.symtablelevel instead
* implicit init/final code uses the normal genentry/genexit
* funcret state checking updated for new funcret handling
2003-04-27 07:29:50 +00:00
peter
fe96aad6d6
* vo_is_result flag added for the special RESULT symbol
2003-04-26 00:33:07 +00:00
peter
f4b818fc1d
* removed funcretn,funcretsym, function result is now in varsym
...
and aliases for result and function name are added using absolutesym
* vs_hidden parameter for funcret passed in parameter
* vs_hidden fixes
* writenode changed to printnode and released from extdebug
* -vp option added to generate a tree.log with the nodetree
* nicer printnode for statements, callnode
2003-04-25 20:59:33 +00:00
peter
181da6423d
* firstaddr will check procvardef
2003-04-23 10:13:55 +00:00
peter
47489f2376
* firstpass uses expectloc
...
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +00:00
peter
d780263799
* default property also increased the reference count for the
...
property symbol
2003-04-11 15:49:01 +00:00
peter
5cff10dd1a
* fix tw2454
2003-04-11 14:50:08 +00:00
peter
750c3b315e
* fixed small mem leaks
2003-03-27 17:44:13 +00:00
peter
fe6518a49c
* allow more tokens instead of only semicolon after inherited
2003-03-17 18:55:30 +00:00
peter
830ea4e876
* support DefaultHandler and anonymous inheritance fixed
...
for message methods
2003-03-17 16:54:41 +00:00
peter
25d973ef16
* self fixes for static methods (merged)
2003-01-30 21:46:57 +00:00
peter
14f92fa36f
* Find the correct procvar to load when using @ in fpc mode
2003-01-16 22:12:22 +00:00
peter
00e2ee165b
* merged methodpointer fixes from 1.0.x
2003-01-15 01:44:32 +00:00
peter
ea989e01cc
* fixed tw2273
2003-01-14 23:48:09 +00:00
peter
23861a4e45
* tp procvar handling fix for tb0448
2003-01-12 17:51:42 +00:00
peter
a0fbe08d83
* remove a lot of code to support typen in loadn-procsym
2003-01-05 22:44:14 +00:00
peter
74cd4c01b2
* assigned(procvar) fix for delphi mode, fixes tb0430
2002-12-11 22:40:36 +00:00
carl
93d011d184
+ checking for symbols used with hint directives is done mostly in pexpr
...
only now
2002-11-30 11:12:48 +00:00
peter
67153fd9a1
* the never ending story of tp procvar hacks
2002-11-27 15:33:46 +00:00
peter
2e692659df
* fix for tw2178. When a ^ or . follows a procsym then the procsym
...
needs to be called
2002-11-26 22:58:24 +00:00
peter
f3fc72095f
* splitted defbase in defutil,symutil,defcmp
...
* merged isconvertable and is_equal into compare_defs(_ext)
* made operator search faster by walking the list only once
2002-11-25 17:43:16 +00:00
carl
05d86bbef8
* memory optimization with tconstsym (1.5%)
2002-11-22 22:48:10 +00:00
pierre
01af531efb
* commented check code tht was invalid in 1.1
2002-11-20 22:49:55 +00:00
peter
bc7a7ddb20
* fix crash with EXTDEBUG code
2002-11-18 18:34:41 +00:00
peter
aee4b7195a
* fix tw2209 (merged)
2002-11-18 17:48:21 +00:00
peter
a496dbe1ff
* pass proccalloption to ret_in_xxx and push_xxx functions
2002-11-18 17:31:54 +00:00
peter
9d0437f8aa
* support inherited; support for overload as it is handled by
...
delphi. This is only for delphi mode as it is working is
undocumented and hard to predict what is done
2002-10-05 00:48:57 +00:00