Commit Graph

336 Commits

Author SHA1 Message Date
Jonas Maebe
7a66a12e63 * fix from Florian for init/final info of forward classes 2002-06-12 13:20:29 +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
70ff711f73 * mangledname rewrite, tprocdef.mangledname is now created dynamicly
in most cases and not written to the ppu
  * add mangeledname_prefix() routine to generate the prefix of
    manglednames depending on the current procedure, object and module
  * removed static procprefix since the mangledname is now build only
    on demand from tprocdef.mangledname
2002-04-19 15:46:01 +00:00
peter
4b2aa039e6 * allow oridinal labels again 2002-03-04 17:54:59 +00:00
florian
b60666ae1f + parasym to tparaitem added 2001-12-06 17:57:33 +00:00
peter
e37dbf904d * calling convention rewrite 2001-10-25 21:22:32 +00:00
marco
82465bc078 * Don't parse proc directives after type renaming of procvars 2001-10-24 10:26:53 +00:00
peter
7781fca6bd * read only typed const support, switch $J- 2001-10-20 20:30:20 +00:00
peter
17d6dded66 * interface 2 guid support
* guid constants support
2001-10-20 19:28:37 +00:00
peter
e417ee0e7f * fixed generation of rtti for virtualmethods 2001-10-20 17:20:13 +00:00
michael
387ad2c42e * realname updated for some hints
* realname used for consts,labels
2001-09-19 11:06:03 +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
peter
f88f6eb571 * rtti/init table updates
* rttisym for reusable global rtti/init info
  * support published for interfaces
2001-08-30 20:13:52 +00:00
peter
f86ce17588 + hint directive parsing support 2001-06-03 21:57:35 +00:00
florian
05cfc07952 * some more support for widechars commited especially
regarding type casting and constants
2001-05-08 21:06:30 +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
florian
64d7d5682e * applied several fixes to get the DD8 Delphi Unit compiled
e.g. "forward"-interfaces are working now
2001-04-04 21:30:42 +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
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
peter
e0a874dc4f * some realname updates for messages 2000-11-12 22:17:46 +00:00
peter
f39e236aa2 * allow far directive for pointer type declarations 2000-11-11 16:19:11 +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
e171f341a0 * moehrendorf oct 2000 rewrite 2000-10-14 10:14:45 +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
florian
6159f4535f + first implementation of Netware Module support, thanks to
Armin Diehl (diehl@nordrhein.de) for providing the patches
2000-09-11 17:00:22 +00:00
peter
bec1c5cdf9 * store strings with case in ppu, when an internal symbol is created
a '$' is prefixed so it's not automatic uppercased
2000-08-27 20:19:38 +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
8bd87aafd6 * don't allow forward class in separate type blocks for delphi (merged) 2000-08-20 15:01:17 +00:00
pierre
a39590e684 * fix go32v2 cycle problem 2000-08-17 09:17:19 +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
peter
25c495dd5a * put defaultpara values in parast and changed the name to
'def<Parameter name>'
2000-08-13 13:11:28 +00:00
peter
8352fb6d7d * support absolute refering to funcret (merged) 2000-08-13 08:42:59 +00:00
peter
227e983397 * first things for default parameters 2000-08-02 19:49:58 +00:00
peter
c5da6c53fd * merged fixes 2000-07-30 17:04:43 +00:00
michael
2949824a69 + Patch to 1.1 2000-07-14 05:11:48 +00:00
michael
665c1f6410 + patched to 1.1.0 with former 1.09patch from peter 2000-07-13 12:08:24 +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
pierre
74f131b173 * fix for bug #1023 2000-07-03 13:26:48 +00:00
pierre
36f461db33 * align all variants to same start address 2000-06-23 21:34:09 +00:00
peter
de1083a9ed * reset current_object_option when reading other symtables than
object declarations
2000-06-23 20:14:39 +00:00
peter
d55672bd95 * C record packing fixed to also check first entry of the record
if bigger than the recordalignment itself
  * variant record alignment uses alignment per variant and saves the
    highest alignment value
