Commit Graph

49033 Commits

Author SHA1 Message Date
Jonas Maebe
7ebbb744e9 * also specify sret attribute at the caller side
git-svn-id: trunk@34302 -
2016-08-13 14:47:42 +00:00
Jonas Maebe
819f0c39fa * specify the "byval" attribute also at the caller side
git-svn-id: trunk@34301 -
2016-08-13 14:47:39 +00:00
Jonas Maebe
f0bf3b364a * fixed alignment of reference used to set the first char of a 1-byte
shortstring

git-svn-id: trunk@34300 -
2016-08-13 14:47:36 +00:00
Jonas Maebe
f417ed6576 * internalerror in case a reference's alignment is not set in
thlcgllvm.make_simple_ref_ptr()

git-svn-id: trunk@34299 -
2016-08-13 14:47:34 +00:00
Jonas Maebe
2f0c3ce8cc * fixed updating the reference alignment in thlcgllvm.g_set_addr_nonbitpacked_field_ref()
git-svn-id: trunk@34298 -
2016-08-13 14:47:31 +00:00
Jonas Maebe
ade1d811b0 * update the alignment of the reference in thlcgobj.get_bit_const_ref_sref()
after adapting the offset

git-svn-id: trunk@34297 -
2016-08-13 14:47:29 +00:00
Jonas Maebe
de465e056b * set the alignment resulting from an aligned() call to the actual natural
alignment of the resultdef rather than to 0 (required for llvm, and
    cleaner since then the code generator knows the actual alignment)

git-svn-id: trunk@34296 -
2016-08-13 14:47:26 +00:00
Jonas Maebe
a83f3c1a45 * fix maximum common alignment calculation in g_concatcopy() (if the second
parameter of newalignment() is larger than the first, the result is always
    1)

git-svn-id: trunk@34295 -
2016-08-13 14:47:23 +00:00
joost
c90b5773b9 * Corrected name of advancedsingleinstance.pas in fpmake.pp
git-svn-id: trunk@34294 -
2016-08-13 10:10:24 +00:00
Jonas Maebe
f891788a86 * simplification of and fix for AArch64 cpupara.is_hfa_internal() (patch by
modulo7, mantis #30381)
   o check for array elements of size 0 does not make sense after we've
     established it's an array of floats
   o since the recursive call to is_hfa_internal() already checks for
     floats, we don't have to do it before calling it again for the
     elements of an array
   o set the result to "true" if the array is small enough to be a HFA

git-svn-id: trunk@34293 -
2016-08-12 16:53:02 +00:00
svenbarth
a2bf4efce2 * use indirect imports for FPC_EMPTYCHAR if necessary
* make not of FPC_EMPTYCHAR as external assembler symbol

git-svn-id: trunk@34292 -
2016-08-12 14:20:17 +00:00
svenbarth
bf3c7144b0 * make not of public assembler symbols for variables and classes if necessary
git-svn-id: trunk@34291 -
2016-08-12 14:19:11 +00:00
Jonas Maebe
20cbdf75ea + test for mantis #24189 (already works in trunk, still broken in 3.0)
git-svn-id: trunk@34290 -
2016-08-12 13:40:19 +00:00
Jonas Maebe
8e0ee6599c * store parameters to inline routines that are already in a temp into a new
temp if the original temp was marked as ti_const, and the new parameter
    gets modified (mantis #30015)

git-svn-id: trunk@34289 -
2016-08-12 13:35:56 +00:00
Jonas Maebe
70b1b32722 * let inline parameter temps inherit the "const" property of const
parameters, so we don't apply reference counting to them (mantis #30323)

git-svn-id: trunk@34288 -
2016-08-12 13:35:53 +00:00
Jonas Maebe
18580d3069 * when assigning a value to a temp marked as ti_const, do not immediately
release the source location in case it was also a temp. Reason: we
    don't increase reference counts when assigning to a ti_const (they are
    like const parameters), so the original value must stay alive until
    the ti_const temp is freed
   o free the original data in the ttempdelete node for the ti_const temp
   o don't increase reference counts when assigning composite types to
     ti_const temps either

git-svn-id: trunk@34287 -
2016-08-12 13:35:51 +00:00
Jonas Maebe
a3ca471d32 * factored out all the tests for whether we need to put inline parameters
in temps (no functional changes)

git-svn-id: trunk@34286 -
2016-08-12 13:35:48 +00:00
Jonas Maebe
8d1e8ea203 * fixed indentation in nonlocalvars()
git-svn-id: trunk@34285 -
2016-08-12 13:35:45 +00:00
Jonas Maebe
94f90895a6 * separated call to wrapcomplexinlinepara() from the method that puts
parameters into temps in case it's required for correctness (so we
    can easily "early exit" on failure from the latter) (still no
    functional changes)

git-svn-id: trunk@34284 -
2016-08-12 13:35:42 +00:00
Jonas Maebe
07856870bc * factored out code to determine whether we should put an inline parameter
in a temp or not (no functional changes)

git-svn-id: trunk@34283 -
2016-08-12 13:35:39 +00:00
Jonas Maebe
b17f90d183 * test for mantis #26402 (already fixed in 3.1.1, still broken in 3.0)
git-svn-id: trunk@34282 -
2016-08-12 13:35:37 +00:00
Jonas Maebe
c752050728 * don't print "parameter not used" hints for abstract methods (mantis #30431)
git-svn-id: trunk@34281 -
2016-08-12 13:35:34 +00:00
Jonas Maebe
f4015f6ac9 * fixed wrong class cast in case arrays/records are passed to a_loadfpu*()
(fixes tests/webtbs/tw26993.pp for llvm)

