Commit Graph

774 Commits

Author SHA1 Message Date
Jonas Maebe
41dcda600c * disabled the internal linker when using DWARF debug info (it doesn't
work correctly with DWARF)
  * only force the internal linker for STABS when generating relocatable
    output (rather than for all debugging formats)

git-svn-id: trunk@12917 -
2009-03-19 09:01:29 +00:00
Jonas Maebe
c6470a75e7 * do not disable smart linking when using DWARF debug information on Darwin,
because there it does work correctly
  * print a note if smart linking is disabled due to using DWARF

git-svn-id: trunk@12896 -
2009-03-15 12:16:45 +00:00
Jonas Maebe
6165536b5e + added {$modeswitch objectivec1}/-Mobjectivec1 mode switch to enable
the use of Objective-C 1.0 constructs. Because it is a mode switch, it
    can be used cumulatively with every syntax mode. Note that a {$mode xxx}
    statement resets all mode switches as well, so you cannot use the
    -Mobjectivec1 variant if you have such a statement in a unit. This
    modeswitch is currently only enabled for Darwin/PowerPC and Darwin/i386,
    as the backend support is not yet implemented for other platforms.
  + implemented selector() statement that can be used to create an Objective-C
    selector for the message with the specified *constant* name (in the future,
    it will also work for Objective-C method identifiers)
  + added SEL type to the system unit (the selector() statement returns it)
  + added all Objective-C segments to the assembler writers
  + (currently mostly dummy) objc1 unit that is automatically included if the
    {$modeswitch objectivec1} statement is used
  + some tests for the selector() statement

git-svn-id: trunk@12870 -
2009-03-08 18:40:32 +00:00
Tomas Hajny
29f0a1096c * add reference to the bug tracker rather than just an e-mail address
git-svn-id: trunk@12833 -
2009-02-28 23:13:36 +00:00
florian
acb06dac1b + Wp<Controllertype> support for arm and avr
git-svn-id: trunk@12664 -
2009-02-02 20:16:25 +00:00
Jonas Maebe
b73ed1587a * added warning to stack checking option
* clarified that -Cs only guarantees setting the stack *checking*
    size, not necessarily the stack size

git-svn-id: trunk@12528 -
2009-01-08 18:42:24 +00:00
Jonas Maebe
423ee926c2 * verify during parameter parsing that -gc and -pg are implemented/
supported for the chosen target platform

git-svn-id: trunk@12451 -
2008-12-28 15:53:15 +00:00
Jonas Maebe
e54aed98a4 * fixed some small errors/inconsistencies in the wpo messages
git-svn-id: trunk@12450 -
2008-12-28 10:10:16 +00:00
Jonas Maebe
3216e8c7bc * mark produced object files as "does not require executable stack" by
default for Linux (overridable using -WX switch) (mantis #11563)

git-svn-id: trunk@12356 -
2008-12-12 16:26:25 +00:00
Jonas Maebe
060d81b8fa Merged revisions 11878,11881-11882,11889,11891-11893,11895,11899-11902,11935,11938,12212,12304,12308-12310,12316,12330-12332,12334,12339-12340 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/branches/wpo

........
r11878 | jonas | 2008-10-11 02:25:18 +0200 (Sat, 11 Oct 2008) | 19 lines

  + initial implementation of whole-program optimisation framework
  + implementation of whole-program devirtualisation
  o use:
     a) generate whole-program optimisation information (no need
        to completely compile the program and all of its units
        with -OW/-FW, only the main program is sufficient)
      fpc -OWdevirtcalls -FWmyprog.wpo myprog
     b) use it to optimise the program
      fpc -B -Owdevirtcalls -Fwmyprog.wpo myprog
     (the -B is not required, but only sources recompiled during
      the second pass will actually be optimised -- if you want,
      you can even rebuild the rtl devirtualised for a particular 
      program; and these options can obviously also be used         
      together with regular optimisation switches)
  o warning:
    - there are no checks yet to ensure that you do not use 
      units optimised for a particular program with another
      program (or with a changed version of the same program)

........
r11881 | jonas | 2008-10-11 19:35:52 +0200 (Sat, 11 Oct 2008) | 13 lines

  * extracted code to detect constructed class/object types from
    tcallnode.gen_vmt_tree into its own method to avoid clutter
  * detect x.classtype.create constructs (with classtype = the
    system.tobject.classtype method), and treat them as if a
    "class of x" has been instantiated rather than a
    "class of tobject". this required storing the instantiated
    classrefs in their own array though, because at such a
    point we don't have a "class of x" tdef available (so
    now "x", and all other defs instantiated via a classref,
    are now stored as tobjectdefs in a separate array)
  + support for devirtualising class methods (including
    constructors)

........
r11882 | jonas | 2008-10-11 20:44:02 +0200 (Sat, 11 Oct 2008) | 7 lines

  + -Owoptvmts whole program optimisation which replaces vmt entries
    with method names of child classes in case the current class'
    method can never be called (e.g., because this class is never
    instantiated). As a result, such methods can then be removed
    by dead code removal/smart linking (not much effect for either
    the compiler, lazarus or a trivial lazarus app though).

........
r11889 | jonas | 2008-10-12 14:29:54 +0200 (Sun, 12 Oct 2008) | 2 lines

  * some comment fixes

........
r11891 | jonas | 2008-10-12 18:49:13 +0200 (Sun, 12 Oct 2008) | 4 lines

  * fixed twpofilereader.getnextnoncommentline() when reusing a previously
    read line
  * fixed skipping of unnecessary wpo feedback file sections

........
r11892 | jonas | 2008-10-12 23:42:43 +0200 (Sun, 12 Oct 2008) | 31 lines

  + symbol liveness wpo information extracted from smartlinked programs
    (-OW/-Owsymbolliveness)
  + use symbol liveness information to improve devirtualisation (don't
    consider classes created in code that has been dead code stripped).
    This requires at least two passes of using wpo (first uses dead code
    info to locate classes that are constructed only in dead code,
    second pass uses this info to potentially further devirtualise).
    I.e.:
     1) generate initial liveness and devirtualisation feedback
       fpc -FWtt.wpo -OWall tt.pp -Xs- -CX -XX
     2) use previously generated feedback, and regenerate new feedback
        based on this (i.e., disregard classes created in dead code)
       fpc -FWtt-1.wpo -OWall -Fwtt.wo -Owall tt.pp -Xs- -CX -XX
     3) use the newly generated feedback (in theory, it is possible
        that even more opportunities pop up afterwards; you can
        continue until the program does not get smaller anymore)
       fpc -Fwtt-1.wpo -Owall tt.pp -CX -XX
  * changed all message() to cgmessage() calls so the set codegenerror
  * changed static fsectionhandlers field to a regular field called
    fwpocomponents
  * changed registration of wpocomponents: no longer happens in the
    initialization section of their unit, but in the InitWpo routine
    (which has been moved from the woinfo to the wpo unit). This way
    you can register different classes based on the target/parameters.
  + added static method to twpocomponentbase for checking whether
    the command line parameters don't conflict with the requested
    optimisations (e.g. generating liveness info requires that
    smartlinking is turned on)
  + added static method to twpocomponentbase to request the
    section name

........
r11893 | jonas | 2008-10-12 23:53:57 +0200 (Sun, 12 Oct 2008) | 3 lines

  * fixed comment error (twpodeadcodeinfo keeps a list of live,
    not dead symbols)

........
r11895 | jonas | 2008-10-13 00:13:59 +0200 (Mon, 13 Oct 2008) | 2 lines

  + documented -OW<x>, -Ow<x>, -FW<x> and -Fw<x> wpo parameters

........
r11899 | jonas | 2008-10-14 22:14:56 +0200 (Tue, 14 Oct 2008) | 2 lines

  * replaced hardcoded string with objdumpsearchstr constant

........
r11900 | jonas | 2008-10-14 22:15:25 +0200 (Tue, 14 Oct 2008) | 2 lines

  * reset wpofeedbackinput and wpofeedbackoutput in wpodone

........
r11901 | jonas | 2008-10-14 22:16:07 +0200 (Tue, 14 Oct 2008) | 2 lines

  * various additional comments and comment fixes