2000-06-18 18:11:32 +00:00
peter
69109b8234 * support procvar directive without ; before the directives 2000-06-11 06:59:36 +00:00
peter
14d248a322 * checking for dup id with para of methods fixed for delphi mode 2000-06-09 21:34:40 +00:00
pierre
28ce798307 + set vo_is_exported for vars 2000-06-02 21:18:13 +00:00
peter
8b260f5793 * symtable.insert changed to procedure 2000-06-01 19:14:09 +00:00
peter
9e61c134bb * fixed forward resolving with redefined types 2000-04-17 18:44:22 +00:00
peter
4a4a24b6e8 * log truncated 2000-02-09 13:22:42 +00:00
pierre
1eb30ec4e8 * bug #801 fixed 2000-01-20 12:29:02 +00:00
Jonas Maebe
edf419d5a7 * removed a lot of memory leaks when an error is encountered (caused by
procinfo and pstringcontainers). There are still plenty left though :)
2000-01-11 17:16:04 +00:00
peter
895c8b9efc * fixed memory leak with options, you must use StopOptions instead of
Stop
  * fixed memory leak with forward resolving, make_ref is now false
2000-01-10 11:14:19 +00:00
peter
e525797c51 * updated copyright to 2000 2000-01-07 01:14:18 +00:00
peter
903ac0f0dc * also check elementtype of arraydef for forwarddef 1999-12-10 10:04:21 +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
6297537f4b + allow exports in win32 executables 1999-11-29 15:18:27 +00:00
pierre
142ace2afc * better browser info 1999-11-09 23:43:08 +00:00
peter
23ca9de3b3 * esi_offset -> selfpointer_offset to be newcg compatible
* hcogegen -> cgbase fixes for newcg
1999-11-09 23:06:44 +00:00
peter
18c5e77444 * support absolute unit.variable 1999-11-09 12:58:29 +00:00
peter
0887060ff2 * truncated log to 20 revs 1999-11-06 14:34:16 +00:00
peter
503d5a1cfa * const parameter is now checked
* better and generic check if a node can be used for assigning
  * export fixes
  * procvar equal works now (it never had worked at least from 0.99.8)
  * defcoll changed to linkedlist with pparaitem so it can easily be
    walked both directions
1999-10-26 12:30:40 +00:00
peter
89b677a0ee * split type reading from pdecl to ptype unit
* parameter_dec routine is now used for procedure and procvars
1999-10-22 10:39:34 +00:00
florian
0dd2b51943 * problems with readln fixed: esi wasn't restored correctly when
reading ordinal fields of objects futher the register allocation
    didn't take care of the extra register when reading ordinal values
  * enumerations can now be used in constant indexes of properties
1999-10-21 16:41:37 +00:00
florian
fa19f0aa09 - removed the hcodegen use in the new cg, use cgbase instead 1999-10-14 14:57:51 +00:00
peter
e10d770cc3 * fixed stabs writting for forward types 1999-10-06 17:39:14 +00:00
peter
2d21165dd8 * removed objpasunit reference, tvarrec is now searched in systemunit
where it already was located
1999-10-03 19:44:41 +00:00
peter
ca15c4c4fb * class/record type forward checking fixed 1999-10-01 11:18:02 +00:00
peter
b444d6fbe8 * fixed forward checking within class/record 1999-10-01 11:15:57 +00:00
peter
532d85cd50 + procedure directive support in const declarations, fixes bug #232 1999-10-01 10:05:37 +00:00
peter
49fcd8aceb * forward type declaration rewritten 1999-10-01 08:02:45 +00:00
peter
6b1ab5eb31 * procinfo is now a pointer
* support for result setting in sub procedure
1999-09-27 23:44:46 +00:00
peter
2687d75c38 + constant pointer support which can happend with typecasting like
const p=pointer(1)
  * better procvar parsing in typed consts
1999-09-26 21:30:15 +00:00
peter
71f28ed588 * cs_create_smart instead of cs_smartlink
* -CX is create smartlink
  * -CD is create dynamic, but does nothing atm.
1999-09-20 16:38:51 +00:00
florian
863df30860 + rtti is now automatically generated for published classes, i.e.
they are handled like an implicit property
1999-09-15 22:09:15 +00:00
florian
e73862f10d * per default a property is stored, fixed 1999-09-14 11:09:08 +00:00
florian
c3b3c19887 + implemented creation of methodname/address tables 1999-09-12 14:50:50 +00:00
florian
02c2611b20 * bugs 593 and 607 fixed
* some other potential bugs with array constructors fixed
  * for classes compiled in $M+ and it's childs, the default access method
    is now published
  * fixed copyright message (it is now 1993-99)
