michael
6abf361557
* New common base for all pascal code generator units in fcl
...
git-svn-id: trunk@39290 -
2018-06-23 13:56:38 +00:00
svenbarth
a2b58b842b
+ add support for threadvars in records
...
+ added tests
git-svn-id: trunk@39289 -
2018-06-23 13:49:16 +00:00
svenbarth
c3ca96279a
+ add support for threadvars inside classes
...
+ added tests
git-svn-id: trunk@39288 -
2018-06-23 13:49:12 +00:00
svenbarth
019ebe598a
* regenerate msg*.inc files after addition of the message about threadvars inside classes/records without
...
"class" specifier
git-svn-id: trunk@39287 -
2018-06-23 13:49:08 +00:00
svenbarth
0a45d7a774
+ add a message that is used when a threadvar section is started inside a class or record without the "class"
...
specifier
git-svn-id: trunk@39286 -
2018-06-23 13:49:05 +00:00
svenbarth
89f42fcdae
* handle vd_threadvar inside read_record_fields()
...
git-svn-id: trunk@39285 -
2018-06-23 13:49:01 +00:00
Mattias Gaertner
821182d518
pas2js: docs
...
git-svn-id: trunk@39284 -
2018-06-23 08:36:45 +00:00
Mattias Gaertner
db9d1aa547
pastojs: assignation using constant array, + operator arrays, clone static arrays, ref sets, adapted copy(), concat(), insert()
...
git-svn-id: trunk@39283 -
2018-06-23 08:25:56 +00:00
Mattias Gaertner
115e34eb51
fcl-passrc: resolver: assignation using constant array, + operator arrays, modeswitch arrayoperators, mode delphi: dyn arrays requires square bracket
...
git-svn-id: trunk@39282 -
2018-06-23 08:23:23 +00:00
Mattias Gaertner
7b96b931b3
fcl-passrc: modeswitch arrayoperators
...
git-svn-id: trunk@39281 -
2018-06-23 08:17:47 +00:00
svenbarth
ff407c56d9
* extend scanning of $modeswitch to support not only + and -, but also ON and OFF like other switches
...
+ added tests
git-svn-id: trunk@39280 -
2018-06-22 21:29:08 +00:00
nickysn
f036e67d8f
* fixed the reading of OMF groups by the internal linker. Previously, it only
...
worked, when the files had only one group, called 'DGROUP'.
git-svn-id: trunk@39279 -
2018-06-22 17:00:23 +00:00
nickysn
46b82e3208
+ added the necessary changes for section based smartlinking to the msdos
...
startup code, behind ifdef __I8086_SMARTLINK_SECTIONS__
git-svn-id: trunk@39278 -
2018-06-22 15:42:19 +00:00
nickysn
45337b67fe
+ when using the i8086 with section based smartlinking, create OMF section
...
groups, named 'CGROUP' or 'CGROUP_UNITNAME', which include all the code
sections, that need to be put in the same segment
git-svn-id: trunk@39277 -
2018-06-22 15:02:39 +00:00
nickysn
f07658d3dc
* get rid of TOmfRelocation.GetGroupIndex; instead, read the index property of
...
the group object. This adds support for groups, other than DGROUP, when
writing omf relocations.
git-svn-id: trunk@39276 -
2018-06-22 14:29:09 +00:00
nickysn
c8fc7c84c8
* avoid adding a section to a group twice in TOmfObjData.createsection
...
* add all sections, belonging to a group directly inside TOmfObjOutput.AddGroup,
based on the TObjSectionsGroup.members array
git-svn-id: trunk@39275 -
2018-06-21 21:14:54 +00:00
michael
dae7d20d69
* Fix bug #33880
...
git-svn-id: trunk@39274 -
2018-06-21 20:54:03 +00:00
nickysn
8a34bd22b8
* pass a TObjSectionGroup object as parameter to TOmfObjOutput.AddGroup, instead
...
of the group name
git-svn-id: trunk@39273 -
2018-06-21 20:45:52 +00:00
nickysn
d3db9e101a
* don't check for the presence of the group in TOmfObjOutput.AddSegmentToGroup,
...
because, it is no longer possible for it to not be present (all the groups
are added beforehand now)
git-svn-id: trunk@39272 -
2018-06-21 20:33:24 +00:00
nickysn
9a0eca52cb
* changed the type of TOmfObjSection.PrimaryGroup from string to
...
TObjSectionGroup, so instead of holding the group's name, it now points to the
TObjSectionGroup object, from which you can retrieve its name or any of the
other fields and properties it contains
git-svn-id: trunk@39271 -
2018-06-21 16:28:06 +00:00
nickysn
42f06acaeb
+ also create the primary section group and add the newly created section to it
...
in TOmfObjData.createsection
git-svn-id: trunk@39270 -
2018-06-21 16:14:42 +00:00
nickysn
f4e26f382f
+ added an 'index' field to TObjSectionGroup, specifying the index of the group
...
in the object file (similar to TObjSection.index, but for groups, instead of
sections). Set the new index field, when writing .obj files with the internal
omf object writer.
git-svn-id: trunk@39269 -
2018-06-21 15:51:58 +00:00
nickysn
ab47c8b899
+ introduce the omf_section_primary_group function. Use it instead of
...
section_belongs_to_dgroup, to allow sections to belong to groups, other than
dgroup.
git-svn-id: trunk@39268 -
2018-06-21 13:21:53 +00:00
pierre
ddf0aab494
Explicitly disabled overflow and range check
...
git-svn-id: trunk@39267 -
2018-06-21 04:56:32 +00:00
pierre
e518bd52ba
Explicitly disabled overflow and range check for these two tests
...
git-svn-id: trunk@39266 -
2018-06-21 04:52:37 +00:00
svenbarth
3f96c0baed
* use reverse_longword() instead of reverse_byte(); fixes the management operators of records inside classes on big endian systems
...
git-svn-id: trunk@39265 -
2018-06-20 21:11:19 +00:00
svenbarth
af6f094420
+ add reverse_longword() function that reverses the bit pattern for a longword, just like reverse_byte() and reverse_word() do for Byte and Word respectively
...
git-svn-id: trunk@39264 -
2018-06-20 21:10:19 +00:00
svenbarth
1c9ea4c120
* enable modeswitch arrayoperators for the tests
...
git-svn-id: trunk@39263 -
2018-06-20 19:54:09 +00:00
svenbarth
fa0765d131
* regenerate msg*.inc files after addition of the warning for array operators
...
git-svn-id: trunk@39262 -
2018-06-20 19:54:02 +00:00
svenbarth
fa78bb0e89
* warn if the compiler hides an eventual "+" operator overload if modeswitch ArrayOperators is active
...
git-svn-id: trunk@39261 -
2018-06-20 19:53:56 +00:00
svenbarth
7522a34a67
+ add a message that can be used if an internal operator hides an existing operator overload
...
git-svn-id: trunk@39260 -
2018-06-20 19:53:50 +00:00
svenbarth
97acf24290
+ add a new modeswitch ArrayOperators which is set by default in Delphi modes that enables the internal array operators (currently only "+")
...
git-svn-id: trunk@39259 -
2018-06-20 19:53:43 +00:00
svenbarth
9b45f58c0b
+ add flags that allow checking for overloads with isbinaryoverloaded() and isunaryoverloaded() without modifying the passed in node or even checking for normally non-overloadable operators
...
git-svn-id: trunk@39258 -
2018-06-20 19:53:34 +00:00
svenbarth
8536abce8a
* as the management operator feature is not platform specific using a specific define for it aside from a
...
version check is unnecessary, thus remove the FPC_HAS_MANAGEMENT_OPERATOR define and instead check for VER3_0
git-svn-id: trunk@39257 -
2018-06-20 19:00:24 +00:00
svenbarth
4d0ab82ef7
* optimize class initialization by calling RTTIRecord() only when required for a non-trivial initialization
...
git-svn-id: trunk@39256 -
2018-06-20 19:00:21 +00:00
svenbarth
ac0322c323
+ add a flags field to the record init RTTI which declares whether
...
a) the current record contains a field with non-trivial initialization
b) and of the parents contains such a field (only relevant for objects and classes)
git-svn-id: trunk@39255 -
2018-06-20 19:00:17 +00:00
svenbarth
eb06ac8ce8
* set up $MinEnumSize and $PackSet so that it matches the compiler's settings for types added in the future
...
git-svn-id: trunk@39254 -
2018-06-20 19:00:14 +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
cc153176f3
+ add a new symtable option sto_has_non_trivial_init that is true if the symtable contains a symbol with an
...
Initialize() operator (like sto_needs_init_final this flag is calculated on demand)
* increase PPU version
git-svn-id: trunk@39252 -
2018-06-20 19:00:08 +00:00
svenbarth
80ed66f349
* move calculation of sto_needs_init_final to a separate method do_init_final_check()
...
git-svn-id: trunk@39251 -
2018-06-20 19:00:05 +00:00
svenbarth
393d1c2256
* move RTTI related types from rtti.inc to rttidecl.inc
...
git-svn-id: trunk@39250 -
2018-06-20 19:00:03 +00:00
svenbarth
bbf578b193
* move definition of USE_PACKED from rtti.inc to rttidecl.inc
...
git-svn-id: trunk@39249 -
2018-06-20 19:00:00 +00:00
svenbarth
b75324a4f2
* move RTTI declarations to their own header file
...
git-svn-id: trunk@39248 -
2018-06-20 18:59:57 +00:00
svenbarth
44b15350fb
* disable RTTI declarations if RTTI feature is disabled
...
git-svn-id: trunk@39247 -
2018-06-20 18:59:54 +00:00
nickysn
1631d9ac0a
+ support segments (sections) with a primary group, other than 'DGROUP' in the
...
NASM assembler writer
git-svn-id: trunk@39246 -
2018-06-20 16:14:41 +00:00
nickysn
5eb69edf9e
+ support segments (sections) with a primary group, other than 'DGROUP' in the
...
OMF internal object writer
git-svn-id: trunk@39245 -
2018-06-20 14:57:20 +00:00
florian
400861a907
* fixed TBits.NotBits, it is just an Xor operation, resolves #33706
...
git-svn-id: trunk@39243 -
2018-06-19 20:38:15 +00:00
florian
0d168796d7
* patch by J. Gareth Moreton: More Peephole optimizations for AND and MOV
...
git-svn-id: trunk@39242 -
2018-06-18 20:50:08 +00:00
nickysn
7fcec8460f
+ parse OMF COMENT records when reading object files and produce error messages
...
for the records that are not supported, but are important for the executable
being produced (such as weak/lazy externals, etc.)
git-svn-id: trunk@39241 -
2018-06-18 14:48:04 +00:00
lacak
935af781e4
fcl-db: bufdataset: cosmetic (TAutoIncField is descendant of TLongIntField)
...
git-svn-id: trunk@39240 -
2018-06-18 05:45:29 +00:00