........
r11902 | jonas | 2008-10-15 18:09:42 +0200 (Wed, 15 Oct 2008) | 5 lines

  * store vmt procdefs in the ppu files so we don't have to use a hack to
    regenerate them for whole-program optimisation
  * fixed crash when performing devirtualisation optimisation on programs
    that do not construct any classes/objects with optimisable vmts

........
r11935 | jonas | 2008-10-19 12:24:26 +0200 (Sun, 19 Oct 2008) | 4 lines

  * set the vmt entries of non-class virtual methods of not instantiated
    objects/classes to FPC_ABSTRACTERROR so the code they refer to can
    be thrown away if it is not referred to in any other way either

........
r11938 | jonas | 2008-10-19 20:55:02 +0200 (Sun, 19 Oct 2008) | 7 lines

  * record all classrefdefs/objdefs for which a loadvmtaddrnode is generated,
    and instead of marking all classes that derive from instantiated
    classrefdefs as instantiated, only mark those classes from the above
    collection that derive from instantiated classrefdefs as
    instantiated (since to instantiate a class, you have to load its vmt
    somehow -- this may be broken by using assembler code though)

........
r12212 | jonas | 2008-11-23 12:26:34 +0100 (Sun, 23 Nov 2008) | 3 lines

  * fixed to work with the new vmtentries that are always available and
    removed previously added code to save/load vmtentries to ppu files

........
r12304 | jonas | 2008-12-05 22:23:30 +0100 (Fri, 05 Dec 2008) | 4 lines

  * check whether the correct wpo feedback file is used in the current
    compilation when using units that were compiled using wpo information
    during a previous compilation run

........
r12308 | jonas | 2008-12-06 18:03:39 +0100 (Sat, 06 Dec 2008) | 2 lines

  * abort compilation if an error occurred during wpo initialisation

........
r12309 | jonas | 2008-12-06 18:04:28 +0100 (Sat, 06 Dec 2008) | 3 lines

  * give an error message instead of crashing with an io exception if the
    compiler is unable to create the wpo feedback file specified using -FW

........
r12310 | jonas | 2008-12-06 18:12:43 +0100 (Sat, 06 Dec 2008) | 3 lines

  * don't let the used wpo feedback file influence the interface crc (there's
    a separate check for such changes)

........
r12316 | jonas | 2008-12-08 19:08:25 +0100 (Mon, 08 Dec 2008) | 3 lines

  * document the format of the sections of the wpo feedback file inside the
    feedback file itself

........
r12330 | jonas | 2008-12-10 22:26:47 +0100 (Wed, 10 Dec 2008) | 2 lines

  * use sysutils instead of dos to avoid command line length limits

........
r12331 | jonas | 2008-12-10 22:31:11 +0100 (Wed, 10 Dec 2008) | 3 lines

  + support for testing whole program optimisation tests (multiple
    compilations using successively generated feedback files)

........
r12332 | jonas | 2008-12-10 22:31:40 +0100 (Wed, 10 Dec 2008) | 2 lines

  + whole program optimisation tests

........
r12334 | jonas | 2008-12-10 22:38:07 +0100 (Wed, 10 Dec 2008) | 2 lines

  - removed unused local variable

........
r12339 | jonas | 2008-12-11 18:06:36 +0100 (Thu, 11 Dec 2008) | 2 lines

  + comments for newly added fields to tobjectdef for devirtualisation

........
r12340 | jonas | 2008-12-11 18:10:01 +0100 (Thu, 11 Dec 2008) | 2 lines

  * increase ppu version (was no longer different from trunk due to merging)

........

git-svn-id: trunk@12341 -
2008-12-11 17:40:18 +00:00
peter
2a952c89a5 * store vmt entries in ppu
* give a note if the visibility of a vmt entry is lower than
    the previous (parent) entry
  * refactor vmt method collection using the new always available
    vmt entries

git-svn-id: trunk@12159 -
2008-11-18 18:49:27 +00:00
Jonas Maebe
a00df1033f * changed "Mixing signed expressions and longwords gives a 64bit result"
from warning into a hint (it's not a potential error, but potential
    optimisation advice)

git-svn-id: trunk@12075 -
2008-11-13 19:49:46 +00:00
florian
937067e367 + check if forward definitions and real definitions have the same type, resolves #11970
git-svn-id: trunk@12017 -
2008-11-02 12:36:31 +00:00
Jonas Maebe
a23630260b + "weakexternal" support for imported procedures and variables.
the syntax is exactly the same as for "external", except for
    the keyword. It is currently only active for Darwin targets.
    It should also work at least for Linux targets, but only with
    the GNU assembler (which is why it is not activated there)
  + test for this functionality

git-svn-id: trunk@12009 -
2008-11-01 18:38:32 +00:00
marco
3591d54f24 * updated all makefile.fpc versions to 2.2.2 for fppkg compat.
git-svn-id: trunk@11945 -
2008-10-22 17:19:13 +00:00
florian
cb9e52826f * fix range check error in options handling, resolves #12365
+ better error output (print filename and line number) for config file directive errors

git-svn-id: trunk@11898 -
2008-10-14 17:06:55 +00:00
Jonas Maebe
64ddae4eff + -vq parameter to show message numbers
+ -vm<x>,<y> parameter to mask messages <x> and <y>
   (both based on a patch submitted by Petr Kristan)
  * alphabetically ordered -v<x> option processing code so it's easier
    to see which characters are still free (not many anymore)
  + some tests for the -vm functionality

git-svn-id: trunk@11888 -
2008-10-12 12:19:41 +00:00
Jonas Maebe
2b067a427d * give warning if a routine in the interface of a non-interface-only
macpas routine is not implemented and therefore considered to be
    external

