svenbarth
70886d1727
Fix the exception reported in Mantis #24072 . This does not mean though that the bug is fixed, because the bug itself is related to the topic "partial specialization".
...
symtable.pas, sym_is_owned_by:
* instead of checking in which symtables to not look, specify in which tables to look (namely object- and recordsymtables)
git-svn-id: trunk@24180 -
2013-04-07 13:44:56 +00:00
Jonas Maebe
8b8a786823
* moved ARM/x86 ifdef'ed code from ncgcal to virtual methods
...
git-svn-id: trunk@24179 -
2013-04-07 13:42:06 +00:00
Jonas Maebe
3a03586ca9
* give an error when declaring a class as conforming to a forward-declared
...
interface: the compiler does not/cannot check whether the class
implements all required methods in that case, and it moreover leads to
crashes (mantis #24184 ). Older versions of Delphi did allow this (and
don't check whether the interface methods are implemented either), but
that's simply a (similar) bug in Delphi that has been fixed in XE at
least
* fixed compilation of webtbs/tw2727 after this fix
git-svn-id: trunk@24177 -
2013-04-07 12:18:31 +00:00
florian
b817b6f62a
* enable section smartlinking on all linux targets
...
git-svn-id: trunk@24146 -
2013-04-04 09:43:00 +00:00
sergei
999c3a0a02
* COFF linker: postpone import section generation until unreferenced sections (and imports) are removed, and put all remaining imports into a single section. This is much more efficient than generating multiple smart-linkable import sections and immediately discarding a good half of them.
...
git-svn-id: trunk@24123 -
2013-04-02 05:46:32 +00:00
florian
43b6139b66
+ setlocalloc resets currentregloc
...
git-svn-id: trunk@24118 -
2013-04-01 19:52:46 +00:00
florian
364f170765
* cosmetic formatting changes
...
git-svn-id: trunk@24117 -
2013-04-01 19:52:43 +00:00
florian
7155808570
+ ttempcreatenode.printnodedata writes tempinitcode node
...
git-svn-id: trunk@24116 -
2013-04-01 19:52:39 +00:00
sergei
cded05ccef
+ MIPS linker: support linking PIC object files with non-PIC ones, by routing absolute calls into PIC code through stubs that load R25.
...
git-svn-id: trunk@24098 -
2013-03-31 19:58:52 +00:00
florian
9375529430
+ put guids in a constant pool as well
...
git-svn-id: trunk@24061 -
2013-03-29 18:48:55 +00:00
sergei
e4949e3044
+ ELF linker: finish support for imported symbol versions.
...
git-svn-id: trunk@24056 -
2013-03-29 15:17:48 +00:00
sergei
29c0266fb9
+ Added values for DT_FLAGS and DT_FLAGS_1 dynamic tags.
...
git-svn-id: trunk@24053 -
2013-03-29 14:46:44 +00:00
sergei
c5bf2ecb65
+ MIPS linker: added ELF header flags, TLS relocations and an utility procedure to handle endianness.
...
git-svn-id: trunk@24052 -
2013-03-29 14:11:27 +00:00
Jonas Maebe
9973a5737f
* don't give an error when calling a class method on an object typecasted
...
into a class reference (problem introduced by r23976)
git-svn-id: trunk@24039 -
2013-03-28 18:45:09 +00:00
Jonas Maebe
4daa40f480
* reorder register parameters to minimise the number of register conflicts,
...
which usually (but not always) results in better register allocation
git-svn-id: trunk@24038 -
2013-03-28 18:44:57 +00:00
sergei
1d32b107f5
* Made address comparison 64-bit safe.
...
* Referencing a section is basically referencing its AT_SECTION symbol, fixed reporting in map file.
git-svn-id: trunk@24029 -
2013-03-28 10:44:09 +00:00
Jonas Maebe
4992fd1c88
* prevent previously freed temp blocks from getting lost occasionally (can
...
significantly reduce the stack frame size, more than 3 times in one place
in the compiler)
git-svn-id: trunk@24025 -
2013-03-27 17:16:34 +00:00
Jonas Maebe
477eeadaca
* made alloctemp more generic
...
git-svn-id: trunk@24023 -
2013-03-27 17:16:26 +00:00
Jonas Maebe
262593c571
* "can not" -> "cannot"
...
git-svn-id: trunk@24012 -
2013-03-26 18:35:38 +00:00
pierre
702effaad0
Force use of PIC compatible calling for register variable calls as procvars might be internal or external and thus require PIC
...
git-svn-id: trunk@24005 -
2013-03-25 21:53:31 +00:00
florian
b231c049c9
* arm thumb knows only positively growing stacks
...
git-svn-id: trunk@24000 -
2013-03-25 17:56:13 +00:00
florian
93fcd9152e
* arm thumb supports only tst reg1,reg2
...
git-svn-id: trunk@23997 -
2013-03-25 17:53:54 +00:00
florian
64bc09ae58
* fixes several issues with arm thumb stack frame
...
git-svn-id: trunk@23988 -
2013-03-24 21:40:23 +00:00
florian
b434b7bc7d
* armv6-m has no blx <immediate>
...
git-svn-id: trunk@23983 -
2013-03-24 20:24:15 +00:00
florian
ac4a6accd3
+ SVC instruction
...
git-svn-id: trunk@23980 -
2013-03-24 20:22:06 +00:00
florian
07762e5c25
+ proper assembler command line parameters for arm thumb
...
git-svn-id: trunk@23979 -
2013-03-24 20:21:22 +00:00
florian
89b4939cec
* correctly handle stackframes with size>508 for arm thumb
...
git-svn-id: trunk@23977 -
2013-03-24 18:51:23 +00:00
Jonas Maebe
1601f6bea8
* treat methods called via records the same as records called via objects
...
without virtual methods: they may initialise the instance (mantis #23667 )
git-svn-id: trunk@23976 -
2013-03-24 16:27:02 +00:00
florian
79d5d83f6c
* fixed lazy english
...
git-svn-id: trunk@23975 -
2013-03-23 19:29:30 +00:00
sergei
6f1997f5e5
+ MIPS: added profiling support
...
git-svn-id: trunk@23950 -
2013-03-21 13:40:50 +00:00
Jonas Maebe
e621bff943
* don't make a deep copy of records (and in the future, objects) in with-
...
statements on the JVM target (mantis #24089 )
git-svn-id: trunk@23945 -
2013-03-20 16:23:25 +00:00
svenbarth
376bd046aa
Don't allow "static" for class operators or normal methods (except in objects).
...
pdecsub.pas, pd_static:
* check whether the given pd is an operator or a class method not inside an Object and generate an error if either of these is true
msg/errore.msg, msgidx.inc, msgtxt.inc:
* add a message to inform that a certain procedure directive is not allowed
+ added tests
git-svn-id: trunk@23944 -
2013-03-20 10:46:55 +00:00
Jonas Maebe
0ad9f345dd
* handle explicit typecasts of procdefs to procvardefs always via
...
proc_to_procdef, because a methodpointer may have to be discarded
git-svn-id: trunk@23929 -
2013-03-19 13:23:51 +00:00
Jonas Maebe
5152c86932
* set the location size of load nodes of procsyms without methodpointer/
...
framepointer
* fixed conversion of procedure of object/nested procedure into a procvar
that only contains the code address
git-svn-id: trunk@23928 -
2013-03-19 12:27:57 +00:00
Jonas Maebe
8b7071c8e8
* fixed recording generics token line info on big endian systems
...
git-svn-id: trunk@23926 -
2013-03-18 13:29:15 +00:00
florian
c345ed8945
* generate branches for arm-thumb which are always sufficient big, the optimizer can fix this later on
...
git-svn-id: trunk@23904 -
2013-03-17 20:26:06 +00:00
florian
d4613fe961
* update init_settings.setalloc in SetCompileMode if changeinit is set
...
git-svn-id: trunk@23898 -
2013-03-17 16:42:34 +00:00
florian
5a6e879248
* patch by Aleksa Todorovic: store relative include paths in PPUs, resolves #9961
...
git-svn-id: trunk@23897 -
2013-03-17 16:22:00 +00:00
florian
fdde11fcc8
- -CPPAKCSET=NORMAL and CPPAKCSET=DEFAULT should set setalloc to 0 as $PACKSET=... with the same parameters does
...
git-svn-id: trunk@23893 -
2013-03-17 15:10:33 +00:00
florian
7511968f2b
+ warn if one of the linux libc startup code files is not found
...
git-svn-id: trunk@23892 -
2013-03-17 14:51:19 +00:00
florian
20a534e63f
* fixed code which causes range check errors when compiled with -Cr
...
git-svn-id: trunk@23889 -
2013-03-17 14:24:50 +00:00
Jonas Maebe
e1e11f81e3
* fixed using readstr/writestr inside routines called from the parameter
...
list of another readstr/writestr expression (mantis #23912 )
git-svn-id: trunk@23888 -
2013-03-17 14:23:33 +00:00
florian
784641ec46
* delay parsing of the closing SEMICOLON of a uses clause till the
...
unit map is updated to avoid symbols not being found, resolves #8611
git-svn-id: trunk@23886 -
2013-03-17 11:06:04 +00:00
sergei
1c652eb8f9
MIPS procinfo improvements:
...
- Removed TMIPSProcInfo.needs_frame_pointer, it duplicates pi_needs_stackframe flag.
- Don't save RA for leaf procedures.
* GP is caller-saved register, it does not need saving/restoring as nonvolatile registers. Handle its restore position as a "normal" temp, whose offset is known before secondpass. This allows to handle PIC calls without involving GAS macro processing.
git-svn-id: trunk@23885 -
2013-03-17 08:43:39 +00:00
florian
d5985b4f0e
* patch by Christophe Staïesse to implement more ISO-like read behaviour in iso mode, resolves #24060
...
git-svn-id: trunk@23884 -
2013-03-17 08:27:21 +00:00
florian
380bc56e32
+ create a default heap on embedded targets and register this default heap
...
* sysutils for the embedded target depends on a working heap manager
git-svn-id: trunk@23853 -
2013-03-16 10:37:18 +00:00
masta
d60049a1fd
Removing duplicated hash functions in compiler/cclasses.pas
...
FPHash was duplicated 4 times for different input types. I've
consolidated it to a single function with 3 proxy-functions which can be
inlined.
I've also modified the hash function itself slightly, it now resembled
the original DJB hash and seems to perform a tiny bit better.
git-svn-id: trunk@23850 -
2013-03-16 00:50:45 +00:00
pierre
8e2fcd6bfe
Enable use of dllprt0 for netbsd
...
git-svn-id: trunk@23848 -
2013-03-15 16:21:22 +00:00
pierre
18ece9cf75
Also use VERSION in scripts for openbsd and netbsd
...
git-svn-id: trunk@23844 -
2013-03-15 15:39:32 +00:00
pierre
1ad6aacb78
* Also use dllprt0 for openbsd
...
git-svn-id: trunk@23829 -
2013-03-14 13:51:16 +00:00