Commit Graph

49369 Commits

Author SHA1 Message Date
svenbarth
fb6546972b * IID and IIDStr references of the VMT's interface table need to be indirect
git-svn-id: trunk@34338 -
2016-08-19 13:06:26 +00:00
svenbarth
77de5dd968 * reference assembler symbol of FPC_EMPTYMETHOD using AB_EXTERNAL and not AB_GLOBAL
git-svn-id: trunk@34337 -
2016-08-19 12:42:14 +00:00
svenbarth
70fbe50bac * reference the extern assembler symbol of the VMT when catching an exception if it's from another unit
git-svn-id: trunk@34336 -
2016-08-19 12:41:06 +00:00
pierre
2ec79b3606 Set result of functions calling RunError to avoid useless warnings
git-svn-id: trunk@34335 -
2016-08-19 12:21:17 +00:00
pierre
44f00c2bf4 Do not cast @JumpToHandleSignal to a longint, use ptruint type instead
git-svn-id: trunk@34334 -
2016-08-19 12:20:21 +00:00
yury
5e9d826d04 * android: Explicitly specified import library name.
git-svn-id: trunk@34333 -
2016-08-18 14:39:54 +00:00
yury
2630f3c498 * android: Properly initialize time zone information.
git-svn-id: trunk@34332 -
2016-08-18 14:03:34 +00:00
pierre
ef05e4cb49 Ensure '/' is used as directory separator to get same output as before
git-svn-id: trunk@34331 -
2016-08-18 11:43:56 +00:00
pierre
2b250bc0ab Makefile regeneration after:
Fix failure for windows make, related to the use of redirection,
  which on mingw32 make generate the use of a batch file, incompatible with
  forward slashes usd for createlst and gparmake.

  * utils/createlst.pp:
    Modify to add a first parameter with the name of the output file.

    Makefile.fpc: Adapt to new parameter of createlst.
    Change list name for directory TEST from TESTfilelist.lst to filelistTEST.lst
    to avoid generating files that start as the directory.

git-svn-id: trunk@34330 -
2016-08-18 07:08:28 +00:00
pierre
92c1190ace Reintroduce $(Q)
git-svn-id: trunk@34329 -
2016-08-18 07:08:20 +00:00
pierre
05542fbed9 Fix failure for windows make, related to the use of redirection,
which on mingw32 make generate the use of a batch file, incompatible with
  forward slashes usd for createlst and gparmake.

  * utils/createlst.pp:
    Modify to add a first parameter with the name of the output file.

    Makefile.fpc: Adapt to new parameter of createlst.
    Change list name for directory TEST from TESTfilelist.lst to filelistTEST.lst
    to avoid generating files that start as the directory.

git-svn-id: trunk@34328 -
2016-08-18 07:06:19 +00:00
yury
c4347e28b9 * pas2jni: Fixed handling of identical names of classes, proctypes when they are defined in different units.
git-svn-id: trunk@34327 -
2016-08-17 19:09:54 +00:00
pierre
6a3466e81a + Also write 'Terminate requested...' to output, so that the
information gets into log files if output is redirected.
  * Add 1000 to ExitStatus if TerminateSentCount is > 0
    to allow better discrimination between inferior exitcode and
    stop due to Terminate use.

git-svn-id: trunk@34326 -
2016-08-17 09:52:02 +00:00
pierre
876fd4aa5f Renegerate Makefile after:
Fix infinite loop problem that appear on gcc112 linux machine using GNU make 4.0.

  * Never put destination directory in the dependency list, as it gets modified when
    the target file is created and led to infinite recursion.
    We cannot use $(MKDIRTREE) unconditionally as this generates make error
    at least on Windows OS.
    Instead, create an explicit target for $(TEST_OUTPUTDIR), and add a: 
    $(MAKE) $dir
    line on gparmake, createlst and $(MAKEINC) targets explicitly.

git-svn-id: trunk@34325 -
2016-08-17 05:37:17 +00:00
pierre
bf652e79ed Fix infinite loop problem that appear on gcc112 linux machine using GNU make 4.0.
* Never put destination directory in the dependency list, as it gets modified when
    the target file is created and led to infinite recursion.
    We cannot use $(MKDIRTREE) unconditionally as this generates make error
    at least on Windows OS.
    Instead, create an explicit target for $(TEST_OUTPUTDIR), and add a: 
    $(MAKE) $dir
    line on gparmake, createlst and $(MAKEINC) targets explicitly.

git-svn-id: trunk@34324 -
2016-08-17 05:36:23 +00:00
Jonas Maebe
68088cd1da * regenerated after r34322
git-svn-id: trunk@34323 -
2016-08-16 16:33:24 +00:00
Jonas Maebe
b3419ef06e * add $(CREATELST) to the dependencies of $(GPARMAKE), so that both binaries
are not compiled at the same time (because otherwise the compiler may
    trip over itself in case it performs linking via an external script or
    using a response file)

