Commit Graph

530 Commits

Author SHA1 Message Date
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
peter
fdb8d828a6 + nil constants 1998-11-13 10:18:09 +00:00
peter
3037445491 * released useansistring
* removed -Sv, its now available in fpc modes
1998-11-05 12:02:30 +00:00
pierre
1dfbb756e9 * classes get a vmt allways
* better error info (tried to remove
    several error strings introduced by the tpexcept handling)
1998-10-27 13:45:25 +00:00
florian
eadcc6ad1a * new introduded problem with classes fix, the parent class wasn't set
correct, if the class was defined forward before
1998-10-26 22:58:16 +00:00
peter
c65b618cfb * procvar parsing updated just like psub.pas routine 1998-10-25 23:31:18 +00:00
florian
d666ac848e + ansistring operator +
+ $h and string[n] for n>255 added
  * small problem with TP fixed
1998-10-21 08:39:56 +00:00
peter
309ac0b4cb * fixed object(unknown) crash 1998-10-20 13:09:13 +00:00
pierre
a5f0168fbb * wrong stabs info corrected once again !!
+ variable vmt offset with vmt field only if required
    implemented now !!!
1998-10-19 08:54:53 +00:00
pierre
6b1fd26b42 * added vmt_offsets in destructors code also !!!
* vmt_offset code for m68k
1998-10-16 13:12:46 +00:00
pierre
d91210671d + added oo_hasconstructor and oo_hasdestructor
for objects options
1998-10-15 15:13:25 +00:00
peter
1468993242 * new style for m68k/i386 infos and enums 1998-10-13 13:10:08 +00:00
pierre
1b303e7447 * typo error for propertyparas dispose corrected 1998-10-09 12:07:49 +00:00
pierre
4073682c64 * still more memory leaks fixes !! 1998-10-09 11:47:45 +00:00
peter
47c808f95a * fixed memory leaks for do nothing source
* fixed unit interdependency
1998-10-08 13:48:40 +00:00
peter
3176cb83db * fixed set of bugs. like set of false..true set of #1..#255 and
set of #1..true which was allowed
1998-10-06 20:43:30 +00:00
peter
fb43998d8c * commited the wrong file :( 1998-10-05 22:43:35 +00:00
peter
4f0915d6e1 * fixed 161,165,166,167,168 1998-10-05 21:33:15 +00:00
peter
166faa64f6 * crash preventions 1998-10-05 13:57:13 +00:00
peter
c5039c8527 * better error message for unresolved forward types 1998-10-02 17:05:58 +00:00
peter
b56098e7e3 * fixed error msg with type l=<var>
* block_type bt_const is now set in read_const_dec
1998-10-02 09:23:24 +00:00
florian
2cd812215b * better error recovering 1998-09-30 07:40:33 +00:00
peter
d4ac5e456b + idtoken and only one token table 1998-09-26 17:45:30 +00:00
florian
16af381be8 * problems when calling class methods fixed 1998-09-25 00:04:00 +00:00
peter
8e85a889de + aktmodeswitches 1998-09-24 23:49:05 +00:00
pierre
9589f619d7 * browser bugfixes
was adding a reference when looking for the symbol
    if -bSYM_NAME was used
1998-09-23 15:38:59 +00:00
daniel
13fa23a76e * Memory leak fixed. 1998-09-21 13:24:44 +00:00
pierre
8aa4df4046 sizeof(TPOINT) problem 1998-09-17 13:41:16 +00:00
pierre
06104cdb46 * forward def are not put in record or objects
+ added check for forwards also in record and objects
  * dummy parasymtable for unit initialization removed from
  symtable stack
1998-09-09 11:50:52 +00:00
florian
29fe330347 * a lot of stuff fixed regarding rtti and publishing of properties,
basics should now work
1998-09-07 23:10:17 +00:00
florian
26dbc1a7ba + some stuff for property rtti added:
- NameIndex of the TPropInfo record is now written correctly
     - the DEFAULT/NODEFAULT keyword is supported now
     - the default value and the storedsym/def are now written to
       the PPU fiel
1998-09-07 19:33:20 +00:00
peter
12a80cf3dc * update smartlinking, uses getdatalabel
* renamed ptree.value vars to value_str,value_real,value_set
1998-09-07 18:45:52 +00:00
florian
e7f5a26700 * first fixes for published properties 1998-09-07 17:37:00 +00:00
peter
58c2d999f0 * updated some error messages 1998-09-04 08:41:36 +00:00
florian
66f6852b96 + rtti generation
* init table generation changed
1998-09-03 16:03:14 +00:00
peter
d66124cb2f + internal constant functions 1998-09-01 17:39:46 +00:00
peter
a705ddb599 * fixed array_dec when unknown type was used 1998-08-31 12:20:28 +00:00
peter
19c63e360f * removed warnings 1998-08-28 10:56:56 +00:00
pierre
27c439c940 * corrected mangling sheme :
cvar add Cprefix to the mixed case name whereas
    export or public use direct name
1998-08-25 13:09:25 +00:00
pierre
b94116497c * CDECL changed to CVAR for variables
specifications are read in structures also
  + started adding GPC compatibility mode ( option  -Sp)
  * names changed to lowercase
1998-08-25 12:42:36 +00:00
florian
544b4099f7 + rtti generation for classes added
+ new/dispose do now also a call to INITIALIZE/FINALIZE, if necessaray
1998-08-23 21:04:34 +00:00
pierre
a5e988f4d4 * more cdecl chagnes
- better line info
    - changes the definition options of a procvar
      if it is a unnamed type
1998-08-21 15:48:58 +00:00
peter
35c6030a1b + subrange types for enums
+ checking for bounds type with ranges
1998-08-19 00:42:39 +00:00
peter
2f9143310e + public is the same as export for c_vars
* a exported/public c_var incs now the refcount
1998-08-12 19:20:39 +00:00
peter
befed16714 * write extended to ppu file
* new version 0.99.7
1998-08-11 15:31:35 +00:00
peter
85c8a88cbe + localswitches, moduleswitches, globalswitches splitting 1998-08-10 14:49:33 +00:00
florian
9af86a2bf0 + better support for switch $H
+ index access to ansi strings added
 + assigment of data (records/arrays) containing ansi strings
1998-07-26 21:58:57 +00:00
florian
e770d0b0d2 * hex constants in numeric char (#$54#$43 ...) are now allowed
* there was a bug in record_var_dec which prevents the used
    of nested variant records (for example drivers.tevent of tv)
1998-07-20 22:17:15 +00:00
florian
ce8b39ae1f + ansi string constants fixed
+ switch $H partial implemented
1998-07-18 17:11:07 +00:00
peter
c9715847f6 * updated messages file 1998-07-14 21:46:38 +00:00
peter
1bffd4e290 * released NEWINPUT 1998-07-14 14:46:36 +00:00
peter
5e5e2fd78d * fixed ttypesym bug finally
* fileinfo in the symtable and better using for unused vars
1998-07-09 23:59:59 +00:00
peter
4ac8e5d18f + internal inc/dec 1998-06-25 14:04:17 +00:00
peter
3ea08ab259 * stricter var parsing like tp7 and some optimizes with directive
parsing
1998-06-24 12:26:45 +00:00
pierre
c248434392 * external name 'C_var';
export name 'intern_C_var';
    cdecl;
    cdecl;external;
    are now supported only with -Sv switch
1998-06-12 16:15:34 +00:00
pierre
390fc9063d * column problem hopefully solved
+ C vars declaration changed
1998-06-12 10:32:22 +00:00
pierre
5ad339b3d8 + added procedure directive parsing for procvars
(accepted are popstack cdecl and pascal)
  + added C vars with the following syntax
    var C calias 'true_c_name';(can be followed by external)
    reason is that you must add the Cprefix

    which is target dependent
1998-06-09 16:01:33 +00:00
pierre
1a44be1502 * fixes for inline for operators
* inline procedure more correctly restricted
1998-06-05 14:37:27 +00:00
peter
f66f837fc8 * m68k compiles
+ .def file creation moved to gendef.pas so it could also be used
    for win32
1998-06-04 23:51:26 +00:00
peter
d6268ae22f + wordbool,longbool
* rename bis,von -> high,low
  * moved some systemunit loading/creating to psystem.pas
1998-06-03 22:48:50 +00:00
florian
75f7938e27 * problem with sizes of classes fixed (if the anchestor was declared
forward, the compiler doesn't update the child classes size)
1998-06-03 22:14:16 +00:00
peter
f793c53486 * nicer error message when no id is used after var 1998-05-28 14:35:54 +00:00
peter
b3865ae063 + aktasmmode, aktoptprocessor, aktoutputformat
+ smartlink per module $SMARTLINK-/+ (like MMX) and moved to aktswitches
  + $LIBNAME to set the library name where the unit will be put in
  * splitted cgi386 a bit (codeseg to large for bp7)
  * nasm, tasm works again. nasm moved to ag386nsm.pas
1998-05-23 01:20:53 +00:00
pierre
c80de3be27 + UseTokenInfo now default
* unit in interface uses and implementation uses gives error now
  * only one error for unknown symbol (uses lastsymknown boolean)
    the problem came from the label code !
  + first inlined procedures and function work
    (warning there might be allowed cases were the result is still wrong !!)
  * UseBrower updated gives a global list of all position of all used symbols
    with switch -gb
1998-05-20 09:42:32 +00:00
peter
5e4c788be5 + $ifdef NEWPPU for the new ppuformat
+ $define GDB not longer required
  * removed all warnings and stripped some log comments
  * no findfirst/findnext anymore to remove smartlink *.o files
1998-05-11 13:07:53 +00:00
florian
a965360572 * problems with properties fixed
* crash fixed:  i:=l when i and l are undefined, was a problem with
    implementation of private/protected
1998-05-05 12:05:42 +00:00
florian
258d6968af + correct semantics of private and protected
* small fix in variable scope:
     a id can be used in a parameter list of a method, even it is used in
     an anchestor class as field id
1998-05-01 09:01:20 +00:00
florian
f700edae4d + basics for rtti implemented
+ switch $m (generate rtti for published sections)
1998-05-01 07:43:52 +00:00
pierre
a10c3e36bc * GDB works again better :
correct type info in one pass
  + UseTokenInfo for better source position
  * fixed one remaining bug in scanner for line counts
  * several little fixes
1998-04-30 15:59:39 +00:00
pierre
5cdd60cac8 + added some code for ansistring (not complete nor working yet)
* corrected operator overloading
  * corrected nasm output
  + started inline procedures
  + added starstarn : use ** for exponentiation (^ gave problems)
  + started UseTokenInfo cond to get accurate positions
1998-04-29 10:33:40 +00:00
florian
f956607284 * make it compilable with TP
+ small COM problems solved to compile classes.pp
1998-04-28 11:45:52 +00:00
peter
6fd535b87d + new scanner
* $makelib -> if smartlink
  * small filename fixes pmodule.setfilename
  * moved import from files.pas -> import.pas
1998-04-27 23:10:27 +00:00
florian
fd860db6c6 + some stuff to support method pointers (procedure of object) added
(declaration, parameter handling)
1998-04-10 21:36:55 +00:00
florian
768499730d * more fixes to get classes.pas compiled 1998-04-10 15:39:47 +00:00
florian
9c5d07fbba * small problems solved to get remake3 work 1998-04-09 23:02:14 +00:00
florian
50cbe1751e * problem with previous REGALLOC solved
* improved property support
1998-04-09 22:16:33 +00:00
florian
41301b806d * problem with new expr_type solved 1998-04-08 14:59:20 +00:00
florian
1d8165e4bc * correct error handling of virtual constructors
* problem with new type declaration handling fixed
1998-04-08 10:26:07 +00:00
florian
bc2d9f0a3f * bug0092, bug0115 and bug0121 fixed
+ packed object/class/array
1998-04-07 22:45:03 +00:00
peter
8b105d9697 * fixed the -Ss bug
+ warning for Virtual constructors
  * helppages updated with -TGO32V1
1998-04-05 13:58:35 +00:00
root
d1a1f501c8 Initial revision 1998-03-25 11:18:12 +00:00