Commit Graph

54861 Commits

Author SHA1 Message Date
svenbarth
dbaf7a69bd * correctly handle a floating point result
git-svn-id: trunk@40664 -
2018-12-26 22:59:30 +00:00
svenbarth
551e36cd19 + add tests for floating point arguments and results
git-svn-id: trunk@40663 -
2018-12-26 22:59:27 +00:00
svenbarth
0d09c3c124 + add utility functions to get TValue values for Single, Double, Extended, Comp and Currency
git-svn-id: trunk@40662 -
2018-12-26 22:59:24 +00:00
svenbarth
bd328025fd * correctly compare tkFloat values
git-svn-id: trunk@40661 -
2018-12-26 22:59:21 +00:00
svenbarth
8d235b5f26 * more correct handling of floating point values (especially Comp and Currency) inside TValue
git-svn-id: trunk@40660 -
2018-12-26 22:59:18 +00:00
Mattias Gaertner
337fd5abb8 fcl-passrc: parser: fixed parsing record consts
git-svn-id: trunk@40659 -
2018-12-26 21:37:06 +00:00
svenbarth
e28dff523a * with the change regarding property access lists this test is no longer considered correct
git-svn-id: trunk@40658 -
2018-12-26 11:26:08 +00:00
svenbarth
60adebfe28 * Mantis #34691 is fixed by previous change regarding property access list
git-svn-id: trunk@40657 -
2018-12-26 11:26:04 +00:00
svenbarth
539ed761ba * a property access list must only consist of record or object fields; classes are not allowed
git-svn-id: trunk@40656 -
2018-12-26 11:26:01 +00:00
svenbarth
4afe3c6788 * regenerate msg*.inc files after addition of error message
git-svn-id: trunk@40655 -
2018-12-26 11:25:57 +00:00
svenbarth
425e9114f5 + add error message that a record or object type is required
git-svn-id: trunk@40654 -
2018-12-26 11:25:53 +00:00
Károly Balogh
120472dd5b amunits: fixed SetFileSize() return value to be LongInt
git-svn-id: trunk@40653 -
2018-12-26 06:13:41 +00:00
svenbarth
81fa0924d8 * an exception does not need to inherit from Exception, so declare that as such for the thread queue entry for the sake of clarity
git-svn-id: trunk@40652 -
2018-12-25 23:30:38 +00:00
svenbarth
3e0da1ef1c * fix for Mantis #34640: don't access the thread queue entry directly after it was added to the queue if it's a Queue()d entry instead of a Synchronize()d one
git-svn-id: trunk@40651 -
2018-12-25 23:30:35 +00:00
Mattias Gaertner
6ff287637a fcl-passrc: parser: record property must have type
git-svn-id: trunk@40650 -
2018-12-25 22:45:44 +00:00
Jonas Maebe
d75ba7cb11 * suppress notes about unused $nestedvars local variable
git-svn-id: trunk@40648 -
2018-12-25 18:22:41 +00:00
Jonas Maebe
acfa2088ef + test for previous commit
git-svn-id: trunk@40646 -
2018-12-25 17:52:56 +00:00
Jonas Maebe
9c6838ecca * do not allow implementing interface methods using methods that are not
visible in the current class

git-svn-id: trunk@40645 -
2018-12-25 17:51:30 +00:00
michael
66b61bd607 * Implement locate and lookup
git-svn-id: trunk@40644 -
2018-12-25 16:29:19 +00:00
Jonas Maebe
b840db7228 * addition to r40631: also force inline self parameters that are already in
a temp into a new temp for LLVM, so their type gets updated

git-svn-id: trunk@40642 -
2018-12-25 15:36:28 +00:00
Jonas Maebe
f754978540 * handle constructor function results that have been migrated to the
parentfpstruct the same as regular function results (see r32687)

git-svn-id: trunk@40641 -
2018-12-25 15:36:24 +00:00
Mattias Gaertner
18d4e36361 fcl-passrc: added some advanced record tests
git-svn-id: trunk@40639 -
2018-12-25 07:19:34 +00:00
Mattias Gaertner
5c5a524cd4 fcl-passrc: parse property dispid only in dispinterface
git-svn-id: trunk@40638 -
2018-12-25 07:18:12 +00:00
Jonas Maebe
70cadc7694 * fixed string constant length when going from utf-8 to single-byte code page
(mantis #33666, patch by engkin)

git-svn-id: trunk@40637 -
2018-12-24 22:21:40 +00:00
Jonas Maebe
c9a7afe053 * in constructors, free the temp holding self only after loading the function
result, as self is the function result there (follow up to 40501)

git-svn-id: trunk@40635 -
2018-12-24 22:10:09 +00:00
Jonas Maebe
acf02ab64b * when creating wrappers, add a prefix to parameter names to prevent them
hiding the method name of the wrapped routine
   o also add a few more '&' prefixes to the generated wrapper code to
     prevent issues when keywords are used as identifiers

git-svn-id: trunk@40634 -
2018-12-24 22:10:06 +00:00
Jonas Maebe
377d4e1b58 * make the size parameter of thlcgobj.location_force_mmregscalar() a
var-parameter, as the size sometimes gets changed in this routine and
    high level code generators don't use the location.size but the def

git-svn-id: trunk@40633 -
2018-12-24 22:10:02 +00:00
Jonas Maebe
f3d831b480 * fixed result cgsize of LLVM's second_nothing type conversion node (new
size instead of original size, which can be different in case of going
    from void to something else)

