Jonas Maebe
f35051f76e
- reverted r11719, there are still some problems with it
...
git-svn-id: trunk@11720 -
2008-09-07 12:45:08 +00:00
Jonas Maebe
632abdace8
* keep the syms that need to be checked for forward definitions in a
...
separate list, so that procsyms, constsym, varsyms etc are not checked
and so that every sym is checked only once (rather than at the end
of every type block). This makes parsing units with lots of declarations
much faster (e.g., compiling MacOSAll is now 2 to 3 times faster)
git-svn-id: trunk@11719 -
2008-09-07 12:24:57 +00:00
peter
6c586e4eca
* store specializations in globalsymtable for units, use localsymtable
...
for programs. this allows speciailizations to be done in the interface
part of the unit
* support tobject.typemember.typemember nesting for generics
* fix generic parameter checking when a typemember was created with the
type of a parameter
* known issue is nested specializations don't work yet because the token
replay can't handled nested replays yet
git-svn-id: trunk@11404 -
2008-07-18 23:30:44 +00:00
florian
ed9c7ceaea
* support deprecated for types
...
git-svn-id: trunk@11341 -
2008-07-07 17:59:48 +00:00
Almindor
62205d0346
* fix memory leaks in create_dwarf and types_dec procedures thanks to Giulio Bernardi's detailed report
...
git-svn-id: trunk@11236 -
2008-06-16 18:30:38 +00:00
Jonas Maebe
28bab3fb4f
- removed some unused variables
...
* fixed some (harmless) ptrint warnings
- removed some commented code in agppcmpw
* added one missing field in a typed constant in cp1251
git-svn-id: trunk@8081 -
2007-07-17 13:57:15 +00:00
Jonas Maebe
20a35f9701
* fixed public/export support for initialised variables/typed
...
constants (mantis #9113 )
git-svn-id: trunk@7772 -
2007-06-22 17:10:15 +00:00
daniel
9adb202a92
* Rework the constexprint to allow operations from low(int64) to high(qword).
...
+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
florian
7d3d64e2ec
* fixed #8156
...
git-svn-id: trunk@6101 -
2007-01-21 16:15:19 +00:00
pierre
31e650f98d
fix another memory leak
...
git-svn-id: trunk@6068 -
2007-01-19 05:43:40 +00:00
florian
11aa2b483e
* kicked ignore_equal, usage was wrong anyways
...
git-svn-id: trunk@5763 -
2006-12-31 00:48:52 +00:00
florian
28c5578976
* don't generate vmt for a generic
...
git-svn-id: trunk@5428 -
2006-11-19 22:07:28 +00:00
peter
9ae8e9fa21
* refactor tclassheader in tvmtbuilder and tvmtwriter
...
* fix rtti generation
* rtti is now written at the end of a module when all info is available,
this prevents some duplicate rtti entries cause by inheritance
git-svn-id: trunk@5363 -
2006-11-13 22:03:17 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
99309202bc
* don't try to generate rtti if the type has an error
...
git-svn-id: trunk@5271 -
2006-11-07 08:52:53 +00:00
peter
84a96d66de
* move rtti and vmt table generation into write_persistent_type_info
...
* call write_persistent_type_info also for typed consts in interface
git-svn-id: trunk@5239 -
2006-11-05 12:40:13 +00:00
peter
3cae449fda
* moved rtti to ncgrtti
...
git-svn-id: trunk@5219 -
2006-11-04 10:43:27 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
4c76107b98
* limited generics to records, classes, objects and interfaces
...
git-svn-id: trunk@5171 -
2006-11-02 09:48:17 +00:00
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
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
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
florian
ca6f992504
* enabled type and var keywords in objects for generics
...
git-svn-id: trunk@5062 -
2006-10-29 14:20:21 +00:00
florian
91434bd791
* fixed several dispinterface parsing related stuff
...
git-svn-id: trunk@3373 -
2006-04-29 21:39:21 +00:00
peter
e0a62c1bf2
Merged revisions 3009 via svnmerge from
...
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler
r3009 (peter)
* support public name for typed consts
git-svn-id: trunk@3043 -
2006-03-26 18:54:19 +00:00
peter
b7fe6797bf
Merged revisions 2921-2922,2925 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines
* pass ObjectWriter to ObjectOuput
........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines
* refactor asmdata
........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines
* add cfi to asmdata
* move asmlist, asmcfi, asmdata to own unit
........
git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
peter
38c0ae73da
Merged revisions 2775,2788-2789 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2775 | peter | 2006-03-05 22:43:30 +0100 (Sun, 05 Mar 2006) | 2 lines
* merge ppu changes to keep ppus the same
........
r2788 | peter | 2006-03-06 12:59:14 +0100 (Mon, 06 Mar 2006) | 2 lines
* Add TFPList and TFPObjectList
........
r2789 | peter | 2006-03-06 13:01:37 +0100 (Mon, 06 Mar 2006) | 2 lines
* fix powerpc
........
git-svn-id: trunk@2790 -
2006-03-06 12:04:44 +00:00
peter
785550d7e3
Merged revisions 2669,2673,2677,2683,2696,2699-2702,2704,2708,2712-2715,2718,2722-2723,2728-2730,2740,2769 via svnmerge from
...
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler
........
r2669 | peter | 2006-02-23 09:31:21 +0100 (Thu, 23 Feb 2006) | 2 lines
* add compiler dir
........
r2673 | peter | 2006-02-23 17:08:56 +0100 (Thu, 23 Feb 2006) | 2 lines
* enabled more code
........
r2677 | peter | 2006-02-24 17:46:29 +0100 (Fri, 24 Feb 2006) | 2 lines
* pe stub and headers
........
r2683 | peter | 2006-02-25 23:13:24 +0100 (Sat, 25 Feb 2006) | 2 lines
* section options cleanup
........
r2696 | peter | 2006-02-26 20:27:41 +0100 (Sun, 26 Feb 2006) | 2 lines
* fixed typecasts
........
r2699 | peter | 2006-02-26 23:04:32 +0100 (Sun, 26 Feb 2006) | 2 lines
* simple linking works
........
r2700 | peter | 2006-02-27 09:44:50 +0100 (Mon, 27 Feb 2006) | 2 lines
* internal linker script
........
r2701 | peter | 2006-02-27 12:05:12 +0100 (Mon, 27 Feb 2006) | 2 lines
* make elf working again
........
r2702 | peter | 2006-02-27 14:04:43 +0100 (Mon, 27 Feb 2006) | 3 lines
* disable dwarf for smartlinking with .a
* fix section start in new .a file
........
r2704 | peter | 2006-02-27 18:30:43 +0100 (Mon, 27 Feb 2006) | 2 lines
* stab section fixes
........
r2708 | peter | 2006-02-28 19:29:17 +0100 (Tue, 28 Feb 2006) | 2 lines
* basic work to merge stabs sections
........
r2712 | peter | 2006-02-28 23:17:48 +0100 (Tue, 28 Feb 2006) | 2 lines
* unload tmodules before linking
........
r2713 | peter | 2006-02-28 23:18:51 +0100 (Tue, 28 Feb 2006) | 2 lines
* fixed stabs linking
........
r2714 | peter | 2006-02-28 23:19:19 +0100 (Tue, 28 Feb 2006) | 2 lines
* show code and data size
........
r2715 | peter | 2006-02-28 23:25:35 +0100 (Tue, 28 Feb 2006) | 2 lines
* unload .stabs from objdata after it is merged
........
r2718 | peter | 2006-03-01 12:24:38 +0100 (Wed, 01 Mar 2006) | 3 lines
* memsize/datasize cleanup
* check for exports/resources when adding module to linker
........
r2722 | peter | 2006-03-03 09:12:20 +0100 (Fri, 03 Mar 2006) | 2 lines
* new TObjSymbol splitted from TAsmSymbol
........
r2723 | peter | 2006-03-03 14:08:55 +0100 (Fri, 03 Mar 2006) | 2 lines
* coff fixes after recent objsymbol changes
........
r2728 | peter | 2006-03-03 22:43:04 +0100 (Fri, 03 Mar 2006) | 2 lines
* fixed coff writer
........
r2729 | peter | 2006-03-04 01:10:32 +0100 (Sat, 04 Mar 2006) | 2 lines
* fix read-only opening
........
r2730 | peter | 2006-03-04 01:11:16 +0100 (Sat, 04 Mar 2006) | 2 lines
* Read edata from DLLs, basic work
........
r2740 | peter | 2006-03-04 21:13:43 +0100 (Sat, 04 Mar 2006) | 3 lines
* deletedef added
* don't remove defs from index when we are already clearing everything
........
r2769 | peter | 2006-03-05 21:42:33 +0100 (Sun, 05 Mar 2006) | 4 lines
* moved TObj classes to ogbase
* ObjSection.SymbolRefs and SymbolDefines list
* DLL importing
........
git-svn-id: trunk@2771 -
2006-03-05 21:10:37 +00:00
peter
092431bdd9
* fixed typecasts
...
git-svn-id: trunk@2697 -
2006-02-26 19:28:19 +00:00
peter
b1c66a106e
* more dup id fixes
...
git-svn-id: trunk@2465 -
2006-02-07 07:58:37 +00:00
peter
a59690b147
* make generic basics working again
...
git-svn-id: trunk@2458 -
2006-02-06 09:21:08 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
95879fe8a7
* basic support for generic classes
...
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +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
a3ab2053c9
* support multiple asmlabel types, renamed getlabel to
...
getjumplabel and added type para to getlabel for specific types
* moved lineinfo generation from assemble and aggas to dbgstabs
git-svn-id: trunk@1120 -
2005-09-18 21:16:10 +00:00
peter
375a5add80
* rename al_debug to al_typestabs
...
* first write al_typestabs before other sections
git-svn-id: trunk@1054 -
2005-09-06 06:32:26 +00:00
peter
05a628447f
* put typedconsts in own asmlist to prevent mixing
...
array and string data
* added al_rodata
* renamed tasmlist enum names to include al_ prefix
git-svn-id: trunk@899 -
2005-08-17 08:42:52 +00:00
Jonas Maebe
0bfe43e7cd
* fixed support for anonymous class/object definitions in macpas mode
...
git-svn-id: trunk@753 -
2005-07-26 10:11:39 +00:00
daniel
22e89e1a42
* Proof of concept: Support threadvars using segment registers.
...
git-svn-id: trunk@740 -
2005-07-24 21:06:23 +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
peter
3700aa1b80
* only write vmt of objects defined in static/global symtable
...
to prevent IE in make_mangledname
git-svn-id: trunk@542 -
2005-06-30 13:48:56 +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
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
e820bc93f2
* interface wrapper generation moved to cgobj
...
* generate interface wrappers after the module is parsed
2005-01-24 22:08:32 +00:00
peter
04c97cc129
* load jmp_buf_size from system unit
2005-01-20 16:38:45 +00:00
peter
87d2861f89
* fixes for win32 mangledname
2004-11-16 20:32:40 +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
mazen
581b52422c
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
6096fe0789
* use realname in error msg
2004-09-13 20:33:17 +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
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
florian
c65e094bba
+ implemented cdecl'd varargs on arm
...
+ -dCMEM supported by the compiler
* label/goto asmsymbol type with -dextdebug fixed
2004-03-20 20:55:36 +00:00
peter
abbd54f334
* stabs updates to write stabs for def for all implictly used
...
units
2004-03-08 22:07:46 +00:00
daniel
4e89e4be76
* Message system uses open arrays internally
...
* Bugfix for string handling in array constructor node
* Micro code reductions in pdecl.pas
2004-02-20 19:49:21 +00:00
daniel
7e3ad7e796
* No longer treat threadvar is normakl var if threading off
2004-02-17 19:37:16 +00:00
daniel
2835ed1b55
* Enable threadvars for all modes
2004-02-17 17:38:11 +00:00
peter
ee569d7817
* make extcycle is working again
2004-02-12 15:54:03 +00:00
peter
7b04fdec2e
* fix compilation without GDB
2004-02-11 19:59:06 +00:00
daniel
c22f863764
* Fix stabs generation problem reported by Jonas
2004-01-31 22:48:31 +00:00
daniel
862e121a0a
* Last steps before removal of aasmtai dependency in symsym can be
...
accomplished.
2004-01-31 18:40:15 +00:00
peter
1367e342db
* reg allocations for imaginary register are now inserted just
...
before reg allocation
* tregister changed to enum to allow compile time check
* fixed several tregister-tsuperregister errors
2003-12-15 21:25:48 +00:00
marco
9b3b94883b
* always generate RTTI patch from peter
2003-12-12 12:09:40 +00:00
peter
5090185909
* global property support for fpc modes
2003-12-10 16:37:01 +00:00
peter
9610911036
* don't give redefinition warning for forward classes
2003-11-12 15:48:48 +00:00
peter
6edadf3df5
* more proc directive for procvar fixes
2003-10-03 14:45:09 +00:00
peter
2bec6b14fc
* procvar directive parsing fixes
2003-10-02 21:13:09 +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
peter
b7d99ec934
* paraloc splitted in callerparaloc,calleeparaloc
...
* sparc calling convention updates
2003-07-02 22:18:04 +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
d7d14b0eca
* reset symbol for unique types
2003-04-01 16:17:15 +00:00
florian
07110d20f9
+ added proper support of type = type <type>; for simple types
2003-01-05 15:54:15 +00:00
peter
bbf8bddbb4
* unit loading changed to first register units and load them
...
afterwards. This is needed to support uses xxx in yyy correctly
* unit dependency check fixed
2002-12-29 14:57:50 +00:00
carl
6227991d96
- remove lower in hint
2002-12-05 19:27:40 +00:00
carl
6a52e7a9e5
- removed the invalid if <> checking (Delphi is strange on this)
...
+ implemented abstract warning on instance creation of class with
abstract methods.
* some error message cleanups
2002-11-25 18:43:31 +00:00
carl
60d17dbc01
* some small speed optimizations
...
+ added several new warnings/hints
2002-11-23 22:50:04 +00:00
carl
64655be168
* memory optimization (3-4%) : cleanup of tai fields,
...
cleanup of tdef and tsym fields.
* make it work for m68k
2002-11-17 16:31:55 +00:00
peter
edbd98176b
* made tasmsymbol.refs private (merged)
2002-11-15 16:29:30 +00:00
peter
41f6e26675
* removed df_unique flag. It breaks code. For a good type=type <id>
...
a def copy is required
2002-10-20 15:34:16 +00:00
peter
d27f79ae28
+ tobjectdef.members_need_inittable that is used to generate only the
...
inittable when it is really used. This saves a lot of useless calls
to fpc_finalize when destroying classes
2002-10-19 15:09:24 +00:00
peter
08c058037f
* only allow threadvar when threading switch is defined
2002-10-14 19:45:02 +00:00
florian
1665fc6a60
+ proper support of type <id> = type <another id>;
2002-10-06 12:25:04 +00:00
peter
a28f75ed03
* sym.insert_in_data removed
...
* symtable.insertvardata/insertconstdata added
* removed insert_in_data call from symtable.insert, it needs to be
called separatly. This allows to deref the address calculation
* procedures now calculate the parast addresses after the procedure
directives are parsed. This fixes the cdecl parast problem
* push_addr_param has an extra argument that specifies if cdecl is used
or not
2002-08-25 19:25:18 +00:00
carl
9da171faf2
+ stab register indexes for powerpc (moved from gdb to cpubase)
...
+ tprocessor enumeration moved to cpuinfo
+ linker in target_info is now a class
* many many updates for m68k (will soon start to compile)
- removed some ifdef or correct them for correct cpu
2002-08-12 15:08:39 +00:00
peter
425bb45ddc
* renamed current_library to objectlibrary
2002-08-11 14:32:25 +00:00
peter
ac71268ce6
* saving of asmsymbols in ppu supported
...
* asmsymbollist global is removed and moved into a new class
tasmlibrarydata that will hold the info of a .a file which
corresponds with a single module. Added librarydata to tmodule
to keep the library info stored for the module. In the future the
objectfiles will also be stored to the tasmlibrarydata class
* all getlabel/newasmsymbol and friends are moved to the new class
2002-08-11 13:24:10 +00:00
florian
e7a6cd18dd
* more fixes for the ppc
...
+ wrappers for the tcnvnode.first_* stuff introduced
2002-07-29 21:23:42 +00:00
peter
4285e99853
* internal linker
...
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
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
peter
b4045fe57e
+ support for dll variables
1998-11-28 16:20:48 +00:00
peter
162124d10c
* give error when string[0] decl is found
1998-11-27 14:34:41 +00:00
peter
dabc19f0ff
* H+ fixes
1998-11-17 10:40:15 +00:00
pierre
93620d84dd
* stackcheck removed for i386_win32
...
* exportlist does not crash at least !!
(was need for tests dir !)z
1998-11-16 11:28:57 +00:00
peter
59c75c7410
* fixes for ansistrings
1998-11-16 10:18:07 +00:00
pierre
274bce92b8
+ added -Se in Makefile cvstest target
...
+ lexlevel cleanup
normal_function_level main_program_level and unit_init_level defined
* tins_cache grown to A_EMMS (gave range check error in asm readers)
(test added in code !)
* -Un option was wrong
* _FAIL and _SELF only keyword inside
constructors and methods respectively
1998-11-13 15:40:12 +00:00