1999-09-12 08:48:03 +00:00
florian
4c2361303c * some more fixes for stored properties 1999-09-10 20:57:33 +00:00
florian
a9d8bfa1f7 * some bug fixes (e.g. must_be_valid and procinfo.funcret_is_valid)
* most things for stored properties fixed
1999-09-10 18:48:00 +00:00
michael
118a99513d * Stored specifier for properties is now correctly parsed 1999-09-08 21:06:06 +00:00
peter
bd55afa666 * fixed double dispose of propsymlist 1999-09-02 09:23:51 +00:00
florian
860747346f * fixed writing of class rtti: vmt offset were written wrong 1999-09-01 13:44:56 +00:00
peter
2f95239feb * fixed crash when childof was nil 1999-08-26 21:17:39 +00:00
peter
8d9aa81d3a * hack to support property with record fields 1999-08-14 00:38:53 +00:00
peter
793b28882f * classes vmt changed to only positive addresses
* sharedlib creation is working
1999-08-09 22:19:46 +00:00
peter
cb8aeb3fd6 * V_Fatal=1, all other V_ are also increased
* Check for local procedure when assigning procvar
  * fixed comment parsing because directives
  * oldtp mode directives better supported
  * added some messages to errore.msg
1999-08-05 16:52:53 +00:00
Jonas Maebe
ace7ff6983 * all tokens now start with an underscore
* PowerPC compiles!!
1999-08-04 13:02:40 +00:00
florian
ca53eee67e * renamed i386asm and i386base to cpuasm and cpubase 1999-08-04 00:22:34 +00:00
peter
ed8eb13d59 * moved bitmask constants to sets
* some other type/const renamings
1999-08-03 22:02:29 +00:00
florian
7e74642b02 * modifications for the new code generator 1999-08-01 18:28:09 +00:00
peter
674e0cc879 * write .size also 1999-07-29 20:53:55 +00:00
peter
30be2bf063 * indirect type referencing is now allowed 1999-07-27 23:42:10 +00:00
peter
07bb58295b * alignment is now saved in the symtable
* C alignment added for records
  * PPU version increased to solve .12 <-> .13 probs
1999-07-23 16:05:18 +00:00
florian
35f636dea1 + resourcestring implemented
+ start of longstring support
1999-07-22 09:37:28 +00:00
peter
45bf051885 * merged 1999-07-16 10:04:32 +00:00
michael
e77400a181 + Fixed integer message table 1999-07-11 21:24:31 +00:00
florian
62cb5453d3 * a lot bug fixes:
- po_external isn't any longer necessary for procedure compatibility
     - m_tp_procvar is in -Sd now available
     - error messages of procedure variables improved
     - return values with init./finalization fixed
     - data types with init./finalization aren't any longer allowed in variant
       record
1999-07-06 21:48:09 +00:00
peter
b4a852e74b * merged 1999-07-05 20:22:08 +00:00
peter
f959158854 * merged 1999-07-02 13:02:24 +00:00
florian
497a3d3686 * use of is_ordinal checked: often a qword/int64 isn't allowed (case/for ...)
* small qword problems fixed
1999-06-30 22:16:19 +00:00
pierre
5f05d07dcb * previous wrong log corrected 1999-06-02 22:43:57 +00:00
pierre
35777a48a1 types.pas 1999-06-02 22:25:22 +00:00
peter
94c276ce8d * better checks for procvar and methodpointer 1999-06-01 19:27:47 +00:00
peter
cc0511a890 * @procvar is now always needed for FPC 1999-06-01 14:45:40 +00:00
peter
0b272f13c7 * removed oldasm
* plabel -> pasmlabel
  * -a switches to source writing automaticly
  * assembler readers OOPed
  * asmsymbol automaticly external
  * jumptables and other label fixes for asm readers
1999-05-27 19:43:55 +00:00
florian
6a652349de * hopefully the default property bug fixed 1999-05-21 20:08:22 +00:00
peter
bfed29ff8b * NEWLAB for label as symbol 1999-05-21 13:54:38 +00:00
pierre
6a0a1149c8 * better stabs line info for vars 1999-05-20 22:19:52 +00:00
florian
92f67c96fc * made source compilable with TP (too long line)
* default values for set properties fixed
1999-05-19 12:41:48 +00:00
peter
e8bf496ae8 * containsself fixes
* checktypes()
1999-05-18 14:15:18 +00:00
florian
8706cd801f * new temporary ansistring handling 1999-05-17 21:56:57 +00:00
peter
a47afc3857 * removed oldppu code
* warning if objpas is loaded from uses
  * first things for new deref writing