git-svn-id: trunk@40632 -
2018-12-24 22:09:58 +00:00
Jonas Maebe
eb769e3859 * force pointer-based self parameters of inlined routines in temps for LLVM
to ensure that their type gets updated

git-svn-id: trunk@40631 -
2018-12-24 22:09:55 +00:00
Jonas Maebe
3ccc3e329b * prevent calling firstpass multiple times for a node (such as when
transforming inc/dec to an addn/subn in case of range checking) from
    triggering the transformation logic for accessing nested variables
    on LLVM/JVM multiple times
  * also prevent it from triggering errors during inlining, in case a
    parameter to a nested routine gets replaced by a local variable
    from a parent routine (in that case, it does not need to be
    accessed via the parentfpstruct, as we are being inlined in the
    parent) -> don't duplicate the check from pass_typecheck in pass_1,
    but check whether it needs to be accessed via the parentfpstruct
    by verifying that tloadnode.left is assigned (which pass_typecheck
    will ensure if needed)

git-svn-id: trunk@40630 -
2018-12-24 22:09:52 +00:00
Jonas Maebe
dd29088430 * simplify all type conversions for formal constants even for LLVM and JVM
(since these happen at compile time and don't result in generated code,
     they never need extra type conversions in the code)

git-svn-id: trunk@40629 -
2018-12-24 22:09:48 +00:00
Jonas Maebe
b1b559f283 * fixed used resulttype of char-to-shortstring typeconversion in case the
shortstring type is smaler than 255 chars

git-svn-id: trunk@40628 -
2018-12-24 22:09:45 +00:00
Mattias Gaertner
765fdb7641 pastojs: fixed uninitialized result
git-svn-id: trunk@40620 -
2018-12-23 16:34:29 +00:00
pierre
1d7f5fa812 * in lexbase and yaccbase units,
use DirectorySeparator instead of '\' in functions
    path, root and addext.
  * in plex and pyacc programs, for unix,
    try to find installed yyparse.cod using
    path of paramstr(0).

git-svn-id: trunk@40619 -
2018-12-23 16:17:49 +00:00
marco
e156128065 * set version over $I, one less file to edit.
git-svn-id: trunk@40615 -
2018-12-22 16:31:39 +00:00
marco
a5b0531980 * fixed formatting parameter in SWarnRetryDeleteFile
git-svn-id: trunk@40614 -
2018-12-22 15:55:44 +00:00
marco
645b924b0c * ctrl-shift-arrow key definitions for xterm, xfce
git-svn-id: trunk@40611 -
2018-12-22 14:56:20 +00:00
michael
c0e680e277 * Load extension demo by Silvio Clecio
git-svn-id: trunk@40610 -
2018-12-21 23:09:40 +00:00
michael
51995c5cac * Examples for extension
git-svn-id: trunk@40609 -
2018-12-21 23:08:00 +00:00
michael
f5a1fce16f * Contribution by Silvio Clecio to make writing extensions possible
git-svn-id: trunk@40608 -
2018-12-21 23:06:14 +00:00
michael
e2ff02a0f5 * Small optimization: add const to string argument (By Silvio Clecio)
git-svn-id: trunk@40607 -
2018-12-21 22:11:32 +00:00
Jonas Maebe
f87304f5ca * fixed LLVM code generator not taking into account constalignmin/max
settings for typed constants

git-svn-id: trunk@40605 -
2018-12-21 20:57:22 +00:00
Jonas Maebe
4f72edcdd5 + LLVM support for the FMA intrinsics
git-svn-id: trunk@40604 -
2018-12-21 20:57:19 +00:00
Jonas Maebe
1cc995b471 * use ccallnode.createintern() instead of
ccallcnode.createinternfromunit('SYSTEM')

git-svn-id: trunk@40603 -
2018-12-21 20:57:16 +00:00
Jonas Maebe
c55ffa8cc7 * fixed <> comparisons with NaNs (use LLVM "unordered" comparison: succeed
if either operand is a NaN)

git-svn-id: trunk@40602 -
2018-12-21 20:57:12 +00:00
pierre
430ec7bbe4 Try to ix compilation failures in units/fpcunit directory
git-svn-id: trunk@40601 -
2018-12-20 22:39:40 +00:00
pierre
e9e5b05caa Remove Unicode $180E (Mongolian Vowel Separator), as it is not anymore a whitespace character
git-svn-id: trunk@40600 -
2018-12-20 21:30:44 +00:00
Jonas Maebe
3b4011760a * cleaned up blockaddress instruction (add type rather than hardcoding it
in the assembler writer)
  * fixed taking the address of a label in a typed const for llvm (fixes
    tbs/tb0468a)

git-svn-id: trunk@40599 -
2018-12-20 21:22:44 +00:00
Jonas Maebe
c6bb85eae9 * support for compiling the objects unit methods that expect local procedure/
function pointers using {$modeswitch nestedprocvars} functionality, activate
    this for LLVM and also activate that modeswitch for a test that uses this
   o also convert the IDE units to use this functionality
   o requires extra typecasts because implicit type conversions from
     procvar(p: psometype) to procvar(p: pointer) are not supported; on the
     plus side, even those type conversions are checked for validity
   o note: requires {$modeswitch nestedprocvars} in all programs/units
     that rely on this functionality

git-svn-id: trunk@40598 -
2018-12-20 21:22:40 +00:00
Mattias Gaertner
e108d9c5eb pastojs: concat(string1,string2,...)
git-svn-id: trunk@40597 -
2018-12-19 23:18:04 +00:00