Commit Graph

452 Commits

Author SHA1 Message Date
Károly Balogh
eb01d935d3 - typo fix
git-svn-id: trunk@5397 -
2006-11-15 23:10:49 +00:00
yury
d8d25c2489 * fixed memory leaks in compiler.
git-svn-id: trunk@5369 -
2006-11-14 09:32:58 +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
13f359aa80 * resultname changed to pshortstring
git-svn-id: trunk@5295 -
2006-11-09 07:43:13 +00:00
florian
7781e842fc * varset support fixed
git-svn-id: trunk@5294 -
2006-11-08 22:48:44 +00:00
peter
e96b5f0152 * also use typename in rtti label for staticsymtable
git-svn-id: trunk@5291 -
2006-11-08 21:38:24 +00:00
florian
42a3ed4ac0 * copy savesize for procvardefs as well
git-svn-id: trunk@5282 -
2006-11-07 22:00:33 +00:00
florian
08f72e02f4 + copying of procedure variable defs
git-svn-id: trunk@5277 -
2006-11-07 19:20:12 +00:00
florian
a13d358f1e * first partially working implementation of variant com invoking
git-svn-id: trunk@5247 -
2006-11-05 15:34:15 +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
peter
136d3e8d46 * refactor implemented interfaces
git-svn-id: trunk@5134 -
2006-10-31 22:38:49 +00:00
peter
cb246eb781 * Remove dos,strings units, use SysUtils instead
* replace split* functions with Extract* functions
  * Add Directory caching

git-svn-id: trunk@5102 -
2006-10-30 23:29:35 +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
d27fda4b01 * fix rtti for overriden properties
git-svn-id: trunk@5079 -
2006-10-29 23:20:00 +00:00
peter
3078a1927f * remove ttype
* rename old ttype variables *type to *def
  * rename resulttypepass to pass_typecheck
  * rename pass_2 to pass_generate_code

git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
peter
d4d4309e44 * use unique symid and defid per module
git-svn-id: trunk@5061 -
2006-10-29 13:00:22 +00:00
florian
b64548e25c * cleaned up unnecessary code
git-svn-id: trunk@5057 -
2006-10-29 12:36:50 +00:00
tom_at_work
bfa4fc30cd * fix size calculation for packed arrays: it is not required to take alignment into account. Fixes tparray5 on 64 bit cpus
git-svn-id: trunk@5050 -
2006-10-28 22:27:57 +00:00
peter
0f6355e805 * fix property overriding
git-svn-id: trunk@5045 -
2006-10-28 20:35:53 +00:00
peter
8a0a27262e * mark hidden parameters with < > when printing parameter lists, only used
in EXTDEBUG mode

git-svn-id: trunk@4734 -
2006-09-26 19:47:43 +00:00
florian
569c4871fc + first batch of varset support, as long as packset isn't changed, it doesn't change anything
git-svn-id: trunk@4710 -
2006-09-24 14:40:11 +00:00
Jonas Maebe
3bb41dcf9a * fixed writing "packed" status of bitpacked records to ppu files.
Not sure how it ever worked, nor how exactly symtable ppu entries
    work -- but it's now stored with the recorddef (which also means
    that bitpacking is disabled currently for objects and classes,
    since they are based on tabstractrecorddef rather than trecorddef)

git-svn-id: trunk@4679 -
2006-09-21 20:39:36 +00:00
Jonas Maebe
1f42ee201b + support for bitpacked records, except for:
* rtti
    * typed constants

