Commit Graph

49898 Commits

Author SHA1 Message Date
svenbarth
bec40e9a4a * fix for Mantis : update German message files courtesy of Karl-Michael Schindler (the text "CheckPointer-Funktion" was also changed to "CheckPointer-Option" in both files for consistency with the English file)
git-svn-id: trunk@35183 -
2016-12-23 15:57:29 +00:00
svenbarth
8c253703f0 * regenerate after r35181
git-svn-id: trunk@35182 -
2016-12-23 15:55:24 +00:00
svenbarth
88a0d8bc25 * use "CheckPointer option" instead of "CheckPointer function" for consistency with the other CheckPointer related message
git-svn-id: trunk@35181 -
2016-12-23 15:54:28 +00:00
svenbarth
73ed1a9bf1 * fix for Mantis : applied patch by Maciej Izak; this way it's clear what purpose ManagedFldCount has in FPC compared to Delphi
Commit message of patch:

+ New field TotalFieldCount for TTypeData
* Mark ManagedFldCount as deprecated
* Adjusted test trtti12.pp

git-svn-id: trunk@35180 -
2016-12-23 15:32:44 +00:00
svenbarth
8e765ef807 * extend test for 64-bit subranges
git-svn-id: trunk@35179 -
2016-12-23 15:11:38 +00:00
Jonas Maebe
00751d257e * support bootstrapping with FPC 3.0.2
git-svn-id: trunk@35178 -
2016-12-22 20:01:58 +00:00
marcus
391eccc562 Ami-extra: added muihelper macros, marked as obsolete but widely used
git-svn-id: trunk@35177 -
2016-12-21 22:13:13 +00:00
marcus
8f397594df Ami-extra: more text creation macros
git-svn-id: trunk@35176 -
2016-12-21 20:02:10 +00:00
svenbarth
2acf542737 * extend TParamFlag by pfConstRef which is set for constref parameters
* extend test trtti9.pp accordingly

git-svn-id: trunk@35175 -
2016-12-20 21:37:07 +00:00
svenbarth
1553aa5639 * declare the first field of TProcedureParam as TParamFlags to avoid potential problems if more than 8 entries should be used (especially if some day the hidden Self and High parameters should be written)
* rename first field of TProcedureParam to ParamFlags and introduce a property Flags for backwards and Delphi compatibility

git-svn-id: trunk@35174 -
2016-12-20 21:13:04 +00:00
marcus
e2bb22e106 arosunits: more 64bit fixes for Zune message structures
git-svn-id: trunk@35173 -
2016-12-20 20:49:36 +00:00
marcus
ae5eade019 arosunits: 64bit fixes for Zune message structures
git-svn-id: trunk@35172 -
2016-12-20 17:27:25 +00:00
marcus
78b8fb3414 Ami-Extra: fixed compilation for powerpc-amiga
git-svn-id: trunk@35171 -
2016-12-19 07:06:27 +00:00
marcus
0ee0c6499b Ami-extra: 64bit fix in muihelper for Dispatcher
git-svn-id: trunk@35170 -
2016-12-18 22:04:56 +00:00
florian
bba23f6561 * warnings fixed
* cleanup

git-svn-id: trunk@35169 -
2016-12-18 20:28:38 +00:00
florian
2e16628db1 * warning fixed
git-svn-id: trunk@35168 -
2016-12-18 20:27:13 +00:00
marcus
29abfe9dd3 Ami-Extra: some more MUI Helper for custom classes and hooks
git-svn-id: trunk@35167 -
2016-12-18 19:35:59 +00:00
michael
b08297a667 * Fix from Mattias Gaertner to implement calling functions without arguments.
git-svn-id: trunk@35166 -
2016-12-18 16:22:23 +00:00
marcus
3f4e9cfcb7 Ami-Extra: example code for muihelper
git-svn-id: trunk@35165 -
2016-12-18 15:17:02 +00:00
marcus
f4a3a45c3f Amiga: AsTag/TAG_ with unsigned overloads
git-svn-id: trunk@35164 -
2016-12-18 14:35:15 +00:00
marcus
b93a685ab8 Amiga: moved muihelper to ami-extra, added more macros, 64bit ready
git-svn-id: trunk@35163 -
2016-12-18 14:11:38 +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
Jonas Maebe
4b9179636b + support for creating and writing LLVM landingpad instructions
git-svn-id: trunk@35161 -
2016-12-18 13:57:42 +00:00
Jonas Maebe
28e5636daa + support for LLVM nil assembler symbols in instructions (write as "null")
+ support for LLVM nil tai operands (will be used for terminating a daisy
    chain of catch/filter clauses of landingpads): don't try to write it

git-svn-id: trunk@35160 -
2016-12-18 13:57:39 +00:00
Jonas Maebe
746de569d5 - removed unused local variable
git-svn-id: trunk@35159 -
2016-12-18 13:57:36 +00:00
Jonas Maebe
b14c037533 * record in the flowcontrol flags whether we are currently in a block whose
exceptions are caught in the current routine (fc_catching_exceptions),
    so that for LLVM we will be able to use "invoke" instead of "call" in that
    case

git-svn-id: trunk@35158 -
2016-12-18 13:57:33 +00:00
Jonas Maebe
6a1c4f9b75 * replaced cg.a_label/a_jmp_always with hlcg.* calls (only for consistency,
does not change anything in practice)

git-svn-id: trunk@35157 -
2016-12-18 13:57:29 +00:00
Jonas Maebe
3ae1f6664a * extracted exception state handling helpers into a utility class so
they can be overridden

