Commit Graph

305 Commits

Author SHA1 Message Date
carl
6c2bede5a8 * second part bug report 1996 fix, testrange in cordconstnode
only called if option is set (also make parsing a tiny faster)
2002-09-07 12:16:03 +00:00
daniel
b0364566d1 * Make Tprocdef.defs protected 2002-09-03 16:26:26 +00:00
peter
98dd65b0f3 * inlining is now also allowed in interface
* renamed write/load to ppuwrite/ppuload
  * tnode storing in ppu
  * nld,ncon,nbas are already updated for storing in ppu
2002-08-18 20:06:23 +00:00
florian
e313bab4ff * first part of procinfo rewrite 2002-08-17 09:23:33 +00:00
Jonas Maebe
ad728f0267 - removed some superfluous "in_paras := true" statements 2002-08-01 16:37:47 +00:00
florian
eb2ca8d10f * rewrote the system handling 2002-07-26 21:15:37 +00:00
daniel
46b8ed0657 * Tried to make Tprocsym.defs protected. I didn't succeed but the cleanups
are worth comitting.
2002-07-23 09:51:22 +00:00
florian
59abf2555b * types.pas renamed to defbase.pas because D6 contains a types
unit so this would conflicts if D6 programms are compiled
  + Willamette/SSE2 instructions to assembler added
2002-07-20 11:57:52 +00:00
florian
31da813d1d * exit is now a syssym instead of a keyword 2002-07-16 15:34:20 +00:00
carl
e8451626f6 * longstring declaration now gives parser error since its not supported! 2002-07-06 20:18:02 +00:00
Jonas Maebe
f33ee551d7 * fixed web bug #1995 2002-06-12 15:46:14 +00:00
peter
06ebac4e27 * readded missing revisions 2002-05-18 13:34:04 +00:00
carl
21b3a10f02 + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c * removed old logs and updated copyright year 2002-05-14 19:34:38 +00:00
peter
4dcd96747e * moved entry and exitcode to ncgutil and cgobj
* foreach gets extra argument for passing local data to the
    iterator function
  * -CR checks also class typecasts at runtime by changing them
    into as
  * fixed compiler to cycle with the -CR option
  * fixed stabs with elf writer, finally the global variables can
    be watched
  * removed a lot of routines from cga unit and replaced them by
    calls to cgobj
  * u32bit-s32bit updates for and,or,xor nodes. When one element is
    u32bit then the other is typecasted also to u32bit without giving
    a rangecheck warning/error.
  * fixed pascal calling method with reversing also the high tree in
    the parast, detected by tcalcst3 test
2002-05-12 16:53:04 +00:00
peter
67ede1276b * add pinline unit that inserts compiler supported functions using
one or more statements
  * moved finalize and setlength from ninl to pinline
2002-04-23 19:16:34 +00:00
peter
6320530bdd * removed newn and disposen nodes, the code is now directly
inlined from pexpr
  * -an option that will write the secondpass nodes to the .s file, this
    requires EXTDEBUG define to actually write the info
  * fixed various internal errors and crashes due recent code changes
2002-04-21 19:02:03 +00:00
peter
8af460ac31 * using inherited; without a parent having the same function
will do nothing like delphi
2002-04-16 16:11:17 +00:00
carl
da8b01e708 + change unit use 2002-04-07 13:25:20 +00:00
Jonas Maebe
2965034fca * fixed web bug #1907
* fixed some other procvar related bugs (all related to accepting procvar
      constructs with either too many or too little parameters)
  (both merged, includes second typo fix of pexpr.pas)
2002-04-01 20:57:13 +00:00
Jonas Maebe
7fb55bf4e4 + a_loadfpu_* and a_loadmm_* methods in tcg
* register allocation is now handled by a class and is mostly processor
    independent (+rgobj.pas and i386/rgcpu.pas)
  * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
  * some small improvements and fixes to the optimizer
  * some register allocation fixes
  * some fpuvaroffset fixes in the unary minus node
  * push/popusedregisters is now called rg.save/restoreusedregisters and
    (for i386) uses temps instead of push/pop's when using -Op3 (that code is
    also better optimizable)
  * fixed and optimized register saving/restoring for new/dispose nodes
  * LOC_FPU locations now also require their "register" field to be set to
    R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
  - list field removed of the tnode class because it's not used currently
    and can cause hard-to-find bugs