git-svn-id: trunk@4489 -
2006-08-23 15:44:13 +00:00
Jonas Maebe
37a9ce25d5 * fixed size of bitpacked arrays
git-svn-id: trunk@4488 -
2006-08-23 15:02:36 +00:00
florian
2228ec7fb0 * patch from C Western for #7232
git-svn-id: trunk@4481 -
2006-08-20 19:38:51 +00:00
florian
9e66674ff9 + first part of qwordbool implementation
git-svn-id: trunk@4462 -
2006-08-19 23:16:17 +00:00
florian
22146e2bcf * partial fix (not for 64 bit CPUs yet) for #5641 (tested only lower byte of result of object constructors)
git-svn-id: trunk@4455 -
2006-08-19 22:40:59 +00:00
Jonas Maebe
eccbc78e04 + support for bitpacked arrays:
+ use {$bitpacking on/+} to change the meaning of "packed"
      into "bitpacked" for arrays. This is the default for MacPas.
      You can also define individual arrays as "bitpacked", but
      this is not encouraged since this keyword is not known by
      other compilers and therefore makes your code unportable.
    + pack(unpackedarray,index,packedarray) to pack
      length(packedarray) elements starting at
      unpackedarray[index] into packedarray.
    + unpack(packedarray,unpackedarray,index) to unpack
      packedarray into unpackedarray, with the first
      element being stored at unpackedarray[index]
  * todo:
    * "open packed arrays" and rtti for packed arrays are not
      yet supported
    * gdb does not properly support bitpacked arrays

git-svn-id: trunk@4449 -
2006-08-19 12:54:12 +00:00
peter
4506394cfa * pass contextobjdef for visibility of methods. There are different
requirements for normal searching and for overloaded searching.
    For overloaded searching we need to have the context of the
    object where the overload is defined and not the current
    module

git-svn-id: trunk@4391 -
2006-08-07 21:12:38 +00:00
peter
eb829ea21b * store procdef messageinf in the ppu
git-svn-id: trunk@4386 -
2006-08-07 19:39:32 +00:00
chrivers
97e0ff4105 Added iioffset for _IMPLEMENTS. added iitype initializer
git-svn-id: trunk@4358 -
2006-08-06 00:50:06 +00:00
chrivers
d9eb4049e3 Added Interface implementation type specifier (var: iitype) to tobjectdef. Used for the implementation of "implements"-keyword
git-svn-id: trunk@4352 -
2006-08-05 20:05:40 +00:00
chrivers
aa783c2876 Cleanup for readability. timplementedinterfaces.searchintf() simplified, dummy-var renamed to mark it as such in tstoreddef.is_integrable
git-svn-id: trunk@4351 -
2006-08-05 20:04:55 +00:00
florian
887781a6b9 * experimental patch to fix #7187
git-svn-id: trunk@4281 -
2006-07-23 08:46:37 +00:00
Jonas Maebe
d75b19e484 * removed/conditionalised several unused variables
git-svn-id: trunk@4194 -
2006-07-14 19:44:54 +00:00
tom_at_work
f38dcb7145 * fixed wrong alignment on 64 bit cpus for rtti data for ordinals and enums if the cpu requires proper alignment
git-svn-id: trunk@3834 -
2006-06-09 21:01:57 +00:00
Jonas Maebe
e344ee3cd7 + support for register variables which contain records
git-svn-id: trunk@3580 -
2006-05-19 15:49:07 +00:00
peter
36a57726ac * always build deref info for localst
git-svn-id: trunk@3446 -
2006-05-07 09:01:21 +00:00
florian
2983b01109 * variant size must be 24 bytes on 64 bit platforms
git-svn-id: trunk@3441 -
2006-05-06 22:52:13 +00:00
florian
f7817b5669 + parsing of variant dispatching
git-svn-id: trunk@3387 -
2006-04-30 17:53:53 +00:00
florian
c81f34aeee + parsing of dispinterface properties
git-svn-id: trunk@3383 -
2006-04-30 14:29:16 +00:00
florian
06e7d4be7a + dispid parsing
git-svn-id: trunk@3378 -
2006-04-30 08:25:36 +00:00
florian
91434bd791 * fixed several dispinterface parsing related stuff
git-svn-id: trunk@3373 -
2006-04-29 21:39:21 +00:00
peter
ce58e15393 * fix coff section names to fix resourcestrings with
the external linker
  * create import libraries for dll imports, this uses
    the new objdata framework to generate the binary
    object files directly without needing an assembler pass
  * store import_dll and import_name in ppu
  * external linker uses import libraries
  * internal linker uses import info from symtables,
    no dlls are needed anymore