git-svn-id: trunk@35156 -
2016-12-18 13:57:25 +00:00
Jonas Maebe
7503c2bd3e * changed llvmgettemprecorddef() to take an open array instead of a tfplist
as list of defs to be stored in the record, so we don't need to create and
    free a class instance every time we call this routine

git-svn-id: trunk@35155 -
2016-12-18 13:57:22 +00:00
Jonas Maebe
5850963ea9 - removed double compilation commands for two units
git-svn-id: trunk@35154 -
2016-12-18 13:57:19 +00:00
Jonas Maebe
d8c4980b2e * don't reuse the same type with the typed const builder for
differently-sized types

git-svn-id: trunk@35153 -
2016-12-18 13:57:15 +00:00
Jonas Maebe
691c2d655e * put multiple statements of the else-part of case between begin..end
git-svn-id: trunk@35152 -
2016-12-18 13:57:12 +00:00
Jonas Maebe
fe6b662c37 * fixed range error
git-svn-id: trunk@35151 -
2016-12-18 13:57:09 +00:00
Jonas Maebe
bcb7fedb3c * fixed indentation
git-svn-id: trunk@35150 -
2016-12-18 13:57:06 +00:00
nickysn
ca46040728 + added 16-bit versions of the InterLocked* functions for i8086
git-svn-id: trunk@35149 -
2016-12-18 00:17:10 +00:00
svenbarth
109dff8b56 * allow nested procedures and functions in generic routines (and get rid of an untranslated error message :P )
git-svn-id: trunk@35148 -
2016-12-17 21:23:07 +00:00
svenbarth
d34acf3bc7 * fix for Mantis : check current_genericdef only if the current_procinfo isn't used
+ added test

Note: the test is added to webtbs although it's right now still failing, cause I'll remove the restriction for nested procedures since the compiler now supports them correctly. Due to the way we handle generics we don't have problems with them unlike Delphi.

git-svn-id: trunk@35147 -
2016-12-17 21:20:44 +00:00
svenbarth
779799c406 * only record tokens for real generic routines or those that belong to a generic class/record
* don't parse a semicolon at the end for real specializations or specializations of methods that belong to a specialized class/record 

git-svn-id: trunk@35146 -
2016-12-17 21:13:30 +00:00
svenbarth
a76fd967b2 * inherit df_generic and df_specialization from the parent routine and correctly set the genericdef for a specialization
git-svn-id: trunk@35145 -
2016-12-17 21:10:58 +00:00
Jonas Maebe
c0f4e4db34 * group emitting a label of a try-block and restoring the control flow flags
in a single routine, so that both happen at the same time (needed for LLVM
    where inside a try-block all calls need to be performed using "invoke"
    and refer to the current try-block/catching label)

git-svn-id: trunk@35144 -
2016-12-16 22:41:30 +00:00
Jonas Maebe
a1c0d1a1ff * moved exception handling helpers from ncgutil to ncgflw as they are only
used there (could be turned into protected methods if they are ever needed
    by child classes)

git-svn-id: trunk@35143 -
2016-12-16 22:41:28 +00:00
Jonas Maebe
b75a07b713 * clarified comment for fc_unwind_*
git-svn-id: trunk@35142 -
2016-12-16 22:41:24 +00:00
Jonas Maebe
880d438704 * renamed t<cpuname>procinfo to tcpuprocinfo for all targets, so we can
inherit from it for LLVM without a thousand ifdefs

git-svn-id: trunk@35141 -
2016-12-16 22:41:21 +00:00
Jonas Maebe
e35f83ba94 * support building the LLVM compiler for Darwin/x86_64 and Linux/x86_64 by
specifyng LLVM=1 to make (does not yet work for the top-level makefile
    on Linux because of the fpmake-based building of the IDE)

git-svn-id: trunk@35140 -
2016-12-16 22:41:17 +00:00
Jonas Maebe
d6ccd54da5 - removed unused doexceptlabel
git-svn-id: trunk@35139 -
2016-12-16 22:38:07 +00:00
Jonas Maebe
5bd03651a9 * clarify/ensure intended order of evaluation
git-svn-id: trunk@35138 -
2016-12-16 22:38:04 +00:00
Jonas Maebe
b936d8f012 * don't internalerror when performing an LLVM tc_equal conversion from one
TP-style object to another and the sizes differ, at least if they are
    related
  * restructured and commented the LLVM type conversion checks

git-svn-id: trunk@35137 -
2016-12-16 22:38:01 +00:00
svenbarth
86207c9b55 - remove no longer valid {otNone} comment
git-svn-id: trunk@35136 -
2016-12-16 14:23:14 +00:00
svenbarth
a9d14fe30b * extend TOrdType by entries for 64-bit values
* have tkInt64 and tkQWord entries also contain the OrdType field (basically the compiler can now use the same function to generate them only with different type kinds)

+ added test

git-svn-id: trunk@35135 -
2016-12-16 14:22:04 +00:00
svenbarth
460f309035 * fix for Mantis , applied patch by Maciej Izak
* adjusted test trtti10.pp due to renamed RecInitTable field

Original commit message:

Public interface for init table for records in TypInfo:

* Rename RecInitTable to RecInitInfo (because it is special kind of PTypeInfo for init table of record). Has more sense in practical usage.
+ New structure TRecInitData (and related PRecInitData) to handle data for (init) type info for records (aka init table)
+ New structure TInitManagedField and pointer type PInitManagedField (for init table)
+ Special helper property RecInitData to get PRecInitData for tkRecord

+ test attached

git-svn-id: trunk@35134 -
2016-12-16 13:43:12 +00:00