Commit Graph

351 Commits

Author SHA1 Message Date
florian
ad7e261a04 * forbid to take the address of a label defined outside of the current procedure
git-svn-id: trunk@5974 -
2007-01-14 19:21:37 +00:00
Jonas Maebe
c0eb91ffc8 * fixed error message for trying to assign to formal parameters and
to open arrays (mantis #8111)

git-svn-id: trunk@5950 -
2007-01-13 18:20:06 +00:00
florian
76dc5ab588 + support of -fPIC (is equivalent to -Cg) so people won't be confused if ld tells them to recompile their code with -fPIC
git-svn-id: trunk@5934 -
2007-01-12 22:27:20 +00:00
florian
2ccba3604c * fixed generation of constants containing a vmt
* better error message if such a construct is used in fpc where it isn't allowed

git-svn-id: trunk@5838 -
2007-01-07 10:39:06 +00:00
Jonas Maebe
efd1e86418 * give a verbose fatal error instead of an internalerror when a required
system unit type is not found

git-svn-id: trunk@5820 -
2007-01-05 19:43:28 +00:00
florian
a2ec2e72b6 * better hint about abstract methods (fixes 5098)
+ code generation for invoking dispinterface methods
* small dispinterface problems fixed

git-svn-id: trunk@5798 -
2007-01-03 19:14:31 +00:00
florian
c4d96ec538 * only non generic types can be used when specializing generics, fixes 7735
git-svn-id: trunk@5754 -
2006-12-30 21:51:24 +00:00
pierre
fc66d46beb + added several warnings about use of references
involving (%ebp) or (%esp) in assembler code.
   Useful to track code that might suffer from regcall
   convention.

git-svn-id: trunk@5736 -
2006-12-29 09:37:15 +00:00
Jonas Maebe
f308bfb45c * fixed mantis 6686 ("function a;" without prior definition of "a"
accepted in Delphi mode + extra test case where something similar
    has to succeed)

git-svn-id: trunk@5698 -
2006-12-24 10:48:49 +00:00
tom_at_work
949aa60805 * DWARF debug lineinfo reader
git-svn-id: trunk@5632 -
2006-12-17 23:11:25 +00:00
Jonas Maebe
9e60d6791d * show name of procedure/function called with too few parameters
git-svn-id: trunk@5522 -
2006-12-01 20:15:57 +00:00
florian
d47dc38f2c * ignore PIC directive on windows and warn about it
git-svn-id: trunk@5479 -
2006-11-25 22:58:52 +00:00
florian
43ba7cfe6f * correct name of set packing directive is PACKSET
git-svn-id: trunk@5313 -
2006-11-10 19:56:19 +00:00
florian
667baf433d + new switch -CPSETALLOC=<y> to influence set sizes
git-svn-id: trunk@5299 -
2006-11-09 20:41:33 +00:00
florian
c947295cb8 + ttertiarynode
* traise node refactored using tertiarynode
* more dipatch stuff

git-svn-id: trunk@5215 -
2006-11-03 23:03:31 +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
1275e7d109 * forbid usage of TYPE and VAR inside of common classes/objects
git-svn-id: trunk@5170 -
2006-11-02 09:12:59 +00:00
Jonas Maebe
36c6879581 + -Sx command line switch to turn on exception keywords in non-Delphi/ObjFPC
modes (mainly for MacPas, to replace nested gotos with exceptions)

git-svn-id: trunk@4984 -
2006-10-20 12:54:47 +00:00
florian
9a1b9071a5 * implemented kylix like local directive, fixes #7242
git-svn-id: trunk@4982 -
2006-10-19 20:26:14 +00:00
Jonas Maebe
593f74d155 + full support for varargs-related functionality for "mwpascal; external;"
functions

git-svn-id: trunk@4910 -
2006-10-14 17:56:42 +00:00
micha
dfd3b2503e add message for {$T+} unportability
git-svn-id: trunk@4821 -
2006-10-07 19:21:32 +00:00
micha
a3c1250cd3 do not search for sources of released ppu files
git-svn-id: trunk@4818 -
2006-10-07 09:45:40 +00:00
peter
5de217f04c * movzx reference size fallback to byte for delphi mode
git-svn-id: trunk@4768 -
2006-10-02 17:33:52 +00:00
florian
d4fa2100ce * message files regenerated
git-svn-id: trunk@4739 -
2006-09-27 12:00: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
3a54183ce8 * clarified errors regarding invalid uses of packed array/record fields
git-svn-id: trunk@4577 -
2006-09-09 08:17:37 +00:00
peter
d1e7a68289 * include para number in call by var error
git-svn-id: trunk@4557 -
2006-09-04 21:14:22 +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
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
Jonas Maebe
6fd4c50f0a * give proper error message when upper or lower bound of array type is out
of range (bounds error instead of "upper bound lower than lower bound")

git-svn-id: trunk@4383 -
2006-08-07 14:42:21 +00:00
Jonas Maebe
5f699c7838 + -gt, -gtt, -gttt and -gtttt switches to trash local variables with
different values (resp. $55, $AA, $EF and $00) in function/procedure
    prologs to help find uninitialized uses. Should still be extended
    for "out" parameters.

git-svn-id: trunk@4271 -
2006-07-20 22:54:23 +00:00
Jonas Maebe
73d5e259ef * regenerated version (please always regenerate and commit these too
if you commit a new errore.msg, to avoid conflicts later)

git-svn-id: trunk@4270 -
2006-07-20 22:39:47 +00:00
florian
57f097a710 * made dir_warn code more clear, no implementation yet
git-svn-id: trunk@4200 -
2006-07-14 21:45:21 +00:00
Tomas Hajny
419ab6aeac + allow output of full version in QuickInfo
git-svn-id: trunk@4165 -
2006-07-13 23:06:46 +00:00
Tomas Hajny
db6bfea8ea * spelling correction by Ido/ik
git-svn-id: trunk@4027 -
2006-06-30 21:29:52 +00:00
Tomas Hajny
ac692f7da9 * bugrep -> bugs
git-svn-id: trunk@3985 -
2006-06-27 22:10:55 +00:00
florian
dc2bef3875 + implemented directives $setpeflags, $maxstacksize, $minstacksize and $imagebase, fixes #6349 and #6714
git-svn-id: trunk@3935 -
2006-06-25 10:22:42 +00:00
florian
d4848169e1 * as operator isn't allowed for non com interfaces
git-svn-id: trunk@3646 -
2006-05-23 18:52:56 +00:00
peter
4790838455 * add -Xi and -Xe
git-svn-id: trunk@3621 -
2006-05-21 20:18:50 +00:00
florian
c6787b52a7 + compile the svn revision into the compiler, to do so, a file compiler/revision.inc must exist which is updated then
git-svn-id: trunk@3491 -
2006-05-13 15:25:36 +00:00
florian
06e7d4be7a + dispid parsing
git-svn-id: trunk@3378 -
2006-04-30 08:25:36 +00:00
Jonas Maebe
05540cad44 * give an error for {$calling } (i.e., when a procedure directive is
missing)

git-svn-id: trunk@3193 -
2006-04-12 07:58:25 +00:00
Tomas Hajny
c17b57db07 + Statistics of warnings, hints and notes - (modified/fixed) patch from Naj Kejah, part of wishlist item 4897, plus hardcoded text moved to message file
git-svn-id: trunk@3181 -
2006-04-09 11:54:09 +00:00
Jonas Maebe
4db6e1ddb8 * moved type conversion of C varargs from tcallnode to
tarrayconstructornode.inset_typeconvs() and fixed them:
    * integers < 32 bit are converted to 32 bit (this was previously
      done in the code generator for some targets, and not for others)
    * currency is also converted to double for targets where currency = int64
    * single is converted to double, except for x86_64 (is at least
      necessary on darwin/ppc, darwin/i386 and linux/i386)
    * enums are converted to 32 bit ints
    * procvars are converted to pointers
    * proper errors are given for various unsupported types
   NOTE: in C, floating point constants are by default double, while in
    FPC they are of type extended. On platforms where extended <> double,
    such constants when passed to C varargs are automatically converted
    to double by default (gives warning). If you want to pass them as
    single or extended or get rid of the warning, use an explicit typecast
  * increased ppu version because of introduction of new node flag
    (nf_cvarargs for tarrayconstructornode)
  * fixed tests/test/cg/tprintf
  * changed tests/test/cg/cdecl/taoc5 to use explicit typecasts for
    floating point constants passed to C varargs functions.

git-svn-id: trunk@2949 -
2006-03-17 22:26:48 +00:00
peter
eb725d4e44 Merged revisions 2908,2911,2913-2917 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2908 | peter | 2006-03-13 13:35:48 +0100 (Mon, 13 Mar 2006) | 2 lines

  * merge trunk upto r2907

........
r2911 | peter | 2006-03-13 18:08:00 +0100 (Mon, 13 Mar 2006) | 2 lines

  * rename values to make room for operand size codes

........
........
........
r2915 | peter | 2006-03-14 13:51:35 +0100 (Tue, 14 Mar 2006) | 2 lines

  * check aktcputype

........
r2916 | peter | 2006-03-14 15:06:32 +0100 (Tue, 14 Mar 2006) | 3 lines

  * merge 300 opcodes
  * more 64bit versions of opcodes

........
r2917 | peter | 2006-03-14 17:34:03 +0100 (Tue, 14 Mar 2006) | 3 lines

  * x86_64 tables
  * convert movq with normal registers to mov

........

git-svn-id: trunk@2931 -
2006-03-16 08:09:28 +00:00
peter
2888a21593 * list supported optimization options in -i
* support $OPTIMIZATION and $O+

git-svn-id: trunk@2904 -
2006-03-13 11:17:56 +00:00
florian
5ece7cbc2f * first part of x86-64 assembler
git-svn-id: trunk@2824 -
2006-03-09 22:05:16 +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
c15b500e32 + warn if a static variable is read but not assigned (tw4781*)
git-svn-id: trunk@2472 -
2006-02-07 21:23:02 +00:00
Károly Balogh
cd38c236a0 + made the compiler to know about PowerPC AmigaOS
git-svn-id: trunk@2201 -
2006-01-07 04:46:27 +00:00