git-svn-id: trunk@11703 -
2008-09-04 18:15:26 +00:00
yury
c84aa860bd * Added error message if resulting executable image size is too big to fit in memory. bug #11702.
git-svn-id: trunk@11481 -
2008-07-28 21:54:18 +00:00
yury
d5c0ba9a1e * Improved warning about constructing class instance with abstract methods. Warning is issued for each method and method name is specified in the message. It makes easy to find out which abstract methods still not overrode.
git-svn-id: trunk@11450 -
2008-07-23 12:24:25 +00:00
florian
c3605645ff + warn if someone still uses ppc386.cfg
git-svn-id: trunk@10992 -
2008-05-18 07:57:54 +00:00
Jonas Maebe
a87de2ca9b * regenerated messages
git-svn-id: trunk@10859 -
2008-05-02 14:04:02 +00:00
micha
b0838b13d7 * add armeb target to compiler/Makefiles
git-svn-id: trunk@10552 -
2008-03-24 17:48:11 +00:00
Jonas Maebe
150eda304b * factored unix exports handling from t_bsd and t_linux into expunix unit
(todo: at least solaris, maybe others)
  * changed the "exports" section handling:
    a) make everything private which is not exported (implemented for
       darwin and linux)
    b) for the exported symbols:
     - functions/procedures
      1) if no name or index is provided, and if the procedure has aliases
         defined via the public/export directives, then export the default
         mangled name and all defined aliases
      2) otherwise if no name is specified (but there is an index) then
        i) if the procedure is defined as cdecl/cppdecl/mwpascal, use the
           appropriately mangled version of the function name
       ii) otherwise export the name without any mangling(e.g. "exports
           proc1" -> proc1 is the exported name)
     - variables
      1) if no name is provided and the variable was specified as cvar,
         use the mangled name
      2) otherwise if no name is provided, export the name without any
         mangling
  -> initialization/finalization of shared libraries under Linux works
     again (mantis #7838)
  -> sharing symbols between shared library and main program works
     under Linux (mantis #9089)

git-svn-id: trunk@10551 -
2008-03-24 16:55:05 +00:00
michael
174de3eab1 Merged revisions 9693-10480 via svnmerge from
svn+ssh://svn.freepascal.org/FPC/svn/fpc/branches/resources

........
  r9694 | michael | 2008-01-09 21:31:18 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Initial check-in
........
  r9695 | michael | 2008-01-09 21:35:58 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New version from Giulio Bernardi
........
  r9697 | michael | 2008-01-09 21:41:54 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Patch from Giulio Bernardi with resource support
........
  r9698 | michael | 2008-01-09 21:46:33 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Patch from Giulio Bernardi to add more resource testing
........
  r9699 | michael | 2008-01-09 21:57:26 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New tool from Giulio Bernardi
........
  r9700 | michael | 2008-01-09 21:58:23 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * New tool from Giulio Bernardi
........
  r9701 | michael | 2008-01-09 22:01:54 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Added fcl-res
........
  r9702 | michael | 2008-01-09 22:01:58 +0100 (Wed, 09 Jan 2008) | 1 line
  
  * Added fcl-res
........
  r9703 | michael | 2008-01-10 08:54:26 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * Fixed double code
........
  r9704 | jonas | 2008-01-10 10:59:20 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    - removed duplicate code
........
  r9705 | jonas | 2008-01-10 11:25:21 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    + added missing fcl-res dependencies
........
  r9706 | jonas | 2008-01-10 11:58:30 +0100 (Thu, 10 Jan 2008) | 2 lines
  
    + dependencies for fpintres and fpextres
........
  r9707 | yury | 2008-01-10 12:47:51 +0100 (Thu, 10 Jan 2008) | 3 lines
  
  * Fixed compilation of resource, which is included in a unit located in different folder than main source.
  * .res files must be copied to units output folder, otherwise .res files will not be found when only compiled units path is available and compiler does not know anything about sources folder.
  * Improved resource related error messages.
........
  r9708 | michael | 2008-01-10 12:52:13 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * Removed double source after end.
........
  r9709 | michael | 2008-01-10 12:52:48 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * No longer needed
........
  r9710 | tom_at_work | 2008-01-10 22:09:08 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * properly align FPC_RESLOCATION so that linking does not fail on some architectures (e.g. ppc64)
........
  r9711 | tom_at_work | 2008-01-10 23:53:12 +0100 (Thu, 10 Jan 2008) | 1 line
  
  * fix splitting of 64 bit load/stores from/to unaligned memory locations into multiple load/stores, which in some cases generated wrong code
........
  r9712 | michael | 2008-01-11 11:00:08 +0100 (Fri, 11 Jan 2008) | 1 line
  
  * Fixed bug in BSS section on 64-bit platforms
........
  r9720 | giulio | 2008-01-12 10:02:04 +0100 (Sat, 12 Jan 2008) | 1 line
  
  Updated fcl-res documentation: occurrences of reslib changed to fcl-res.
........
  r9740 | giulio | 2008-01-13 19:36:44 +0100 (Sun, 13 Jan 2008) | 3 lines
  
   - Don't try to compile resources on systems with a non windows-like resource support.
   - Don't add the .or file to the list of object files if resource compiling failed.
........
  r10201 | giulio | 2008-02-04 11:35:44 +0100 (Mon, 04 Feb 2008) | 5 lines
  
  * resource compiling supported on OS/2 via wrc
  * CompileResourceFiles and CollectResourceFiles don't do target-specific checks anymore
  * refactored a bit
........
  r10389 | giulio | 2008-02-25 21:32:52 +0100 (Mon, 25 Feb 2008) | 2 lines
  
  Deleted test file which was committed by mistake
........
  r10472 | giulio | 2008-03-10 12:22:18 +0100 (Mon, 10 Mar 2008) | 2 lines
  
  changed define FPC_HAS_RESOURCES to FPC_HAS_WINLIKERESOURCES
........

git-svn-id: trunk@10481 -
2008-03-12 21:33:48 +00:00
florian
00ae5d1d5d + correct parsing interface delegation through classes
git-svn-id: trunk@10466 -
2008-03-09 11:16:05 +00:00
micha
83b7f81f81 + add no-fpu support to compiler/rtl for powerpc-linux (-Cfnone)
git-svn-id: trunk@10422 -
2008-03-02 12:59:02 +00:00
Jonas Maebe
86f90d8ac1 + support for setting the name of "main" (-XM command line parameter) in
the code using {$pascalmainname x} + storing it in the ppu file
    (and give a warning if it's overridden multiple times + test)

git-svn-id: trunk@10406 -
2008-03-01 13:05:01 +00:00
florian
6c53785e3a * first part of implements clean up and fixing
git-svn-id: trunk@10382 -
2008-02-24 11:05:46 +00:00
florian
d8d96f14e6 + experimental directive, resolves #10833
git-svn-id: trunk@10331 -
2008-02-15 19:29:34 +00:00
peter
793fd8fc09 * Add -Xg to help pages
* -Xg now produces a .dbg file with debuginfo
    that can be used by gdb. The main executable gets
    a debuglink section that references the .dbg file.

git-svn-id: trunk@9778 -
2008-01-17 01:20:37 +00:00
florian
6843833d60 * regenerated
git-svn-id: trunk@9606 -
2008-01-01 11:07:42 +00:00
florian
8f17101039 * allow application of as operator only to interfaces having a guid, resolves #6797
git-svn-id: trunk@9436 -
2007-12-12 21:07:47 +00:00
Jonas Maebe
18eb495d0f * give a regular error message instead of an internal error on x86
when using non-PIC references in assembler code when the compiler
    is configured to generate PIC code (on ppc, sparc and arm, no
    error message is given at all currently)

git-svn-id: trunk@9364 -
2007-12-01 11:28:15 +00:00
sekelsenmat
6569d491a1 Added symbian target to the compiler messages
git-svn-id: trunk@9149 -
2007-11-07 19:42:55 +00:00
florian
50cc61c8fd * ignore register list in pure assembler routines, resolves #9335
git-svn-id: trunk@8978 -
2007-10-28 20:41:19 +00:00
peter
bfca4e67fa * -CO option to check for possible integer overflows
git-svn-id: trunk@8842 -
2007-10-18 19:55:22 +00:00
peter
1e123d66ba * improved generics
git-svn-id: trunk@8838 -
2007-10-18 00:24:05 +00:00
peter
6434772c3c * error message when a goto label is optimized away
git-svn-id: trunk@8837 -
2007-10-17 21:52:25 +00:00
Jonas Maebe
83bab3b071 + documented -XR in the help pages
* specified OSes to which -Xr applies

git-svn-id: trunk@8834 -
2007-10-17 19:37:32 +00:00
Jonas Maebe
288a538df5 * don't allow starting new virtual trees in TP-style objects + test
* fixed bug in whlpview.pas where such an new tree was unintentially
    started

git-svn-id: trunk@8422 -
2007-09-09 14:58:55 +00:00
peter
4b5a599309 * remove -gg and -gd options
* minor capitalization fixes from bug #9640

git-svn-id: trunk@8420 -
2007-09-09 14:24:30 +00:00
Jonas Maebe
488cfa3c32 + -go<x> switch for debugging options (some global switches could be
moved to it)
  + -go[no]dwarfsets switch to [disable]/enable generation of dwarf set
    information, as this breaks gdb < 6.5 (used to be disabled in the
    compiler by an ifdef, still off by default)

git-svn-id: trunk@8414 -
2007-09-09 09:27:49 +00:00
Jonas Maebe
91629f810f * better error messages for non-overloadable operators:
* only suggest = if the user tried to overload <>
    * suggest ** if the user tried to overload ^ (mantis #9606)
    * no suggestion otherwise
   (instead of always suggesting '=')

git-svn-id: trunk@8402 -
2007-09-08 10:49:16 +00:00
Jonas Maebe
21abdd2f4e + support for specifying the minimal precision for floating point
constants. The default is currently 32 bits/single, which corresponds
    to the old behaviour (constants which cannot be exactly represented
    in the default/chosen precision will also still be automatically
    upgraded to higher precision). Supported constructs:
   * Command line switch -CF<x>
   * Compiler directive {$MINFPCONSTPREC <x>}
  whereby in both cases <x> can be default, 32 or 64. 80 is not supported
  because there is no generic way to figure out whether the current target
  actually supports 80 bit precision floating point calculations while
  parsing the command line switches (pbestreal can still change in case of
  win64 or -Cfsse2)

git-svn-id: trunk@8349 -
2007-09-01 19:38:27 +00:00
Jonas Maebe
84ddacd017 + support for creating a bundle instead of a library on Darwin (-Wb)
git-svn-id: trunk@8217 -
2007-08-03 12:42:49 +00:00
Jonas Maebe
f1f1299e97 * generalised -W description to "target-specific options"
* mention for each -W option to which targets it applies
  * show all available -W options for all target architectures they apply to
  * reworded some option descriptions
  * all option descriptions now start with a capital for consistency

git-svn-id: trunk@8216 -
2007-08-03 12:13:27 +00:00
Jonas Maebe
a3c9dc5ec6 + support for {$linkframework x} to link to framework x (Darwin only)
+ support for {$frameworkpath x} and -Ffx to add x to the directories to
    search for frameworks (Darwin only)

git-svn-id: trunk@8165 -
2007-07-25 15:42:30 +00:00
michael
bedf0151cc * Implemented support for custom RC compiler and .RES linker
git-svn-id: trunk@8164 -
2007-07-25 12:06:57 +00:00
florian
5e60b52f28 * ignore pic directive/switch if the platform doesn't support pic, resolves #9281
git-svn-id: trunk@8157 -
2007-07-23 20:25:04 +00:00
peter
67e16340be * revert r8118
git-svn-id: trunk@8139 -
2007-07-22 19:59:00 +00:00
daniel
21293f5818 + Add common type integer promotion.
- {$intpromotion common_type} or -CIcommon_type switches to common type promotion.
    - {$intpromotion native_integer} or -CIcommon_type switches to current behaviour.
    - Default in tp mode is common_type, native_integer in other modes
    - Compiler can cycle with -CIcommon_type
    - Still needs checking on other architectures than i386

git-svn-id: trunk@8118 -
2007-07-21 19:16:24 +00:00
florian
fa2a2b0bd0 * generics without specialization can't be used as a type, resolves #9225
git-svn-id: trunk@8116 -
2007-07-21 17:39:49 +00:00
Jonas Maebe
c6ffa724f3 * clarified pointer->integer warning
git-svn-id: trunk@7907 -
2007-07-01 15:27:21 +00:00
daniel
4ea8448c6d + Warn when converting pointers to signed types.
git-svn-id: trunk@7884 -
2007-07-01 09:05:11 +00:00
daniel
45832d4314 + New hint; for exmaple int64:=longint+longint says "Converting the operands to
int64 before addition could prevent an overflow error."

git-svn-id: trunk@7817 -
2007-06-26 07:52:04 +00:00
florian
078f6e05fa * typos corrected
git-svn-id: trunk@7653 -
2007-06-13 20:49:09 +00:00
daniel
b15740c0e5 - Remove -Mgpc from command line options.
git-svn-id: trunk@7637 -
2007-06-13 06:13:51 +00:00
florian
c7100799ed + forbid usage of $E on targets supporting no fpu emulation
- disabled -Cfsoft on i386

git-svn-id: trunk@7625 -
2007-06-10 17:03:26 +00:00
Jonas Maebe
20b99dade3 - reverted r7600, see additional comments in mantis #9027
git-svn-id: trunk@7606 -
2007-06-09 17:14:28 +00:00
Jonas Maebe
5a8679131f + support for new/dispose with extra size parameter in macpas mode
(mantis #9027)

git-svn-id: trunk@7600 -
2007-06-08 18:02:31 +00:00
florian
7b519c1ce3 * prevent usage of units being compiled with different fpu emulation state
git-svn-id: trunk@7501 -
2007-05-28 16:18:35 +00:00
peter
b29e4ad12f * add used by unit to can't find unit message
git-svn-id: trunk@7430 -
2007-05-23 13:40:27 +00:00
florian
9f56a89617 + added cyrillic code page tables
+ support -Fm<x> to load unicode tables from rtl/ucmaps, they must be in the same dir as the compiler though

git-svn-id: trunk@7420 -
2007-05-22 19:38:39 +00:00
Jonas Maebe
de1af478c3 * do not allow passing properties as var parameters (mantis #8777)
* do not allow assignments to fields of structured properties (e.g.
    property prop: trec read frec; ... instance.prop.frec.a:=5) 
  * clarified some related error messages
  + several extra tests for the above and related things

git-svn-id: trunk@7250 -
2007-05-03 14:08:03 +00:00
florian
2eb40fc025 * forbid file types as function results
git-svn-id: trunk@7180 -
2007-04-28 18:32:03 +00:00
Jonas Maebe
96d1a246ee * fixed typos (MacOS -> Mac OS)
git-svn-id: trunk@6932 -
2007-03-19 13:45:16 +00:00
florian
63523e8a7f * regenerated
git-svn-id: trunk@6863 -
2007-03-14 21:14:13 +00:00
florian
fd392dc2b6 * allow inherited; calling abstract methods in delphi mode, resolves #5896
git-svn-id: trunk@6651 -
2007-02-25 18:46:10 +00:00
peter
bb33395686 * support public also for initialized variables
git-svn-id: trunk@6650 -
2007-02-25 17:51:28 +00:00
florian
301be02148 * forbid anonymous generic specializations
git-svn-id: trunk@6627 -
2007-02-24 10:06:53 +00:00
Jonas Maebe
c0e9782da9 * regenerated message text files with new stabs disabling message
git-svn-id: trunk@6200 -
2007-01-26 12:44:05 +00:00
Jonas Maebe
c866400823 + support for VMTOFFSET in assembler readers to get VMT offset of virtual
methods (mantis #8153)

git-svn-id: trunk@6168 -
2007-01-24 18:26:23 +00:00
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
Jonas Maebe
cbaa100654 * "fixed" web bugs 3183 and 4403 by breaking the parser in
Delphi mode so that you can change the return type of
    overriding interface methods into anything you want.
    You will get a nasty warning though.

git-svn-id: trunk@2168 -
2006-01-04 22:21:05 +00:00
florian
3ccec3fbdd * proper error if a directory is passed as configuration file
git-svn-id: trunk@2134 -
2006-01-02 21:07:15 +00:00
Jonas Maebe
cd69c36f17 * commited -> committed (fix for web bug #4642, by Vincent Snijders)
git-svn-id: trunk@2099 -
2005-12-31 17:30:22 +00:00
Jonas Maebe
021dabc37e * also honour vsf_use_hints for uninitialised warnings for the
function result variable

git-svn-id: trunk@2052 -
2005-12-26 14:44:03 +00:00
florian
1e4e857719 * apptype causes only a note on system not supporting apptype
git-svn-id: trunk@1827 -
2005-11-26 21:54:15 +00:00
florian
4bd32a686d * regenerated msg include files
git-svn-id: trunk@1647 -
2005-11-04 21:35:39 +00:00
florian
a068b7a059 * updated internal message files
git-svn-id: trunk@1562 -
2005-10-22 15:17:56 +00:00
florian
9a1c731bfb + basic dispinterface parsing stuff
git-svn-id: trunk@1445 -
2005-10-17 20:28:50 +00:00
florian
71b90d4d00 + slice implemented
git-svn-id: trunk@1384 -
2005-10-15 16:48:27 +00:00
florian
1908ba2206 + -vb: writes compiler messages with full path instead of the file name only
git-svn-id: trunk@1114 -
2005-09-18 18:09:19 +00:00
florian
21cc9597f2 + fpcylix unit
+ -Sk option

git-svn-id: trunk@1106 -
2005-09-18 08:34:51 +00:00
florian
c7bdfe238b * regenerated makefiles
git-svn-id: trunk@1039 -
2005-09-02 17:46:38 +00:00
florian
a53c9e2666 * fixed stupid copy/paste which turned softfloat always off
* fixed wince softfloat compiler proc. to be correctly named also when used outside the system unit

git-svn-id: trunk@966 -
2005-08-28 21:08:23 +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
florian
5e8db3eb5a * better error message if a compiler can't find a compilerproc
git-svn-id: trunk@943 -
2005-08-25 20:21:06 +00:00
olle
e40c2fd8b0 + compile time expression type checking
* fixed bug in $DEFINE under macpas

git-svn-id: trunk@919 -
2005-08-22 19:09:41 +00:00
florian
e36bb224ae * typo fixed
git-svn-id: trunk@858 -
2005-08-13 21:36:50 +00:00
florian
9a624dd82f * proper displaying of arm targets
git-svn-id: trunk@853 -
2005-08-13 16:57:06 +00:00
florian
469f2d1020 * windres isn't called anymore with an empty include parameter, fixes 4205
* -vd prints windres command line

git-svn-id: trunk@781 -
2005-08-02 21:05:36 +00:00
olle
438f229f52 * changed unknown align/enum warings into errors and also improved them
git-svn-id: trunk@582 -
2005-07-04 19:28:42 +00:00
florian
b9b9ce059d * compilation errors fixed
git-svn-id: trunk@531 -
2005-06-29 19:35:05 +00:00
Jonas Maebe
43e4571fe9 + help for -Xm and -XM (forgot to commit last time)
git-svn-id: trunk@513 -
2005-06-28 19:26:28 +00:00
florian
0772a35e70 + description of -WB as option to create a relocatable image added, fixes bug #3965
git-svn-id: trunk@509 -
2005-06-26 21:28:01 +00:00
florian
11fe93f3b8 + -Nu to help screen added
git-svn-id: trunk@452 -
2005-06-19 21:29:53 +00:00
florian
ec6d5ff211 + utf-8 support for string constants added
git-svn-id: trunk@428 -
2005-06-16 20:16:37 +00:00
peter
bc347c23a8 * change error: compilation aborted to fatal
git-svn-id: trunk@394 -
2005-06-13 07:01:49 +00:00
florian
83fa3bd0cb + output of supported instruction sets in info page 2005-05-05 14:53:55 +00:00
peter
3f9d6ab32f * add hint when passing an uninitialized variable to a var parameter 2005-03-25 22:20:18 +00:00
olle
7cb6368f12 * Support for pascal constant expr in compile time expr, is now only allowed in mode Delphi
+ Warning for undefined compile time var in mode macpas
  * Support for some turbo directives in mode macpas
  * Support for Metrowerks style DEFINED xxx
2005-03-20 18:13:34 +00:00
florian
c63ac52ac5 * fixed msg for -Xc 2005-02-26 17:50:37 +00:00
peter
c5488ea6b1 * -Fa option added, it'll load the units before the uses
line is parsed. Can be used to load cthreads from the commandline.
    Example '-g -Faheaptrc,lineinfo' is the same as '-ghl'
2005-02-06 21:33:28 +00:00
peter
d3b559cfcc * detect arithmetic overflows for constants at compile time
* use try..except instead of setjmp
2005-01-26 16:23:28 +00:00
peter
7848d612cd * fixed -vv 2005-01-20 17:29:07 +00:00
peter
d5091e1817 * fix unreachable code check for repeat loop 2005-01-16 14:44:03 +00:00
olle
be08c4912b - disabled macro diff message 2005-01-10 21:01:52 +00:00
olle
7572f3a539 * rework of macro subsystem
+ exportable macros for mode macpas
2005-01-09 20:24:43 +00:00
florian
5942e4b6f6 * added support of shifter ops in arm inline assembler 2005-01-05 15:22:39 +00:00
peter
0d4ba90aa8 * don't allow class methods in interfaces 2004-12-26 20:12:23 +00:00
peter
00c14e1083 * external is again allowed in implementation 2004-12-15 16:00:16 +00:00
florian
0037f4a199 * fixed operand size calculation for sse operands
+ all nasm assembler targets to help page output added
2004-12-12 10:50:34 +00:00
peter
9c0be16488 implicit load of variants unit 2004-12-06 19:23:05 +00:00
peter
14d25d278b mangledname setting moved to place after the complete proc declaration is read
import generation moved to place where body is also parsed (still gives problems with win32)
2004-11-17 22:21:35 +00:00
peter
db81b4333a * fatal error when procedure is too complex 2004-11-14 21:08:27 +00:00
peter
6c9c4c686c * small m68k updates to bring it up2date
* give better error for external local variable
2004-11-09 22:32:59 +00:00
peter
bc59556a41 * $fpctarget expands to <cpu>-<os>
* allow * in middle of the path to support ../*/units/$fpctarget
2004-10-31 18:54:24 +00:00
peter
8706d9bec9 * help page updated 2004-10-25 15:37:50 +00:00
Tomas Hajny
5df0c00360 * better PathExists, fix for too long command line, correction of message 2004-09-21 23:33:43 +00:00
peter
67548d9f91 * for loop variable assignment is not allowed anymore 2004-09-13 20:28:26 +00:00
michael
ec7227e1f5 Regenerated 2004-09-08 11:58:14 +00:00
armin
354004d803 * target netwlibc added (libc is preferred for newer netware versions) 2004-09-04 21:18:47 +00:00
peter
db2ac3bc57 * allow only 1 default property 2004-08-25 15:57:04 +00:00
olle
f125ee32d1 + added macro-lacks-content message
* fixed typos etc
2004-08-22 23:12:16 +00:00
florian
8cb7072e5f * fixed several ie9999s when illegal operators were used 2004-08-08 15:22:29 +00:00
olle
ff36adb056 + macpas style: exit, cycle, leave
+ macpas compiler directive: PUSH POP
2004-07-05 21:49:43 +00:00
florian
588e2c38bf * dwarf branch merged 2004-06-16 20:07:06 +00:00
peter
9a0a2ccd81 * give error when goto jumps to label outside current proc scope 2004-05-23 11:39:37 +00:00
olle
9b3be3f760 * changed $mode mac to $mode macpas
+ added GUI apptype to MacOS
2004-05-11 18:23:44 +00:00
florian
e8098f6b71 + added lib support for Amiga/MorphOS syscalls 2004-05-01 22:05:01 +00:00
florian
a7478ee97f + location support for arguments, currently PowerPC/MorphOS only 2004-04-18 15:22:24 +00:00
olle
46451e4662 + added $APPTYPE TOOL for MPW tools on MacOS 2004-04-04 18:46:09 +00:00
peter
6b96b70118 * fixed operator overload allowing for pointer-string
* replaced some type_e_mismatch with more informational messages
2004-03-18 16:19:03 +00:00
peter
afcb1d6c14 * change error to warning 2004-03-04 17:25:55 +00:00
florian
61f15e4ec4 * make cycle fixed
+ pic support for darwin
  + support of importing vars from shared libs on darwin implemented
2004-03-02 17:32:12 +00:00
olle
4fecc1a56f * big transformation of Tai_[const_]Symbol.Create[data]name* 2004-03-02 00:36:32 +00:00
Károly Balogh
4cf5269aa7 + morphos target added 2004-02-24 17:16:39 +00:00
florian
1d8b4661b8 * message about illegal type conversion reports now the types 2004-02-21 16:03:10 +00:00
olle
4c95007b2b * added target Darwin to help page 2004-02-19 13:43:50 +00:00
peter
d42f4af064 * give warning that DWORD is used as size in delphi mode when no
size was specified
2004-01-22 16:29:11 +00:00
florian
75e2de9f2c + reintroduce implemented 2004-01-21 14:22:00 +00:00
florian
dd8f11e8e1 * fixed ldm/stm arm assembler reading
* fixed a_load_reg_reg with OS_8 on ARM
  * non supported calling conventions cause only a warning now
2003-12-08 17:43:57 +00:00
florian
1af574ceca * assembler readers OOPed
+ typed currency constants
  + typed 128 bit float constants if the CPU supports it
2003-11-12 16:05:39 +00:00
florian
bbf7300a0c * Florian's culmutative nr. 1; contains:
- invalid calling conventions for a certain cpu are rejected
    - arm softfloat calling conventions
    - -Sp for cpu dependend code generation
    - several arm fixes
    - remaining code for value open array paras on heap
2003-11-07 15:58:32 +00:00
peter
81449fa691 * constant expr expected 2003-10-07 17:52:50 +00:00
peter
e732233993 * invalid register message 2003-09-28 13:38:11 +00:00
olle
f891435ca0 + added command line option for language mode -M<x>
+ helpinfo powerpc targets
2003-09-17 21:38:54 +00:00
florian
22f1ff8da4 * merged Wiktor's Watcom patches in 1.1 2003-09-05 17:41:12 +00:00
peter
09ed47cba6 * don't allow add/assignments for formaldef
* formaldef size changed to 0
2003-07-08 15:20:56 +00:00
peter
563e8d205f * creating class with abstract call checking fixed
* there will be only one warning for each class, the methods
    are listed as hint
2003-06-08 11:42:33 +00:00
peter
aaf6114364 * moved Comment calls to messge file 2003-05-25 10:27:12 +00:00
florian
91bbc7bea3 * error when address of an abstract method is taken
* fixed some x86-64 problems
  * merged some more x86-64 and i386 code
2003-04-30 20:53:32 +00:00
peter
f3caa701d3 * regenerated 2003-03-30 19:03:59 +00:00
Tomas Hajny
8e7124f9f8 + emx target added 2003-03-23 23:11:17 +00:00
peter
31cee7b219 * only allow class [procedure|function] 2003-03-19 17:34:04 +00:00
daniel
e8f649f5c2 + $define newra will enable new register allocator
+ getregisterint will return imaginary registers with $newra
  + -sr switch added, will skip register allocation so you can see
    the direct output of the code generator before register allocation
2003-03-08 08:59:07 +00:00
peter
2721d341f0 * merged some verbosity options.
* V_LineInfo is a verbosity flag to include line info
2003-01-09 21:52:37 +00:00
florian
07110d20f9 + added proper support of type = type <type>; for simple types 2003-01-05 15:54:15 +00:00
peter
b44a8b42c8 * don't allow initialized threadvars 2002-12-27 15:22:20 +00:00
carl
081a4aab35 * 3% memory optimization
* changed some types
  + added type checking with different size for call node and for
     parameters
2002-12-07 14:27:07 +00:00
peter
dc66eafb0b * merged cdecl and array fixes 2002-12-06 17:51:09 +00:00
carl
2f89d59534 * warning of portabilitiy problems with parasize / localsize 2002-12-01 22:06:59 +00:00
carl
0fa2b27920 * updating of message files finihsed
(left to remove unused messages)
2002-11-30 23:15:56 +00:00
carl
f8d831d6ce + -Ce for softfpu 2002-11-30 21:29:56 +00:00
carl
5c5db0e0a3 + unimplemented hint directive added
* hint directive parsing implemented
  * warning on these directives
2002-11-29 22:31:19 +00:00
carl
5abec3d375 * warning / hint for possible loss of data in assignment 2002-11-29 20:02:42 +00:00
carl
4532dbd680 * updated notes and hints 2002-11-27 19:43:21 +00:00
carl
fdbae45a2c + hint for in operator with non byte sized operand 2002-11-26 21:52:37 +00:00
carl
b844e3e32b * several mistakes fixed in message files 2002-11-25 21:05:51 +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
bfd72ad5d5 * merged changes from 1.0.7 up to 04-11
- -V option for generating bug report tracing
    - more tracing for option parsing
    - errors for cdecl and high()
    - win32 import stabs
    - win32 records<=8 are returned in eax:edx (turned off by default)
    - heaptrc update
    - more info for temp management in .s file with EXTDEBUG
2002-11-15 01:58:45 +00:00
carl
5373203246 + compile-time range checking for strings 2002-10-03 21:26:08 +00:00
peter
1258411f72 * moved comments about default parameters to msg file 2002-09-09 19:40:20 +00:00
carl
65988f5c09 * PPU checking errors for fpu emulation 2002-08-15 15:12:34 +00:00
florian
030eae46de * a couple of interface related fixes 2002-08-09 07:33:01 +00:00
florian
4f7b35be5b + source code page support 2002-07-20 17:11:48 +00:00
Jonas Maebe
6b01278234 * fixed bug #1985 2002-06-10 13:41:26 +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
2dcf2ee940 * give error when using enums with jumps as array index
* allow char as enum value
2002-04-16 16:12:47 +00:00
peter
3bcfe33002 * fixed stackcheck that would be called recursively when a stack
error was found
  * generic changeregsize(reg,size) for i386 register resizing
  * removed some more routines from cga unit
  * fixed returnvalue handling
  * fixed default stacksize of linux and go32v2, 8kb was a bit small :-)
2002-04-15 19:44:18 +00:00
carl
c15b93444a + added missing options 2002-04-14 13:05:26 +00:00
carl
eb09d6061c - remove go32v1 support 2002-03-28 20:46:44 +00:00
peter
bd6dcff932 * fixed Message4() 2002-03-01 12:41:40 +00:00
peter
9b385a2ab7 * regenated 2002-02-28 21:30:32 +00:00
Jonas Maebe
d117d71141 * typed constants that are "procedure of object" and which are assigned
nil require 8 bytes of "0" (not 4)
  * fixed web bug #1655 (reject the code)
2001-10-29 14:59:48 +00:00
peter
e37dbf904d * calling convention rewrite 2001-10-25 21:22:32 +00:00
peter
5f98096685 * give error with string constants longer than 255 chars, this is
compatible with kylix
2001-10-22 19:55:44 +00:00
peter
cb06c9bcb8 * array access for properties added 2001-10-21 12:33:05 +00:00
peter
17d6dded66 * interface 2 guid support
* guid constants support
2001-10-20 19:28:37 +00:00
Jonas Maebe
588c9858e0 * changed error message for explicit self parameter (it's allowed again
for normal procedures) (merged)
2001-10-01 13:54:55 +00:00
peter
45dab81414 * merged netbsd, fpu-overflow from fixes branch 2001-09-17 21:29:10 +00:00
Jonas Maebe
6a15178f0f * fixed web bug #1593
* writing of procvar headers is more complete (mention var/const/out for
    paras, add "of object" if applicable)
  + error if declaring explicit self para as var/const
  * fixed mangled name of procedures which contain an explicit self para
  * parsing para's should be slightly faster because mangled name of
    procedure is only updated once instead of after parsing each para
    (all merged from fixes)
2001-09-10 10:26:26 +00:00
peter
eb92d4bdd6 * check for size differences in typecasts when assigning 2001-09-02 21:13:31 +00:00
peter
ce43e79517 * detect duplicate labels 2001-08-30 19:43:50 +00:00
peter
fd8e5fa78c * palmos support from v10 merged 2001-08-19 11:22:22 +00:00
peter
634a68bf3e * merged netbsd start
* profile for win32
2001-08-07 18:47:12 +00:00
peter
e24474d9ac * -Ur switch (merged)
* masm fixes (merged)
  * quoted filenames for go32v2 and win32
2001-06-18 20:36:23 +00:00
peter
e652444594 + varargs directive 2001-06-04 11:53:12 +00:00
Jonas Maebe
34ef6cd933 + detect incomplete typed constant records 2001-05-06 17:15:00 +00:00
peter
79b1b63dcb * give error with local external procedure 2001-04-13 18:03:15 +00:00
peter
e49f13a393 * press enter moved to errore.msg 2001-03-05 21:50:28 +00:00
peter
684970ea22 * merged generic m68k updates from fixes branch 2001-02-26 19:44:52 +00:00
peter
18a87e23d4 * new messages merged 2001-02-20 21:49:18 +00:00
Tomas Hajny
577ebe46a5 * mistyping correction (assemler) 2001-02-04 01:42:00 +00:00
Tomas Hajny
ee51dcc980 + APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2 2001-01-20 18:32:52 +00:00
peter
be95b0758b * object to class conversion
* more verbosity for -vt and -vd
  * -i options can be put after eachother so the Makefiles only need
    to call fpc once for all info (will be twice as the first one will
    be to check the version if fpc supports multiple info)
2000-12-23 19:46:49 +00:00
Jonas Maebe
12371eaa07 + warning when there is a chance to get a range check error because of
automatic type conversion to u32bit
2000-12-16 15:54:52 +00:00
Jonas Maebe
585b5f2e00 * fixed web bug #1144
+ implemented range checking for 64bit types
2000-12-11 19:10:19 +00:00
florian
ad8ccd0c0e *** empty log message *** 2000-11-19 16:23:06 +00:00
florian
e24f3f300e *** empty log message *** 2000-11-17 08:20:19 +00:00
florian
51527ba1c9 + merged Attila's changes for interfaces, not tested yet 2000-11-04 14:25:19 +00:00
Jonas Maebe
a4fde73649 + register renaming ("fixes" bug1088)
* changed command line options meanings for optimizer:
      O2 now means peepholopts, CSE and register renaming in 1 pass
      O3 is the same, but repeated until no further optimizations are
        possible or until 5 passes have been done (to avoid endless loops)
  * changed aopt386 so it does this looping
  * added some procedures from csopt386 to the interface because they're
    used by rropt386 as well
  * some changes to csopt386 and daopt386 so that newly added instructions
    by the CSE get optimizer info (they were simply skipped previously),
    this fixes some bugs
2000-10-24 10:40:52 +00:00
peter
4bd9325ae6 * more quotes 2000-10-15 09:07:41 +00:00
Jonas Maebe
c1e14ef033 * fixed another range check error (merged from fixes branch) 2000-10-09 14:54:27 +00:00
peter
092352b0fd * merged @result fix from Pierre 2000-10-08 10:26:33 +00:00
Jonas Maebe
45d4e0202a * fixed dupplicate message numbers (from Pierre's fix in the fixes
branch)
2000-09-28 09:10:47 +00:00
peter
24fc983597 * message updates merges 2000-09-24 21:33:46 +00:00
florian
9c18ccb6e2 + netware target added 2000-09-11 17:12:29 +00:00
peter
c21d6d6871 * give fatal if objfpc/delphi mode things are found (merged) 2000-08-20 14:58:41 +00:00
peter
cb4de797c1 * class member decl wrong then no other error after it
* -vb has now also line numbering
  * -vb is also used for interface/implementation different decls and
    doesn't list the current function (merged)
2000-08-13 12:54:53 +00:00
michael
650fbb86aa + removed logs 2000-07-13 11:32:24 +00:00
peter
957d4cdc89 * new message files layout with msg numbers (but still no code to
show the number on the screen)
2000-06-30 20:23:33 +00:00
Tomas Hajny
c790e4afbe + $R support for OS/2 (EMX) added 2000-06-25 19:08:27 +00:00
pierre
a64310a252 + new warning for C packed records 2000-06-23 21:33:25 +00:00
peter
2b1d92cb5c * no binary value reading with % if not fpc mode
* extended illegal char message with the char itself (Delphi like)
2000-06-18 18:05:54 +00:00
peter
11e4a9a22d * added need_dollar msg 2000-06-14 19:04:09 +00:00
pierre
ef8abc1dd7 * operator overloading now uses isbinaryoperatoracceptable
and is unaryoperatoracceptable
2000-06-02 21:24:46 +00:00
peter
535f63923c * fixed % parsing and added modulo support
* changed some evaulator errors to more generic illegal expresion
2000-05-26 18:23:09 +00:00
pierre
947fa03cb0 + check of compatibility between selected assembler
output and target OS
2000-05-23 21:28:19 +00:00
pierre
d299af0815 + add a warning if using ENTER instruction with linux target 2000-05-17 11:08:24 +00:00
pierre
18073d8424 + FADD to FADDP conversion warning
+ MsgCrcValue added to msgidx.inc file
2000-05-15 14:02:31 +00:00
pierre
e0328653f1 + add a warning if a const string is longer than the
length of the string type
2000-05-11 09:15:12 +00:00
pierre
cd93ae3564 * some new messages 2000-05-09 10:58:09 +00:00
pierre
9560f264a3 + sym_n_unit_not_used 2000-04-26 07:32:02 +00:00
florian
3f9126f999 * fixed bug #903: the compiler gives now a nice message if it can't create
the .o file, (same for future .ar)
2000-04-02 15:22:17 +00:00
pierre
482820110c + add a warning if esi is base and index in object assembler code 2000-03-28 22:11:46 +00:00
pierre
9c44048ad2 + add error if trying to use readln or writeln for files
or read or write on untyped files.
    Reset and rewrite are still incompatible with BP
    (reset(dat,1); is allowed for typed file !)
2000-03-27 09:42:48 +00:00
pierre
0f4e1e10e0 * fix for bug #807 2000-03-16 16:41:11 +00:00
pierre
4177d64781 * fix for bug #848 (that still genrated wrong code)
+ better testing for variables used in assembler
    (gives an error if variable is not directly reachable !)
2000-03-15 23:09:58 +00:00
michael
34c8f49271 + Added switch to swicth on assertions. 2000-03-13 20:15:08 +00:00
peter
85087cf8c2 * -gl option added 2000-02-07 12:19:26 +00:00
florian
f6f3a1a039 *** empty log message *** 2000-02-06 17:17:03 +00:00
peter
0d63b79f38 * helpscreen updates 2000-01-27 09:58:59 +00:00
pierre
da01d99789 * Range check for int64 produces a warning only 2000-01-25 08:46:03 +00:00
pierre
99d8f90aec + some warnings for wrong lines inside config files 2000-01-14 14:33:53 +00:00
florian
89ccc81c2b + added compiler switch $maxfpuregisters
+ fixed a small problem in secondvecn
2000-01-04 15:15:50 +00:00
peter
7583de7a4f - removed freelabel()
* added undefined label detection in internal assembler, this prevents
    a lot of ld crashes and wrong .o files
  * .o files aren't written anymore if errors have occured
  * inlining of assembler labels is now correct
1999-12-22 01:01:45 +00:00
pierre
bed6bb6b2a + $description $version 1999-12-20 23:23:28 +00:00
florian
577edbbd3f + compiler checks now if a goto leaves an exception block 1999-12-14 09:58:41 +00:00
pierre
5169b7b86b + allow use of unit var in exports of DLL for win32
by using direct export writing by default instead of use of DEFFILE
    that does not allow assembler labels that do not
    start with an underscore.
    Use -WD to force use of Deffile for Win32 DLL
1999-12-08 10:39:59 +00:00
pierre
b528749138 * Notes/Hints for local syms changed to
Set_varstate function
1999-11-18 15:34:44 +00:00
pierre
62da9bd4c0 * Notes/hints changes 1999-11-17 17:04:58 +00:00
peter
918b5219ea * labels used but not defined give error instead of warning, the warning
is now only with declared but not defined and not used.
1999-11-15 22:00:46 +00:00
pierre
604766601d * Pavel's changes for reloc section in executable
+ warning that -g needs -WN under win32
1999-11-15 15:03:46 +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
8e7dd52200 * error when properties are passed to var parameters 1999-10-22 14:37:25 +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
peter
fefc839b29 * redesigned linker object
+ library support for linux (only procedures can be exported)
1999-10-21 14:29:32 +00:00
florian
8b9633266b * new codegenerator compiles again 1999-10-12 21:20:41 +00:00
peter
532d85cd50 + procedure directive support in const declarations, fixes bug #232 1999-10-01 10:05:37 +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
peter
7f63615b43 * @procvar fixes for tp mode
* @<id>:= gives now an error
1999-09-17 17:14:02 +00:00
peter
64dcafcf80 * updated 1999-09-16 13:35:56 +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
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
peter
05f2be0455 * better support for object fields and more error checks for
field accesses which create buggy code
1999-09-08 16:04:01 +00:00
peter
453773ecb2 * TYPE support 1999-09-07 07:45:29 +00:00
peter
037319700d * moved parsing interface/implementation to -vu 1999-09-01 22:18:37 +00:00
pierre
55f6e70490 * double checksum problem solved 1999-08-27 14:52:56 +00:00
peter
3b89a3c501 * fixed message which was wrong styled 1999-08-06 11:13:17 +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
florian
9cbaac5beb * bugs 494-496 fixed 1999-07-26 09:41:59 +00:00
michael
f7284c4549 + Improved resourcestring handling 1999-07-24 16:22:10 +00:00
florian
35f636dea1 + resourcestring implemented
+ start of longstring support
1999-07-22 09:37:28 +00:00
florian
774df6096e * bug #487 fixed, (inc(<property>) isn't allowed)
* more fixes to compile with Delphi
1999-07-18 14:47:19 +00:00
florian
b2c99ecb9d + implemented a better error message if a PPU file isn't found as suggested
by Lee John
1999-07-14 21:19:01 +00:00
peter
b867e4f6de * assembler smartlink message 1999-07-10 10:12:03 +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
03e6ec96c5 * merged 1999-06-14 17:47:45 +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
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
41e4095cfa * if a non local variables isn't initialized the compiler doesn't write
any longer "local var. seems not to be ..."
1999-05-19 15:26:32 +00:00
peter
e8bf496ae8 * containsself fixes
* checktypes()
1999-05-18 14:15:18 +00:00
peter
0fa3bc3618 * removed -Fg and -Up 1999-05-16 02:28:51 +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
florian
d8307b9cd3 * override isn't allowed in objects! 1999-05-12 22:36:04 +00:00
peter
02364c2124 + hint where a duplicate sym is already defined 1999-05-09 12:46:19 +00:00
peter
4841b4236c * updated messages 1999-05-05 22:21:47 +00:00
florian
71ae948727 + method message handlers which contain an explicit self can't be called
directly anymore
  + self is now loaded at the start of the an message handler with an explicit
    self
  + $useoverlay fixed: i386 was renamed to i386base
1999-05-02 09:35:39 +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
pierre
8970dc7efd + added an error for var x,y : integer = 4;
for Delphi initialized vars
1999-04-25 22:31:32 +00:00
pierre
b573615038 + args by ebp offset warning in -vz mode 1999-04-21 16:24:49 +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
pierre
7482ba0913 * void pointer accepted with warning in tp and delphi mode 1999-04-16 12:14:44 +00:00
pierre
c568c17e4a + error for unsupported operand combination 1999-04-16 09:51:02 +00:00
pierre
9bca84a43d * fix for bug0234 1999-04-15 12:58:07 +00:00
peter
0ccfd1cb90 * int/int warning removed, only the hint is left 1999-04-08 11:33:56 +00:00
pierre
e933fef38b + new message for crc problems 1999-04-07 14:54:41 +00:00
peter
bdf7975be6 * type error for array constructor with array,record as argument 1999-04-01 21:59:56 +00:00
peter
d0cb5a147a * fixed bugs 212,222,225,227,229,231,233 1999-03-24 23:16:42 +00:00
florian
b8bd0af1b8 * wrong warning fixed, if a non-virtual method was hidden by a virtual
method (repoerted by Matthias Koeppe)
1999-02-24 09:51:40 +00:00
florian
3c576cce7d + first implementation of message keyword 1999-02-22 20:13:32 +00:00
pierre
0669413251 + -b and -bl options work !
+ cs_local_browser ($L+) is disabled if cs_browser ($Y+)
    is not enabled when quitting global section
  * local vars and procedures are not yet stored into PPU
1999-02-22 13:06:52 +00:00
florian
bad58ce2b7 + warning for lo/hi(longint/dword) in -So and -Sd mode added 1999-02-22 12:36:30 +00:00
peter
014f866939 * fixed error messages when parsing typed const array 1999-02-17 10:15:26 +00:00
pierre
9cd2a98429 * error adds for bug0175 1999-01-28 14:33:26 +00:00
pierre
0cfc4c8f6b * fix for constructor inside with statements 1999-01-21 16:40:51 +00:00
pierre
10d97a9144 * bugs related to mangledname solved
- linux external without name
    -external procs already used
    (added count and is_used boolean fiels in tprocvar)
1999-01-20 14:18:32 +00:00
pierre
e4dadb6b3b typeof(object) without vmt generates an error instead of an internalerror 1999-01-19 10:56:05 +00:00
peter
f67fb1b0eb * error if upper<lower in array decl 1999-01-15 13:08:19 +00:00
florian
d15d426756 * mainly problem with invalid case ranges fixed (reported by Jonas) 1999-01-05 08:19:59 +00:00
michael
2c476b0d22 + Added -Sh switch 1998-12-30 22:04:30 +00:00
peter
c7637424cf + resource file handling ($R directive) for Win32 1998-12-28 23:26:14 +00:00
peter
ec85c3d6fb * update -h page 1998-12-16 16:40:00 +00:00
peter
6e7f776c4f + -gh for heaptrc unit 1998-12-08 10:18:07 +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
162124d10c * give error when string[0] decl is found 1998-11-27 14:34:41 +00:00
peter
85726fcb35 * more ansistring fixes 1998-11-17 00:36:38 +00:00
peter
2e8ab172c2 * unused label is now a warning 1998-11-13 12:09:09 +00:00
peter
d84489d9b7 * recordtype.field support in constant expressions
* fixed imul for oa_imm8 which was not allowed
  * fixed reading of local typed constants
  * fixed comment reading which is not any longer a separator
1998-11-05 23:48:17 +00:00
peter
85b80b7aef * fixed unknown set operation msg 1998-11-05 14:28:12 +00:00
peter
3037445491 * released useansistring
* removed -Sv, its now available in fpc modes
1998-11-05 12:02:30 +00:00
florian
7e40231ad7 * some dll support for win32
* fixed assembler writing for PalmOS
1998-10-29 11:35:36 +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
6eaa58b9c5 + switch $APPTYPE for win32 added 1998-10-22 17:54:03 +00:00
pierre
eea45c0432 + terminated the include exclude implementation for i386
* enums inside records fixed
1998-10-22 17:11:13 +00:00
florian
d2f078ce49 + switch -vx for win32 added 1998-10-22 15:18:44 +00:00
pierre
6c1226ad3c + better error info on unimplemented set operators 1998-10-22 12:12:23 +00:00
florian
852aeb1a13 + check for access to index 0 of long/wide/ansi strings added,
gives now an error
  * problem with access to contant index of ansistrings fixed
1998-10-21 11:44:42 +00:00
pierre
4494bfafb6 * type ptree only allowed inside expression
if following sizeof typeof low high or as first arg of new !!
1998-10-20 15:10:15 +00:00
florian
eaab0f1c1b + switch -FD added to specify the path for utilities 1998-10-16 13:37:14 +00:00
pierre
ff45eacd79 + source_os is now set correctly for cross-processor compilers
(tos contains all target_infos and
     we use CPU86 and CPU68 conditionnals to
     get the source operating system
     this only works if you do not undefine
     the source target  !!)
  * several cg68k memory leaks fixed
  + started to change the code so that it should be possible to have
    a complete compiler (both for m68k and i386 !!)
1998-10-13 08:19:24 +00:00
pierre
9ec2dfaf4a + added tai_const_symbol_offset
for r : pointer = @var.field;
  * better message for different arg names on implementation
    of function
1998-10-12 12:20:37 +00:00
peter
0a80414650 + show name and date of .o and .s files which the compiler checks 1998-10-12 11:59:00 +00:00
florian
e05ec93224 + support of <procedure var type>:=<pointer> in delphi mode added 1998-10-12 09:49:53 +00:00
peter
f9f869fb37 + checks for division by zero 1998-10-11 14:31:15 +00:00
pierre
6f470079a0 * add a second load for PPU file 1998-10-09 14:38:50 +00:00
pierre
4073682c64 * still more memory leaks fixes !! 1998-10-09 11:47:45 +00:00
peter
0fc61cdfc1 * -vu shows unit info, -vt shows tried/used files 1998-10-08 23:28:50 +00:00
peter
3d984e5bf1 * m68k compiler compiles again 1998-10-06 20:48:56 +00:00
peter
c5039c8527 * better error message for unresolved forward types 1998-10-02 17:05:58 +00:00
peter
cc64ced22c * some more unit messages 1998-09-30 16:39:29 +00:00
peter
c8873b189f * fixed small typo in help pages 1998-09-25 09:56:07 +00:00
michael
d46ab2c19d + Someone forgot to commit this 1998-09-25 09:08:32 +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