2002-03-31 20:26:33 +00:00
peter
935bb2185a * fixed sizeof(TClass) to return only 4 2002-03-01 14:08:26 +00:00
peter
190ead04c0 * more fixes for protected handling 2002-02-03 09:30:03 +00:00
peter
0c96d4406b * more checks for private and protected 2002-01-29 21:25:22 +00:00
peter
fd2ad837e2 * implicit result variable generation for assembler routines
* removed m_tp modeswitch, use m_tp7 or not(m_fpc) instead
2002-01-24 18:25:48 +00:00
peter
5cdb7cc52b * removed getprocvar, use only getprocvardef 2002-01-06 21:47:32 +00:00
peter
60d2ddbbd5 * protected/private symbols parsing fixed 2001-12-31 16:59:41 +00:00
florian
b60666ae1f + parasym to tparaitem added 2001-12-06 17:57:33 +00:00
florian
9f9c1700b0 * variant paramter passing and functions results fixed 2001-11-14 01:12:44 +00:00
peter
887f6ba34c * removed obsolete chainprocsym and test_procsym code 2001-11-02 23:16:50 +00:00
peter
d2e1952377 * procsym definition rewrite 2001-11-02 22:58:00 +00:00
peter
ac400051bd * allow assignment of overloaded procedures to procvars when we know
which procedure to take
2001-10-28 17:22:25 +00:00
marco
7215d46735 * Make new/dispose system functions instead of keywords 2001-10-24 11:51:39 +00:00
peter
075b5188ee * better support for indexed properties 2001-10-21 13:10:50 +00:00
peter
cb06c9bcb8 * array access for properties added 2001-10-21 12:33:05 +00:00
peter
17d6dded66 * interface 2 guid support
* guid constants support
2001-10-20 19:28:37 +00:00
Jonas Maebe
daa7693b45 * property parameters are now fully parsed by the firstcall code to
check for the correct amount and types (merged)
2001-10-18 16:30:38 +00:00
peter
915b5cd7a9 * split constsym.value in valueord,valueordptr,valueptr. The valueordptr
is used for holding target platform pointer values. As those can be
    bigger than the source platform.
2001-09-02 21:18:28 +00:00
florian
9746f4c2d6 * some cg reorganisation
* some PPC updates
2001-08-26 13:35:06 +00:00
florian
032023f8de * some interfaces related problems regarding
mapping of interface implementions fixed
2001-08-22 21:16:20 +00:00
peter
81200dc9ef * funcret moved from tprocinfo to tprocdef 2001-08-06 21:40:46 +00:00
peter
db87f86f00 * Length made internal
* Add array support for Length
2001-07-09 21:15:40 +00:00
Jonas Maebe
77a99eecdf * fixed inconsistent handling of procvars in FPC mode (sometimes @ was
required to assign the address of a procedure to a procvar, sometimes
    not. Now it is always required) (merged)
2001-06-29 14:16:57 +00:00
peter
d7eb8e1e6b * fixed tp procvar support in parameters of a called procvar
* typenode cleanup, no special handling needed anymore for bt_type
2001-06-04 18:16:42 +00:00
peter
04be6d3ced * parse const after .. using bt_const block to allow expressions, this
is Delphi compatible
2001-06-04 11:45:35 +00:00
peter
d997613a11 * allow typenodes for typeinfo and typeof
* tp procvar fixes for properties
2001-05-19 21:15:53 +00:00
peter
be05f2b65b * fixed crash with auto dereferencing 2001-05-19 12:23:59 +00:00
peter
13877f29b2 * removed unused allow_type 2001-05-09 19:52:51 +00:00
florian
3c5793d8c6 * some Delphi incompatibilities fixed:
- out, dispose and new can be used as idenfiers now
     - const p = apointerype(nil); is supported now
  + support for const p = apointertype(pointer(1234)); added
2001-05-04 15:52:03 +00:00
peter
af5d6e60e7 * moved more code from pass_1 to det_resulttype 2001-04-14 14:07:10 +00:00
peter
ff4ee28066 * fpc mode now requires @ also when left of assignment is an procvardef 2001-04-13 23:50:24 +00:00
peter
a7cf57524e * symtable change to classes
* range check generation and errors fixed, make cycle DEBUG=1 works
  * memory leaks fixed