git-svn-id: trunk@34280 -
2016-08-12 13:35:31 +00:00
Jonas Maebe
4e8bda76cb * update alignment when advancing offset to next element of array constructor node
git-svn-id: trunk@34279 -
2016-08-12 13:35:28 +00:00
svenbarth
7678f5ecf0 Fix for Mantis #30453: add Delphi compatible TThreadList<>
git-svn-id: trunk@34278 -
2016-08-12 13:15:08 +00:00
pierre
5e120982e5 Regenerated after: Fix fullcycle by setting EXCLUDE_80BIT_TARGETS to 1 if 80bit-real is not supported by current source CPU
git-svn-id: trunk@34277 -
2016-08-11 13:31:07 +00:00
pierre
717153cfb0 Fix fullcycle by setting EXCLUDE_80BIT_TARGETS to 1 if 80bit-real is not supported by current source CPU
git-svn-id: trunk@34276 -
2016-08-11 13:25:24 +00:00
yury
d99f913836 * pas2jni: Fixed string constant handling after recent changes in FPC.
git-svn-id: trunk@34275 -
2016-08-11 12:41:13 +00:00
pierre
3a2dd2d6e1 Regenerate after: Add fullinstallsymlink phony target, to be able to create all symlinks needed to all crosscompilers
git-svn-id: trunk@34273 -
2016-08-11 09:08:28 +00:00
pierre
dbf1100b33 Add fullinstallsymlink phony target, to be able to create all symlinks needed to all crosscompilers
git-svn-id: trunk@34272 -
2016-08-11 09:08:14 +00:00
pierre
10454d4fec Regenerated msg files after: Add aarch64 to -P<x> CPU list
git-svn-id: trunk@34271 -
2016-08-11 09:07:01 +00:00
pierre
e6871efbf6 Add aarch64 to -P<x> CPU list
git-svn-id: trunk@34270 -
2016-08-11 09:06:14 +00:00
pierre
0e6b4def67 * Also search for ppcXXX if ppcrossXXX is not found for -PB option, show default binary
git-svn-id: trunk@34269 -
2016-08-11 09:01:58 +00:00
pierre
358eb38ef2 * fix test for msdos compact mode
git-svn-id: trunk@34268 -
2016-08-10 16:25:42 +00:00
pierre
d957595842 Fix for msdos, local variable SaveExit must be a CodePointer
git-svn-id: trunk@34267 -
2016-08-10 16:16:17 +00:00
pierre
4b17961dd4 * Skip some tests for msdos
git-svn-id: trunk@34266 -
2016-08-10 16:10:25 +00:00
pierre
6c6cf07c87 Remove heaptrc unit from buildrtl uses clause, heaptrc is handled separately to allow use of -gc option in RTL compilation
git-svn-id: trunk@34265 -
2016-08-10 09:49:55 +00:00
pierre
ed6dbc5330 Regenerate after: Allow compilation of win32 RTL with -gc option, by adding explicit heaptrc dependency to all units
git-svn-id: trunk@34264 -
2016-08-10 09:48:46 +00:00
pierre
0be6018ffc Allow compilation of win32 RTL with -gc option, by adding explicit heaptrc dependency to all units
git-svn-id: trunk@34263 -
2016-08-10 09:48:19 +00:00
pierre
5884fbc8b0 Move {$checkpointer off} before interface and relax windows data bss check to also accept sections in between like .rdata
git-svn-id: trunk@34262 -
2016-08-10 09:46:37 +00:00
pierre
3a9f2f55f4 -gc or {$CHECKPOINTER ON} requires heaptrc unit loading even for units
git-svn-id: trunk@34261 -
2016-08-10 09:44:01 +00:00
pierre
0cb0bc3371 Use symbols instead of constants in code:
+ AllocateSig and ReleaseSig for theap_mem_info.sig field.
  + CheckSig for theap_extra_info.check field.
  + CRC32Seed and CRC32Pattern in CRC related functions.

  * if sig is equal ReleaseSig, always assume already released (even if usecrc ius true).

git-svn-id: trunk@34260 -
2016-08-10 08:36:38 +00:00
pierre
5abbe42115 Add fpwidestring and unicodeducet units for go32v2 OS for wide string tests
git-svn-id: trunk@34259 -
2016-08-10 06:24:20 +00:00
pierre
b2467eae3b * Pass exitcode correctly down to __libc_start_main in _haltproc
git-svn-id: trunk@34258 -
2016-08-09 06:50:54 +00:00
pierre
ee3d204b72 * Files added in %FILES need to be copied to destination directory even if UniqueSuffix is empty, as execution directory is different from source directory
git-svn-id: trunk@34257 -
2016-08-08 14:49:36 +00:00
nickysn
aa528356c7 * fixed compilation of rtl-generics in the medium and compact i8086 memory models
git-svn-id: trunk@34256 -
2016-08-06 14:16:38 +00:00
svenbarth
2841cd9a9e * export IID and IIDSTR symbols of interfaces
git-svn-id: trunk@34255 -
2016-08-05 15:10:25 +00:00
svenbarth
296b7dbaf5 * explicitely load the system unit if we have at least one required package (as one of those *must* contain the system unit); but don't add it to the used units of the package module as otherwise we'd detect the package to contain the system unit as well
git-svn-id: trunk@34254 -
2016-08-05 14:45:40 +00:00
svenbarth
b079fed247 * generate an internal error when exporting an unknown symbol
- disable the debug output

git-svn-id: trunk@34253 -
2016-08-05 14:43:44 +00:00
svenbarth
32a354fc26 * ignore absolutevarsyms when exporting (at least for ordinary variable absolute symbols this works; for others we'll have to see...)
git-svn-id: trunk@34252 -
2016-08-05 14:42:58 +00:00