Jonas Maebe
564f36f51e
* process tasnode.call in foreach(static) (fixes tw7391 with regvars on ppc)
...
git-svn-id: trunk@4783 -
2006-10-04 12:00:09 +00:00
Jonas Maebe
733f559267
* also perform C varargs type conversions for cdecl procedures declared
...
as "varargs" instead of using an array of const parameter
git-svn-id: trunk@4572 -
2006-09-08 16:04:15 +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
Jonas Maebe
e0250bcdb4
* never remove regvar-ability of parameters passed by reference
...
(previously worked only for var/out, now also for const and
is more generic)
git-svn-id: trunk@3554 -
2006-05-17 13:38:02 +00:00
florian
3c4207bbe0
* fixed i.e. when type casting array constructors
...
git-svn-id: trunk@3532 -
2006-05-14 20:13:56 +00:00
peter
810a776e10
* patch from Jonas to pass interface result as parameter
...
git-svn-id: trunk@3199 -
2006-04-13 07:04:48 +00:00
Jonas Maebe
039e7143f4
* avoid some unnecessary bool->int->bool type conversions
...
git-svn-id: trunk@3184 -
2006-04-09 18:33:05 +00:00
Jonas Maebe
ac11ab43a2
* fixed wrong conversions from real to currency/int64 for x86
...
git-svn-id: trunk@2954 -
2006-03-18 13:20:58 +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
Jonas Maebe
5fbc345674
+ some simplify support for ttypeconvnode
...
git-svn-id: trunk@2774 -
2006-03-05 21:38:05 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
45176ea2a8
* split tstringtype for stringdef and stringconstnode
...
to prevent wrong typecasts
git-svn-id: trunk@2276 -
2006-01-13 17:20:27 +00:00
Jonas Maebe
58381ff7b6
* made chararray handling 98% TP-compatible, fixes web bugs 3012
...
and 4080. The compatibility differences are:
a) writing a chararray which is zero-based but not zero-
terminated does not cause a buffer overflow
b) non-zero-based chararrays can also be read
The difference was that previously, all chararrays were treated
as pchars. In TP/Delphi (and now also in FPC), this is only done
for zero-based chararrays. For non-zero-based ones, the entire
contents of the array should always be used (including #0 's).
The default parameters in the system unit for the chararray
helpers are to avoid having to use a define for bootstrapping.
git-svn-id: trunk@2152 -
2006-01-04 10:05:10 +00:00
florian
e4a8f008a7
* fixed ie when "converting" double to double and single to single on softemu
...
git-svn-id: trunk@2031 -
2005-12-22 22:24:02 +00:00
Jonas Maebe
42ec76598c
* new categories for vs_*: vs_declared, vs_initialised, vs_read,
...
vs_written, vs_readwritten. vs_initialised is the old vs_assigned;
vs_used has been replaced by vs_read, vs_written and vs_readwritten
* the valid_for_*() routines in htypechk now get an extra parameter to
decide whether or not errors should be reported
git-svn-id: trunk@1913 -
2005-12-10 16:51:26 +00:00
florian
1ef533ffa9
* rtti parameter for dyn. array to variant conversion fixed
...
git-svn-id: trunk@1590 -
2005-10-23 19:41:16 +00:00
peter
f9db030350
* fix overload choosing if both normal proc and proc of object are available
...
git-svn-id: trunk@1496 -
2005-10-19 07:56:08 +00:00
peter
8d9e9b24a6
* convert constant widestring to ansistring before assigning to pchar
...
git-svn-id: trunk@1482 -
2005-10-18 20:49:23 +00:00
peter
8b60dbe4cb
* support constant array of char to array of widechar
...
git-svn-id: trunk@1475 -
2005-10-18 12:31:30 +00:00
peter
89297d2c39
* move all stabs ($ifdef gdb) code to dbgstabs
...
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +00:00
peter
edf553a223
* string constants are now array of char until
...
they are converted to a specific string type
git-svn-id: trunk@1254 -
2005-10-02 11:08:58 +00:00
peter
2f0fdd1847
* cleaner fix for tb0496 (r1185)
...
git-svn-id: trunk@1196 -
2005-09-25 19:23:37 +00:00
florian
be99f2a7fd
* fixed loading of addresses of virtual methods to methodpointers in delphi mode
...
git-svn-id: trunk@1182 -
2005-09-25 10:58:17 +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
peter
376865d041
* mark variables used in set creation
...
git-svn-id: trunk@706 -
2005-07-20 06:44:59 +00:00
florian
7c10694bc3
* fixed widechar const to widestring, fixes bug #4155
...
git-svn-id: trunk@638 -
2005-07-17 08:49:38 +00:00
peter
91b59bc62a
* don't check ranges for explicit typecasts of ordinal to pointer constants
...
git-svn-id: trunk@586 -
2005-07-05 07:14:30 +00:00
peter
bead787962
* fix type checking in constant sets
...
git-svn-id: trunk@583 -
2005-07-05 06:03:16 +00:00
florian
7cd67ea3f0
* node optimizer branch merged
...
* gotonode and gotolabel refactored
* -Nu added to enable for loop unrolling
git-svn-id: trunk@446 -
2005-06-19 17:42:10 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
68ac3b0ab2
remove forcing of non-regvar for left node when converting to non-regvar
2005-04-08 15:16:37 +00:00
michael
55e76063df
* Fix methodpointer copy from callnode to loadnode
2005-04-06 11:49:37 +00:00
peter
3f9d6ab32f
* add hint when passing an uninitialized variable to a var parameter
2005-03-25 22:20:18 +00:00
florian
737a81f30b
+ array -> dyn. array type cast
2005-03-11 21:55:43 +00:00
Jonas Maebe
adc5f048eb
* fixed small bug in ttypeconvnode.printnodeinfo
2005-03-05 16:09:20 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
a2a4985896
* in delphi mode const sets from enumerations with values > 255 are allowed if these elements aren't used
2005-02-03 18:43:59 +00:00
peter
4631658576
* add info that a procedure is local in error messages
2005-01-30 11:26:40 +00:00
peter
f4ec016665
* fix crash with -CR
2005-01-09 15:04:36 +00:00
florian
3cb0a53eca
+ compiler side of variant<->interface implemented
2005-01-07 21:14:21 +00:00
florian
ef9b70f1f4
* 1.0.10 starting patch from Peter
2005-01-06 13:40:41 +00:00
florian
7aa53f09cc
* widechararray patch from Peter
2005-01-06 13:30:40 +00:00
florian
80af47489d
+ first batch of patches to support tdef.getcopy fully
2005-01-03 17:55:57 +00:00
peter
f0267daa4a
* also don't call procvar when converting to procvar
2004-12-27 16:54:29 +00:00
peter
ced6bf20cd
* fix lineinfo for with blocks
2004-12-26 16:22:01 +00:00
peter
78c2af7b3c
* set vo_explicit_paraloc flag
2004-12-07 16:11:52 +00:00
peter
2b6456fe16
* procvar handling for tp procvar mode fixed
...
* proc to procvar moved from addrnode to typeconvnode
* inlininginfo is now allocated only for inline routines that
can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
florian
8b9c48e7fb
* fixed compiler side of variant <-> dyn. array conversion
2004-12-05 12:15:11 +00:00
peter
1fcd2cd8ad
* internal flag for compare_defs_ext
2004-11-26 22:34:28 +00:00
peter
4d8460ec2f
* float routines all use internproc and compilerproc helpers
2004-11-21 15:35:23 +00:00
Jonas Maebe
14197fb830
* copy totype field in ttypeconvnode.getcopy()
2004-11-02 20:15:53 +00:00
peter
2e161c5e9e
* nf_internal flag for internal inserted typeconvs. This will
...
supress the generation of warning/hints
2004-11-02 12:55:16 +00:00
peter
9b00c7832e
* support > 32bit accesses for x86_64
...
* rewrote array size checking to support 64bit
2004-11-01 23:30:11 +00:00
peter
2aceb6f856
* no checkpointer code for dynarr to openarr
2004-11-01 17:15:47 +00:00
peter
a2cbf27e96
* -Or fix for absolute
2004-11-01 15:31:57 +00:00
peter
adb6f59eef
* small regvar fixes
...
* loadref parameter removed from concatcopy,incrrefcount,etc
2004-10-24 11:44:28 +00:00
mazen
581b52422c
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
f1ae6fb6d4
* give error when converting class to interface are not related
2004-10-12 14:33:41 +00:00
peter
66df745917
* small regvar for para fixes
...
* function tvarsym.is_regvar added
* tvarsym.getvaluesize removed, use getsize instead
2004-10-11 15:48:15 +00:00
peter
8fb3536f6e
* simple regvar support, not yet finished
2004-09-26 17:45:29 +00:00
florian
120c165a62
* constant floating point assignments etc. are now overflow checked
...
if Q+ or R+ is turned on
2004-08-08 16:00:56 +00:00
peter
e179e7d9e1
* fix pchar:=char
...
* fix longint(smallset)
2004-06-29 20:57:50 +00:00
peter
cf3c1198ea
* include unit name in error messages when types are the same
2004-06-23 16:22:45 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
peter
b86f2c6a25
* methodpointer is loaded into a temp when it was a calln
2004-05-23 18:28:40 +00:00
peter
a9df763770
* some typeconvs don't allow assignment or passing to var para
2004-05-23 15:03:40 +00:00
florian
d6b865167c
+ added set of widechar support (limited to 256 chars, is delphi compatible)
2004-05-23 14:14:18 +00:00
daniel
b721e5872c
* Prepare compiler infrastructure for multiple ansistring types
2004-04-29 19:56:36 +00:00
peter
e46cdcea48
* constants ordinals now always have a type assigned
...
* integer constants have the smallest type, unsigned prefered over
signed
2004-03-23 22:34:49 +00:00
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
florian
1d8b4661b8
* message about illegal type conversion reports now the types
2004-02-21 16:03:10 +00:00
peter
c844c5a505
* procvar cleanup
2004-02-20 21:55:59 +00:00
peter
3a3fdde6d1
* compare_defs_ext has now a options argument
...
* fixes for variants
2004-02-13 15:42:21 +00:00
florian
465aa5851b
* several fixes to compile x86-64 system
2004-02-05 01:24:08 +00:00
daniel
d735071838
* Rtti generation moved to ncgutil
...
* Assmtai usage of symsym removed
* operator overloading cleanup up
2004-02-04 22:15:15 +00:00
peter
ecfbbeffc3
* renamed xNNbittype to xNNinttype
...
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
daniel
97e87aaebc
* reginfo now also only allocated during register allocation
...
* third round of gdb cleanups: kick out most of concatstabto
2004-01-26 16:12:27 +00:00
florian
3d8e1ab1fb
+ fpu<->mm register conversion
2003-12-26 00:32:21 +00:00
peter
f2d2c4c496
* fix rangecheck error
2003-12-22 23:11:15 +00:00
peter
1260eed8fd
* again procvar fixes
2003-12-08 22:35:28 +00:00
Jonas Maebe
3c33590a80
* fixed range error
2003-11-22 00:31:52 +00:00
florian
8b337fb5ef
+ type cast variant<->enum
...
* cnv. node second pass uses now as well helper wrappers
2003-11-04 22:30:15 +00:00
peter
9b0dda9f42
* don't call proc_to_procvar for explicit typecasts
2003-10-31 18:42:03 +00:00
florian
6a06df943b
* fixed passing of dyn. arrays to open array parameters
2003-10-29 22:01:20 +00:00
peter
079e489b08
* absolute to object field supported, fixes tb0458
2003-10-28 15:36:01 +00:00
peter
4a1ecb07d1
* splitted buildderef and buildderefimpl to fix interface crc
...
calculation
2003-10-23 14:44:07 +00:00
peter
6878c55c80
* write derefdata in a separate ppu entry
2003-10-22 20:39:59 +00:00
peter
a28d911c98
* IncompatibleTypes() added that will include unit names when
...
the typenames are the same
2003-10-21 18:16:13 +00:00
peter
a909ffdd35
* allow explicit typecasts from classrefdef, fixes 2728
2003-10-09 14:39:03 +00:00
peter
95f132db3d
* set_varstate cleanup
2003-10-08 19:19:45 +00:00
peter
e55017a946
* fix 2720
2003-10-07 14:30:27 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
0805c4e535
* fix different expectloc
2003-09-25 14:57:51 +00:00
florian
f3e9e7a24f
* fixed web bug #2669
...
* cosmetic fix in printnode
* tobjectdef.gettypename implemented
2003-09-06 22:27:08 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +00:00
peter
6731abb0db
* fixed some reported bugs
2003-08-10 17:25:23 +00:00
peter
28ebc69c8f
* removed changesettype because that will change the definition
...
of the setdef forever and can result in a different between
original interface and current implementation definition
2003-06-05 20:05:55 +00:00