2001-04-13 01:22:06 +00:00
peter
b193bf7df3 * remove unnecessary calls to firstpass 2001-04-04 22:43:50 +00:00
peter
4e2655cdc5 * resulttype rewrite 2001-04-02 21:20:29 +00:00
peter
d8abf76f6b * getsym redesign, removed the globals srsym,srsymtable 2001-03-11 22:58:49 +00:00
peter
32b9cdb7cf + new tlinkedlist class (merge of old tstringqueue,tcontainer and
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
peter
1103739912 * cardinal const expr fix from jonas 2000-12-19 20:36:03 +00:00
peter
4df5f03ca7 * fixed static variables 2000-12-17 14:00:18 +00:00
Jonas Maebe
0a70f9b06e * only return int64's from functions if it int64funcresok is defined
+ added int64funcresok define to options.pas
2000-12-15 13:26:01 +00:00
michael
62950eb5c5 + Fix from Peter 2000-12-15 12:13:52 +00:00
Jonas Maebe
c91a23c27d * new constant handling: from now on, hex constants >$7fffffff are
parsed as unsigned constants (otherwise, $80000000 got sign extended
    and became $ffffffff80000000), all constants in the longint range
    become longints, all constants >$7fffffff and <=cardinal($ffffffff)
    are cardinals and the rest are int64's.
  * added lots of longint typecast to prevent range check errors in the
    compiler and rtl
  * type casts of symbolic ordinal constants are now preserved
  * fixed bug where the original resulttype wasn't restored correctly
    after doing a 64bit rangecheck
2000-12-07 17:19:42 +00:00
florian
b9796f6a7f * unused units removed from uses clause
* some changes for widestrings
2000-11-29 00:30:30 +00:00
florian
68c1a1e3e6 * System.TypeInfo fixed
+ System.Finalize implemented
  + some new keywords for interface support added
2000-11-09 17:46:54 +00:00
peter
8df98007d6 * more fixes to get make cycle working 2000-11-06 20:30:54 +00:00
florian
51527ba1c9 + merged Attila's changes for interfaces, not tested yet 2000-11-04 14:25:19 +00:00
peter
451723647e * symtable splitted, no real code changes 2000-10-31 22:02:46 +00:00
peter
8e4f77b0a5 * fixed crash with call from type decl which is not allowed (merged) 2000-10-26 23:40:54 +00:00
florian
f80c24177a * a lot of changes:
- basic dyn. array support
     - basic C++ support
     - some work for interfaces done
     ....
2000-10-21 18:16:11 +00:00
peter
e171f341a0 * moehrendorf oct 2000 rewrite 2000-10-14 10:14:45 +00:00
peter
38951f5ce1 * lot of compile updates for cg11 2000-10-01 19:48:23 +00:00
peter
5218af7926 * delphi compile fixes 2000-09-24 21:19:48 +00:00
peter
a71e44ac49 * use defines.inc 2000-09-24 15:06:10 +00:00
peter
4c94659743 * moved some util functions from globals,cobjects to cutils
* splitted files into finput,fmodule
2000-08-27 16:11:48 +00:00
peter
90fc8a53aa * auto derefence mode for array pointer (merged) 2000-08-20 15:12:49 +00:00
peter
7eaac1706d * splitted namedobjectitem.next into indexnext and listnext so it
can be used in both lists
  * don't allow "word = word" type definitions (merged)
2000-08-16 18:33:53 +00:00
florian
244fc53520 + support of 64 bit integer constants 2000-08-16 13:06:06 +00:00
peter
4549ef44e1 * merges from fixes 2000-08-04 22:00:50 +00:00
michael
650fbb86aa + removed logs 2000-07-13 11:32:24 +00:00
michael
e7aca136a1 + Initial import 2000-07-13 06:29:38 +00:00
peter
2ce33303a3 * support for inherited; only 2000-06-14 16:52:42 +00:00
pierre
7b1219536c + support for NOT overloading
+ unsupported overloaded operators generate errors
2000-06-05 20:41:17 +00:00
pierre
6433e1d8c2 tok2node moved to htypechk unit 2000-06-02 21:22:56 +00:00
peter
d75bbf8b73 * fixed crash with inherited with varsym/propsym 2000-03-23 15:56:59 +00:00
peter
797267fde1 * protected member check for classes works 2000-03-19 11:22:21 +00:00
pierre
e0cc4f9bed + oppower 2000-03-16 15:13:03 +00:00
pierre
34795ccd60 * - 1**4 = -1 fix 2000-03-14 15:50:19 +00:00
Jonas Maebe
0ab87d5ed8 * modifications to make the compiler functional when compiled with
-Or
2000-02-13 14:21:50 +00:00
peter
4a4a24b6e8 * log truncated 2000-02-09 13:22:42 +00:00
florian
6c3bbb7915 * corrected wrong error message of a member of a class/object/classref wasn't found 2000-01-19 22:41:58 +00:00
peter
99fe175be6 * added st_default stringtype
* genstringconstnode extended with stringtype parameter using st_default
    will do the old behaviour
2000-01-09 23:16:05 +00:00
peter
e525797c51 * updated copyright to 2000 2000-01-07 01:14:18 +00:00
pierre
6d8f8ef3f9 * web bug769 fix 1999-12-20 21:24:29 +00:00
peter
d3b404c1a4 * fixed bug #698
* removed some notes about unused vars
1999-12-01 12:42:31 +00:00
peter
0512ba80fb + ttype, tsymlist 1999-11-30 10:40:42 +00:00
pierre
b528749138 * Notes/Hints for local syms changed to
Set_varstate function
1999-11-18 15:34:44 +00:00
pierre
62da9bd4c0 * Notes/hints changes 1999-11-17 17:04:58 +00:00
pierre
94f418dc11 + one field added for ttoken record for operator
linking the id to the corresponding operator token that
    can now now all be overloaded
  * overloaded operators are resetted to nil in InitSymtable
    (bug when trying to compile a uint that overloads operators twice)
1999-11-15 17:52:59 +00:00
peter
8cbc068314 * fixed crash with an errordef 1999-11-14 15:57:35 +00:00
florian
7265215469 * problem with "index X"-properties solved
* typed constants of class references are now allowed
1999-11-08 14:02:16 +00:00
florian
917bf5b071 * previous fix for 517 was imcomplete: there was a problem if the property
had only an index
1999-11-07 23:21:30 +00:00