git-svn-id: trunk@34322 -
2016-08-16 16:33:21 +00:00
pierre
6f80a4cc29 Fix tw3124 test for systems on pagecode 437.
* Never modify the first half of LowerCaseTable:
   even if 'A' is the upper form of 'a' with an accent ('…'),
   that doesn't mean that the lowercase form of 'A' should be
   'a' with the accent ('…') instead of plain 'a'.

git-svn-id: trunk@34321 -
2016-08-16 14:47:29 +00:00
pierre
b9e336dcbe Fix for trwsync.pp sporadic failure that appeared in trunk.
The problem was in the source of random related functions,
  which are used in this test by several thread in parallel,
  while this code is known and advertised as non-thread safe.

  The access by multiple threads led to multiple increments of the
  mt_index static variable, which was then never reset to zero and
  led to all successive calls to random function to return zero.

  This fix simply insures that the mt_state array is never
  accessed past its end, and that mt_index is reset correctly even
  if multiple increments do happen.

  It does not make the random function thread-safe.

  * Use local variable l_index to avoid accessing mt_state array past last element.
  * Change mt_index=MTWIST_N+1 into l_index>=MTWIST_N+1
    to insure that mt_init will be called again if index is past end.

git-svn-id: trunk@34320 -
2016-08-16 11:59:33 +00:00
svenbarth
cdda4da2d3 * sort the paths alphabetically
git-svn-id: trunk@34319 -
2016-08-15 15:58:16 +00:00
svenbarth
0a1be7f985 * also export all public RTTI and (required) INIT symbols aside from the non-existing internal ones
git-svn-id: trunk@34318 -
2016-08-15 14:49:44 +00:00
svenbarth
a073b86b57 * move handling of typesym's defs from insert_export() to its own function export_typedef()
git-svn-id: trunk@34317 -
2016-08-15 14:38:10 +00:00
svenbarth
c2662bd96a * mark defs created with create_global_internal() with df_internal so that they can be easily identified
git-svn-id: trunk@34316 -
2016-08-15 14:30:46 +00:00
joost
5d4682349d * Re-factored parsing of configuration-file, to be able to add support for include-files
git-svn-id: trunk@34315 -
2016-08-14 21:06:01 +00:00
joost
921399baf2 * Show progress-messages also in verbode and debug-mode
git-svn-id: trunk@34314 -
2016-08-14 20:20:43 +00:00
svenbarth
ad2facb10d * also add the forced indirect symbols of data symbols to the public assembler symbols
* export the forced indirect symbols of data symbols on systems without indirect imports

git-svn-id: trunk@34313 -
2016-08-14 15:37:52 +00:00
marco
690f784c4d * enable 40+ tests for Haiku as per mantis #30470
git-svn-id: trunk@34312 -
2016-08-14 14:09:24 +00:00
svenbarth
e2652d8a56 * regenerate after r34310
git-svn-id: trunk@34311 -
2016-08-14 11:25:30 +00:00
svenbarth
e0fd432c9d * use a Pascal tool instead of a Makefile to generate the list of test files; this way the testsuite works again with older versions of make that don't support $(info ...) (e.g. 3.80 and earlier)
git-svn-id: trunk@34310 -
2016-08-14 11:25:10 +00:00
yury
3b8db21c2c * pas2jni: Fixed invoking of Java event handlers from non-main threads.
git-svn-id: trunk@34309 -
2016-08-14 10:49:17 +00:00
svenbarth
57c1338aa1 * regenerate after r34307
git-svn-id: trunk@34308 -
2016-08-13 19:10:52 +00:00
svenbarth
2808be3e20 + add and use sysinit unit for Win64 (only one since we don't support cygwin and gprof there)
* switch Win64 to indirect entry information

git-svn-id: trunk@34307 -
2016-08-13 19:10:27 +00:00
svenbarth
dbbd7b6969 * use FPCSysInstance instead of SysInstance directly
git-svn-id: trunk@34306 -
2016-08-13 19:09:08 +00:00
Jonas Maebe
051317e82e * load the function result from the parentfpstruct to its original location
in exit nodes, because the wrapping code added in
    tnodeutils.wrap_proc_body() gets inserted before the exit label to which
    the exit node jumps

git-svn-id: trunk@34305 -
2016-08-13 14:47:50 +00:00
Jonas Maebe
a31ca58593 * factored out the loading the function result from the parentfpstruct into
its original location so it can be reused elsewhere too

git-svn-id: trunk@34304 -
2016-08-13 14:47:47 +00:00
Jonas Maebe
8760a6fbf8 * set shiftval to 0 if we convert a reference to a register paraloc,
as the reference overlaid the shiftval field and hence it could
    have any value

git-svn-id: trunk@34303 -
2016-08-13 14:47:44 +00:00
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