Jonas Maebe
c262c5dbc9
* synchronised with trunk till r42256
...
git-svn-id: branches/debug_eh@42257 -
2019-06-20 17:21:34 +00:00
Jonas Maebe
d6174499b1
* disable array and record regvars for all cpuhighleveltarget platforms
...
git-svn-id: trunk@42246 -
2019-06-18 19:16:33 +00:00
florian
749c4d4e47
+ keep (certain) arrays in registers if they are used with constants indices only
...
git-svn-id: trunk@42239 -
2019-06-16 21:29:48 +00:00
Jonas Maebe
faf75095cd
* synchronised with trunk till r42189
...
git-svn-id: branches/debug_eh@42190 -
2019-06-07 18:24:38 +00:00
marco
9313ddea78
* fix mantis 035656
...
git-svn-id: trunk@42146 -
2019-05-31 10:32:49 +00:00
Jonas Maebe
9e9a982bfe
* synchronised with trunk till r42095
...
git-svn-id: branches/debug_eh@42096 -
2019-05-18 18:43:51 +00:00
Jonas Maebe
cf9596421b
* fixed crashes on platforms using parentfpstructs with generic routines
...
that contain nested functions (when specialised, procedures don't have
the main function of the unit/program as parent procinfo)
git-svn-id: trunk@42063 -
2019-05-14 19:19:14 +00:00
Jonas Maebe
1b6425176b
* synchronised with trunk till r42049
...
git-svn-id: branches/debug_eh@42050 -
2019-05-12 18:44:05 +00:00
Jonas Maebe
281b3ad276
* fix case completeness and unreachable code warnings in compiler that would
...
be introduced by the next commit
git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +00:00
Jonas Maebe
3fa6838815
* basic llvm metadata support
...
git-svn-id: branches/debug_eh@41978 -
2019-05-02 19:45:26 +00:00
Jonas Maebe
ed2ae508d0
* only add hidden parameters for objectdef methods after generating the vmt,
...
so that they take into account inherited calling conventions (mantis #35233 )
o don't needlessly calculate the paraloc info when generating a JVM mangled
name
git-svn-id: trunk@41716 -
2019-03-16 19:14:14 +00:00
pierre
c1e93bd2c2
+ compiler/symdef.pas: Add missing call to tderef.reset methods in all tdef constructors.
...
+ compiler/sysmsym.pas: Do the same for for all tsym constructors.
+ compiler/symtype.pas: Generate internalerror in tcompilerppufile.putderef
if a deref field has index -1, as this means that buildderef was not called
while it should have been called.
+ compiler/symtable.pas: Fix bug report itself by adding an extra local variable
CHANGED to add extra cycles in tstoredsymtable.buildderef_referenced method.
New tests for this bug report: tests/webtbs/tw35139.pp and tests/webtbs/tw35139a.pp
git-svn-id: trunk@41425 -
2019-02-23 23:03:29 +00:00
Jonas Maebe
8b9e90dc7a
* keep track of whether a routine has a C-style variadic parameter in the
...
procoptions even when it's through an array-of-const parameter
* always call create_varargs_paraloc_info() instead of create_paraloc_info()
in the former case, even when no varargs parameters are specified (because
on some platforms even some non-variadic parameters need to be passed
differently, such as on ARM with gnueabihf)
git-svn-id: trunk@41420 -
2019-02-23 15:42:45 +00:00
Jonas Maebe
0db9ff5c39
* fixed packed bitsize calculation for types with a negative lower bound and
...
and upper bound just below the next power of two (mantis #34971 )
git-svn-id: trunk@41161 -
2019-02-01 17:31:53 +00:00
florian
8d3d5276d7
* open arrays and arrays of consts might be only stack tainting if they are passed by value
...
git-svn-id: trunk@41008 -
2019-01-22 21:58:05 +00:00
Jonas Maebe
91d5457b38
* moved around/replaced the following procedures to stop nflw from depending
...
on pdecsub (node units should not depend on parser units):
o maybe_add_public_default_java_constructor()
o handle_calling_convention()
o create_finalizer_procdef() (replaced with create_outline_procdef())
o insert_record_hidden_paras()
o handle_calling_convention()
o proc_add_definition()
o build_parentfpstruct()
o maybe_guarantee_record_typesym()
o get_first_proc_str()
* factored out the creation of a procinfo for a nested procdef based on a
subnodetree of the current procdef into tprocinfo.create_for_outlining()
git-svn-id: trunk@40773 -
2019-01-05 16:26:33 +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
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
95d79296bd
* fixed alignment of tfiledef (same as corresponding file recorddef)
...
* cap set alignment to sizeof(aint)
git-svn-id: trunk@40442 -
2018-12-01 23:07:05 +00:00
Jonas Maebe
50ab607676
+ customint torddef type to create arbitraty bit-width integers
...
o use this to handle non-power-of-two-sized parameters for llvm
o no general support in the parser/code generator, so don't expose
git-svn-id: trunk@40398 -
2018-11-29 20:57:08 +00:00
yury
c2c942374d
* Removed inline for methods which are too big.
...
git-svn-id: trunk@40224 -
2018-11-05 14:33:39 +00:00
yury
4357caaad8
* Removed unused local vars.
...
git-svn-id: trunk@40183 -
2018-11-02 18:44:29 +00:00
pierre
ae0c180e0b
Avoid overflow in code
...
git-svn-id: trunk@40113 -
2018-10-31 15:49:14 +00:00
Jonas Maebe
0b246f3dbd
* converted Boolean8 to an internal type, and mapped Boolean to the
...
new internal pasbool1(type) (part of mantis #34411 )
o apply the _Bool x86-64 parameter passing rules only to pasbool1
git-svn-id: trunk@39949 -
2018-10-16 21:14:18 +00:00
pierre
66e7c78a8f
fix position of ppuload_platform for trecorddef
...
git-svn-id: trunk@39913 -
2018-10-11 21:02:25 +00:00
pierre
88bddc2cb0
Fix ppuload for string type for i8086, use getasizeint for all string defs but short string
...
git-svn-id: trunk@39912 -
2018-10-11 20:38:39 +00:00
svenbarth
06267006f3
* explicitely handle the boolean types to determine the bit size as all of them have the bit size 1
...
+ added test
git-svn-id: trunk@39786 -
2018-09-21 13:24:49 +00:00
svenbarth
ecc02f3fdb
* always search in the current module as well as its symtables are be popped already in case of RTTI generation
...
git-svn-id: trunk@39688 -
2018-08-29 19:21:28 +00:00
svenbarth
190716ac0e
* move getrecorddef and gettabledef from TVMTWritter to symdef as they might be used from the RTTI as well
...
git-svn-id: trunk@39687 -
2018-08-29 19:21:23 +00:00
svenbarth
61bde67082
+ add method has_non_trivial_init_child() to tdef which provides access to the symtable's
...
sto_has_non_trivial_init flag
git-svn-id: trunk@39253 -
2018-06-20 19:00:11 +00:00
svenbarth
8423fd7632
* also process procsyms when adding a symtable as they may be generic dummy symbols as well
...
git-svn-id: trunk@39231 -
2018-06-15 13:49:16 +00:00
nickysn
17823821ca
* make procedures and functions, declared in the interface part of a unit in an
...
i8086 far code memory model to be 'far' even in {$F-} mode. This is TP7
compatible.
git-svn-id: trunk@38728 -
2018-04-10 15:37:28 +00:00
nickysn
55386ba547
+ show whether a procedure or function is far in tprocdef.customprocname
...
git-svn-id: trunk@38725 -
2018-04-10 13:23:06 +00:00
nickysn
c7503ca291
+ introduced tabstractprocdef.ofs_address_type - the address type, generated for
...
ofs()
git-svn-id: trunk@38681 -
2018-04-04 15:16:42 +00:00
nickysn
7a7e09982b
+ show whether a procdef is far in tprocvardef.GetTypeName
...
git-svn-id: trunk@38599 -
2018-03-22 22:57:34 +00:00
florian
6d5ce55232
* unified def creation for open arrays
...
git-svn-id: trunk@38408 -
2018-03-04 17:59:05 +00:00
svenbarth
b765d661ce
* when registering a def also register the syms and defs of its symtables
...
git-svn-id: trunk@37340 -
2017-09-27 20:34:38 +00:00
svenbarth
a6821c63e0
* store the type of the helper that had been encountered during parsing in the objectdef and by extension the PPU
...
git-svn-id: trunk@37202 -
2017-09-13 21:24:06 +00:00
svenbarth
0b02dab684
+ new Delphi-compatible intrinsic GetTypeKind() which returns the TTypeKind of a type as a constant value (and thus can be optimized away in If- and Case-statements)
...
+ added test
git-svn-id: trunk@36875 -
2017-08-11 22:12:53 +00:00
svenbarth
06d7e26df0
* move code to add a symbol to the current module's generic dummy symbols into a new function pgenutil.add_generic_dummysym()
...
git-svn-id: trunk@36466 -
2017-06-09 14:30:23 +00:00
florian
b1dff29cbf
* removed unused units
...
git-svn-id: trunk@36165 -
2017-05-09 19:53:14 +00:00
svenbarth
5f8135dd84
* tarraydef.setelementdef: don't call size for array constructors as they'll only have one once they're converted to dynamic arrays
...
git-svn-id: trunk@36089 -
2017-05-04 20:57:06 +00:00
maciej-izak
b912deae33
* each record with managed field or with any management operator needs init table (update for symdef.pas, trecorddef.needs_inittable)
...
git-svn-id: trunk@35440 -
2017-02-18 18:50:57 +00:00
maciej-izak
15ba9b54c6
Store informations about management operators in ppu files for records.
...
ppu.pas:
* increase ppu version
symconst.pas:
+ new enum tmanagementoperator and set tmanagementoperators
symtable.pas, trecordsymtable:
+ new field managementoperators
+ new method includemanagementoperator
symdef.pas, trecorddef.ppuload and trecorddef.ppuwrite:
* save/load for managementoperators
git-svn-id: trunk@35439 -
2017-02-18 18:43:25 +00:00
Károly Balogh
69a502db37
instead of stringdup(ppufile.getstring), have a getpshortstring function in entfile, and use it whereever possible. this avoids an extra shortstring copy, compared to the earlier solution
...
git-svn-id: trunk@35233 -
2017-01-04 19:19:50 +00:00
Jonas Maebe
6e05c78a54
+ support for recording an exception catching personality function for a
...
procdef for ABI-conformant exception handling
git-svn-id: trunk@35162 -
2016-12-18 13:57:45 +00:00
svenbarth
f8c23c84b6
* have pointerdefs and classrefdefs "inherit" the df_generic and df_specialization flags from the def they point to and set the genericdef accordingly
...
git-svn-id: trunk@35091 -
2016-12-09 16:20:36 +00:00
Jonas Maebe
472b5228fe
* changed ncgutil.has_alias_name(pd,s) to a method of tprocdef
...
git-svn-id: trunk@35085 -
2016-12-09 13:39:28 +00:00
svenbarth
ee466b9a28
* extend tdef.fullownerhierarchyname() with a parameter that skips the inclusion of a procdef's parameter declaration using the new pno_noparams option
...
git-svn-id: trunk@35009 -
2016-11-28 18:06:35 +00:00
svenbarth
930070a8ca
+ new tprocnameoption pno_noparams to prohibit tprocdef.customprocname() from adding the procdef's parameters
...
git-svn-id: trunk@35008 -
2016-11-28 18:01:53 +00:00