1999-05-13 21:59:19 +00:00
peter
baa08b8bab * fixed crash 1999-05-07 10:36:09 +00:00
florian
78d13ec796 * changes to compile it with Delphi 4.0 1999-05-04 21:44:30 +00:00
peter
611da2d24e * merged nasm compiler
* old asm moved to oldasm/
1999-05-01 13:23:57 +00:00
florian
d27b21891b * changes of Bruessel:
+ message handler can now take an explicit self
     * typinfo fixed: sometimes the type names weren't written
     * the type checking for pointer comparisations and subtraction
       and are now more strict (was also buggy)
     * small bug fix to link.pas to support compiling on another
       drive
     * probable bug in popt386 fixed: call/jmp => push/jmp
       transformation didn't count correctly the jmp references
     + threadvar support
     * warning if ln/sqrt gets an invalid constant argument
1999-04-28 06:01:54 +00:00
peter
884c517b18 * release storenumber,double_checksum 1999-04-26 13:31:24 +00:00
pierre
b5dc3cc64d + code for initialized vars in Delphi mode 1999-04-25 22:42:16 +00:00
peter
cb70b62a82 * storenumber works
* fixed some typos in double_checksum
  + incompatible types type1 and type2 message (with storenumber)
1999-04-21 09:43:28 +00:00
peter
d9e1c47d84 * fixes for storenumber 1999-04-17 13:16:19 +00:00
peter
cc9df8d478 * first things to store the symbol/def number in the ppu 1999-04-14 09:14:44 +00:00
pierre
5f410c2cd3 * all formaldefs are now a sinlge definition
cformaldef (this was necessary for double_checksum)
  + small part of double_checksum code
1999-04-07 15:31:12 +00:00
peter
6a802e85d7 * released valintern
+ deffile is now removed when compiling is finished
  * ^( compiles now correct
  + static directive
  * shrd fixed
1999-03-26 00:05:26 +00:00
peter
d0cb5a147a * fixed bugs 212,222,225,227,229,231,233 1999-03-24 23:16:42 +00:00
florian
706eedfedd * typecanbeforward wasn't always restored in object_dec which
sometimes caused strange effects
1999-03-22 22:10:25 +00:00
pierre
74719d1acf * bug0198 : call conventions for methods
not yet implemented is the control of same calling convention
    for virtual and child's virtual
  * msgstr and msgint only created if message was found
    who implemented this by the way ?
    it leaks lots of plabels !!!! (check with heaptrc !)
1999-03-05 01:14:23 +00:00
peter
c8f444b65f * ag386bin updates
+ coff writer
1999-02-25 21:02:16 +00:00
peter
e25d934e2f * small updates for ag386bin 1999-02-24 00:59:11 +00:00
florian
204c81bd98 + message directive for integers added 1999-02-22 23:33:29 +00:00
florian
3c576cce7d + first implementation of message keyword 1999-02-22 20:13:32 +00:00
peter
5befcfad1e * ag386bin doesn't use i386.pas anymore 1999-02-22 02:44:07 +00:00
pierre
696db29f84 * Reference specific bug in recompiling unit solved 1999-02-17 14:20:40 +00:00
peter
ad379bc2dd * fixed crash with forward declared class of ... 1999-01-25 20:13:48 +00:00
peter
fbfdeee09e * fixed constant strings > 255 chars 1999-01-19 12:17:00 +00:00
peter
f67fb1b0eb * error if upper<lower in array decl 1999-01-15 13:08:19 +00:00
peter
f8f66faad4 * fixed forwardpointer problem with multiple forwards for the same
typesym. It now uses a linkedlist instead of a single pointer
1999-01-14 21:49:58 +00:00
peter
6ee9d913cd + farpointer type
* absolutesym now also stores if its far
1998-12-30 22:15:45 +00:00
peter
c7230805a2 * fixed const s : ^string
* first things for const pchar : @string[1]
1998-12-15 17:16:00 +00:00
peter
1b369bb4bb + globtype,tokens,version unit splitted from globals 1998-12-11 00:02:37 +00:00
pierre
a1f1003555 * some range check bugs fixed (still not working !)
+ added DLL writing support for win32 (also accepts variables)
  + TempAnsi for code that could be used for Temporary ansi strings
    handling
1998-11-30 09:42:52 +00:00
peter
6df97708c1 * check for constants with array decl 1998-11-29 12:42:24 +00:00