git-svn-id: trunk@3255 -
2006-04-17 20:48:22 +00:00
peter
0ec2921bbe * split newasmsymbol to refasmsymbol and defineasmsymbol
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
peter
95be416b9d * don't allow stringconst+integer
* change booleans in arraydef to set
  * set option in arraydef to indicate a constant string so
    a nicer type can be shown instead of array[0..x] of char

git-svn-id: trunk@3051 -
2006-03-27 07:22:02 +00:00
peter
9c6a296b86 * use shortint for alignments
* remove obsolete position check in tgobj, with the new alignment settings
    this is not possible anymore

git-svn-id: trunk@2984 -
2006-03-20 08:29:13 +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
Jonas Maebe
659d3e106d * fixed alignment of double, extended, int64 and qword on i386-darwin
git-svn-id: trunk@2870 -
2006-03-11 22:01:11 +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
Jonas Maebe
e5ebc40446 * fixed crash with loading overridden properties of forward-declared
classes from ppu files

git-svn-id: trunk@2758 -
2006-03-05 13:34:43 +00:00
Jonas Maebe
ec486f0238 * also change labels starting with L to _L on darwin/x86
git-svn-id: trunk@2725 -
2006-03-03 19:31:46 +00:00
Jonas Maebe
d5297b732e * make classrefdef regable
git-svn-id: trunk@2530 -
2006-02-12 14:29:17 +00:00
peter
232555904e * symtablestack cleanup and rewrite
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
Jonas Maebe
cd4df8a12c * don't endlessly recurse in tobjectdef.gettypename if we need
to get the typename of aktobjectdef

git-svn-id: trunk@2419 -
2006-02-03 18:43:38 +00:00
florian
826b5cf34a + dwarf support for enums
git-svn-id: trunk@2363 -
2006-01-28 22:36:27 +00:00
florian
8cd8e4ba8d + basic dwarf support for variables and types
git-svn-id: trunk@2353 -
2006-01-28 16:06:08 +00:00
florian
b06643a1eb * tai_const refactored
git-svn-id: trunk@2323 -
2006-01-22 12:58:38 +00:00
peter
45176ea2a8 * split tstringtype for stringdef and stringconstnode
to prevent wrong typecasts

git-svn-id: trunk@2276 -
2006-01-13 17:20:27 +00:00
Jonas Maebe
48e98d2a17 * fixed compilation of macpas interface-only units
git-svn-id: trunk@2130 -
2006-01-02 20:55:10 +00:00
peter
95879fe8a7 * basic support for generic classes
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
peter
68e56b9fc7 * write only unique property names in rtti
git-svn-id: trunk@2007 -
2005-12-20 14:44:48 +00:00
Károly Balogh
739ae4c254 + 1st attempt to have explicit funcretloc for Amiga/m68k
git-svn-id: trunk@1978 -
2005-12-18 03:58:27 +00:00
Károly Balogh
238964e443 Various m68k fixes/additions:
- fixes in asmreader, basic stuff works again, the rest is untested
  - removed lot of unnecessary ungetcpuregister()s
  - various other fixes i forgot
  + basic amigaos syscalls support. still lacks explicit funcretloc

