Commit Graph

288 Commits

Author SHA1 Message Date
peter
af437d5beb * refactor the forward type declaration handling, remove
global typecanbeforward and move 'class of ..' parsing
    to ptype

git-svn-id: trunk@12045 -
2008-11-09 22:07:36 +00:00
peter
b6dcffe79b * remove obsolete bt_specialize
git-svn-id: trunk@12031 -
2008-11-07 00:14:08 +00:00
Jonas Maebe
e5920bc2b8 * delay verbosity changes just like localswitches changes
* store a node's verbosity in the node so that e.g. disabling warnings
    also disables warnings for this node in pass_1
   (the above together fix mantis #12076)
  * save/restore verbosity with {$push}/{$pop} (mantis #12075)
  * if warnings/notes/hints are turned off, also do not count encountered
    ones for the totals (otherwise -Sew cannot be used properly in
    combination with {$warnings off}, because disabled warnings will still
    trigger a compiler error) -- this required adding -vw/-vn/-vh to all
    tests using -Sew/-Sen/-Seh
  - removed some superfluous state saving/restoring from firstpass()

git-svn-id: trunk@12025 -
2008-11-03 21:18:27 +00:00
florian
69159eb9f3 + support for & and % in char constants, resolves #12186
git-svn-id: trunk@11809 -
2008-09-20 19:51:29 +00:00
florian
b178b08ba7 Merged revisions 11665-11738 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/unicodestring

........
  r11665 | florian | 2008-08-30 13:30:17 +0200 (Sat, 30 Aug 2008) | 1 line
  
  * continued to work on unicodestring type support
........
  r11666 | florian | 2008-08-30 19:02:26 +0200 (Sat, 30 Aug 2008) | 2 lines
  
  * expectloc for wide/ansi/unicode strings is LOC_CONSTANT or LOC_REGISTER now
........
  r11667 | florian | 2008-08-30 20:42:37 +0200 (Sat, 30 Aug 2008) | 1 line
  
  * more unicodestring stuff fixed, test results on win32 are already good
........
  r11670 | florian | 2008-08-30 23:21:48 +0200 (Sat, 30 Aug 2008) | 2 lines
  
  * first fixes for unix bootstrapping
........
  r11683 | ivost | 2008-09-01 12:46:39 +0200 (Mon, 01 Sep 2008) | 2 lines
  
      * fixed 64bit bug in iconvenc.pas
........
  r11689 | florian | 2008-09-01 23:12:34 +0200 (Mon, 01 Sep 2008) | 1 line
  
  * fixed several errors when building on unix
........
  r11694 | florian | 2008-09-03 20:32:43 +0200 (Wed, 03 Sep 2008) | 1 line
  
  * fixed unix compilation
........
  r11695 | florian | 2008-09-03 21:01:04 +0200 (Wed, 03 Sep 2008) | 1 line
  
  * bootstrapping fix
........
  r11696 | florian | 2008-09-03 21:07:18 +0200 (Wed, 03 Sep 2008) | 1 line
  
  * more bootstrapping fixed
........
  r11698 | florian | 2008-09-03 22:47:54 +0200 (Wed, 03 Sep 2008) | 1 line
  
  + two missing compiler procs exported
........
  r11701 | florian | 2008-09-04 16:42:34 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  + lazarus project for the linux rtl
........
  r11702 | florian | 2008-09-04 16:43:27 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  + set unicode string procedures
........
  r11707 | florian | 2008-09-04 23:23:02 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  * fixed several type casting stuff
........
  r11712 | florian | 2008-09-05 22:46:03 +0200 (Fri, 05 Sep 2008) | 1 line
  
  * fixed unicodestring compilation on windows after recent unix changes
........
  r11713 | florian | 2008-09-05 23:35:12 +0200 (Fri, 05 Sep 2008) | 1 line
  
  + UnicodeString support for Variants
........
  r11715 | florian | 2008-09-06 20:59:54 +0200 (Sat, 06 Sep 2008) | 1 line
  
  * patch by Martin Schreiber for UnicodeString streaming
........
  r11716 | florian | 2008-09-06 22:22:55 +0200 (Sat, 06 Sep 2008) | 2 lines
  
  * fixed test
........
  r11717 | florian | 2008-09-07 10:25:51 +0200 (Sun, 07 Sep 2008) | 1 line
  
  * fixed typo when converting tunicodestring to punicodechar
........
  r11718 | florian | 2008-09-07 11:29:52 +0200 (Sun, 07 Sep 2008) | 3 lines
  
  * fixed writing of UnicodeString properties
  * moved some helper routines to unicode headers
........
  r11734 | florian | 2008-09-09 22:38:55 +0200 (Tue, 09 Sep 2008) | 1 line
  
  * fixed bootstrapping
........
  r11735 | florian | 2008-09-10 11:25:28 +0200 (Wed, 10 Sep 2008) | 2 lines
  
  * first fixes for persisten unicodestrings
........
  r11736 | florian | 2008-09-10 14:31:00 +0200 (Wed, 10 Sep 2008) | 3 lines
  
  Initialized merge tracking via "svnmerge" with revisions "1-11663" from 
  http://svn.freepascal.org/svn/fpc/trunk
........
  r11737 | florian | 2008-09-10 21:06:57 +0200 (Wed, 10 Sep 2008) | 3 lines
  
  * fixed unicodestring <-> variant handling
  * fixed unicodestring property reading
........

git-svn-id: trunk@11739 -
2008-09-10 20:14:31 +00:00
florian
0789e9409d * write expressions when getting an invalid operand error in preprocessor
git-svn-id: trunk@11546 -
2008-08-11 18:47:43 +00:00
yury
fcceb9cfa1 * Removed/ifdefed/commented unused local variables.
git-svn-id: trunk@11430 -
2008-07-20 23:00:31 +00:00
florian
4a243d451f + support of -Mxxx or $modeswitch to enable single mode specific features
git-svn-id: trunk@10936 -
2008-05-10 22:04:53 +00:00
Jonas Maebe
a324744cbe * fixed checking for defined/undefined macro's in the configuration file
(#undef'ed macro's still caused #ifdef/#ifndef to return resp.
     true/false)

git-svn-id: trunk@10872 -
2008-05-03 09:55:41 +00:00
peter
f915cbc4ca * replace constants to formal const with variables
git-svn-id: trunk@10425 -
2008-03-02 14:01:22 +00:00
Jonas Maebe
24f8249f36 * flush pending local switch changes before evaluating ifopt
(mantis #10350)

git-svn-id: trunk@9413 -
2007-12-07 18:24:57 +00:00
yury
99a8012472 * Allow using constants in {$IF } directive in OBJFPC mode.
* Define FPC_OBJFPC_EXTENDED_IF to allow to test if this feature can be safely used.

git-svn-id: trunk@9342 -
2007-11-28 00:07:18 +00:00
yury
a477a3781a * Added support of HIGH() function in {$IF } preprocessor directive. Delphi 7 supports HIGH() there.
git-svn-id: trunk@9341 -
2007-11-27 23:58:53 +00:00
florian
d9e0f078e1 * continued to play around with package support
git-svn-id: trunk@9075 -
2007-11-02 22:26:43 +00:00
florian
6e5ff9b825 * hack around the -intconst hack in pexpr when recording tokens, resolves #9471
git-svn-id: trunk@8734 -
2007-10-06 14:33:57 +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
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
daniel
9adb202a92 * Rework the constexprint to allow operations from low(int64) to high(qword).
+ Some initial work on a formaldef which also carries the typinfo of a parameter.

git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
daniel
5aef9bc086 - Put gpc mode between ifdefs. The only thing it does it disable all
features, this is not gpc compatibility.

git-svn-id: trunk@6518 -
2007-02-16 23:13:28 +00:00
tom_at_work
106fe68ce6 * renamed TStringList to TCmdStrList, in general use TCmdStr instead of shortstrings to fix bug #6351
git-svn-id: trunk@6215 -
2007-01-26 22:29:39 +00:00
peter
70fc3274e2 * minor fixes from mantis 8132
git-svn-id: trunk@6091 -
2007-01-20 21:06:54 +00:00
peter
2bc3bd8c4f * ignoredirectives changed to tfphashlist
git-svn-id: trunk@5907 -
2007-01-11 21:52:53 +00:00
yury
4092321ae9 * Compiler directives {$...} are allowed in ARM inline assembler. It fixes tb0142.pp and tb0193.pp.
git-svn-id: trunk@5664 -
2006-12-21 20:48:18 +00:00
florian
f9235938b4 * storing/restoring of settings when doing a specialization
git-svn-id: trunk@5336 -
2006-11-11 21:37:09 +00:00
peter
0557ddc342 * removed typed const, it is now handled by staticvarsym
* globalvarsym renamed to staticvarsym
  * fixed invalid regvar use in init when the finalize also uses the var

git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
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
c371d639f4 * fixed missing reset of inputbuffer after include file or macro
git-svn-id: trunk@5187 -
2006-11-02 22:19:21 +00:00
peter
aee2da566d * scannerdirectives to TFPHashObjectList
git-svn-id: trunk@5153 -
2006-11-01 16:32:13 +00:00
florian
5cb1af6e2a * fixed some issue with the inputpointer when specializing generics
git-svn-id: trunk@5122 -
2006-10-31 13:30:57 +00:00
florian
a3a650ee73 * fixed more line numering output
* proper error message for generic methods not found
* fix small bug in replaying

git-svn-id: trunk@5121 -
2006-10-31 13:17:36 +00:00
peter
7a2e0da7bd * extra parameter for file searching functions
that indicate if the cache shall be used or not
  * fixed compile of non-x86 targets

git-svn-id: trunk@5115 -
2006-10-31 10:56:58 +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
2974bbaf10 * get proper moduleindex when loading a unit, fixes #4778
git-svn-id: trunk@5097 -
2006-10-30 21:01:51 +00:00
florian
058e1877ba + store compiler switch changes in generic token streams
git-svn-id: trunk@5095 -
2006-10-30 19:54:17 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f * remove ttype
* rename old ttype variables *type to *def
  * rename resulttypepass to pass_typecheck
  * rename pass_2 to pass_generate_code

git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
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
micha
5f353d6fef add warning for arithmetic on untyped pointers
git-svn-id: trunk@4823 -
2006-10-07 19:34:16 +00:00
micha
bd6afce618 enable typed addresses {$T+} in fpc and objfpc mode
git-svn-id: trunk@4795 -
2006-10-04 20:46:08 +00:00
peter
d0156354a6 * inline directive enabled by default for fpc,objfpc,delphi modes
* -Si and $inline directive control are now local switches and 
    have finer control on whether a function will really inlined or not

git-svn-id: trunk@4553 -
2006-09-04 19:54:21 +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
ed910b5d31 * support goto/label by default in tp/delphi/macpas modes (bug 4893)
git-svn-id: trunk@2958 -
2006-03-18 22:25:41 +00:00
peter
b1c66a106e * more dup id fixes
git-svn-id: trunk@2465 -
2006-02-07 07:58:37 +00:00
peter
a59690b147 * make generic basics working again
git-svn-id: trunk@2458 -
2006-02-06 09:21:08 +00:00
peter
232555904e * symtablestack cleanup and rewrite
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
olle
7b811ac58e Added short circuit evaluation of compile time expressions
git-svn-id: trunk@2331 -
2006-01-23 21:34:24 +00:00
peter
a5f659b982 * support FPCDATE include
git-svn-id: trunk@2263 -
2006-01-12 06:59:43 +00:00