git-svn-id: trunk@1943 -
2005-12-13 20:42:15 +00:00
daniel
c0b4678873 * Rename unit crc to fpccrc to avoid name conflict in packages
git-svn-id: trunk@1856 -
2005-12-01 16:45:44 +00:00
florian
c43e2df522 * copying of classes fixed, closes 3930
git-svn-id: trunk@1791 -
2005-11-20 09:11:23 +00:00
olle
5bf628a72e bugfix, inherited reset was not called
git-svn-id: trunk@1724 -
2005-11-12 00:37:45 +00:00
florian
7be36096f0 + proper init rtti for proc. vars
git-svn-id: trunk@1479 -
2005-10-18 20:05:56 +00:00
peter
59a26e4f68 * fixed interface name mapping
git-svn-id: trunk@1443 -
2005-10-17 16:02:44 +00:00
peter
6e60c8a92b * move stab number reset to dbgstabs
git-svn-id: trunk@1442 -
2005-10-17 15:02:15 +00:00
peter
51b8a4a132 * move stabs generation to a single procedure call from pmodules
git-svn-id: trunk@1358 -
2005-10-12 10:35:46 +00:00
florian
1066eb1cb3 * on cpus requiring proper alignment, shortstrings are to two byte boundaries aligned
git-svn-id: trunk@1319 -
2005-10-07 19:17:09 +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
ec4d287fd8 * aktoutputformat removed, add new paraXX vars for target
assembler and debuginfo and use these vars to override
    the defaults for the target after the parameters are read
  * remove not-maintained and tested gdb code

git-svn-id: trunk@1201 -
2005-09-25 21:17:37 +00:00
peter
6bf3269b41 * powerpc64 port from Thomas Schatzl
git-svn-id: trunk@1193 -
2005-09-25 17:19:44 +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
89d4cc68c0 * hack to workaround an IE with forward classes were
a child class is declared before the parent class. Resulting
    in the wrong order in the ppu

git-svn-id: trunk@1105 -
2005-09-17 23:26:21 +00:00
florian
adb193497d + softfloat support for wince
* more units are build for wince

git-svn-id: trunk@959 -
2005-08-28 12:40:43 +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
daniel
d05f58b604 * Group asmlists into array to be able to add
some of them more comfortably.
  * x86_64 compilation was broken, fixed.
  * Sparc compilation was broken, fixed.

git-svn-id: trunk@731 -
2005-07-23 13:44:32 +00:00
Jonas Maebe
8bc4e0a32f * inline and compilerproc are now procoptions instead of proccall types
(so both can be combined with each other, as well as with other calling
     conventions)
  * defined COMPPROCINLINEFIXED so SYSTEMINLINE is again activated

git-svn-id: trunk@658 -
2005-07-18 15:27:14 +00:00
peter
24f6bb1594 * overload chaining checks if the procdef is in the same symtable, this
prevents keeping references to staticsymtable only procdefs that are
    not accessible through the globalsymtable. And can cause crashes when
    the staticsymtable is already released.

git-svn-id: trunk@644 -
2005-07-18 09:50:39 +00:00
florian
f0efddff9b * fixed compilation on x86_64
git-svn-id: trunk@643 -
2005-07-18 09:28:58 +00:00
florian
fddf556098 + writing of vartype for dyn. array rtti
git-svn-id: trunk@629 -
2005-07-15 21:04:50 +00:00
peter
627a3b53e8 * fix loading of enum subranges from ppu
git-svn-id: trunk@535 -
2005-06-30 07:13:42 +00:00
florian
b9b9ce059d * compilation errors fixed
git-svn-id: trunk@531 -
2005-06-29 19:35:05 +00:00
florian
abbc85bb78 + strict protected and strict private support
git-svn-id: trunk@512 -
2005-06-28 19:23:39 +00:00
florian
be9bd97532 * fixed interface rtti, fixes bug #4089
git-svn-id: trunk@423 -
2005-06-15 21:28:15 +00:00
florian
21ae782854 * fixed more xmm stuff
+ some win64 stuff added

git-svn-id: trunk@330 -
2005-06-09 20:50:17 +00:00
florian
ebcb69478f * fixed a lot of stuff for fpu/mm register variables
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
florian
c044221818 * fixed alignment of objects and arrays in arrays, fixes bug #3971
git-svn-id: trunk@39 -
2005-05-21 07:39:44 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
florian
09b0fe36fb + made variant publishable 2005-05-07 16:43:02 +00:00
peter
3c6d74c4d9 * extended stabs use size of 10 2005-04-25 13:15:18 +00:00
florian
c5c6df8237 * class ref. properties can be published now 2005-04-03 15:20:42 +00:00