Commit Graph

17078 Commits

Author SHA1 Message Date
sergei
ed4e876f4f * Generate exception filters data on i386-win32 and x86_64-win64 without using global labels.
git-svn-id: trunk@29512 -
2015-01-20 13:52:19 +00:00
sergei
a67478e033 * Simplified, removed redundant asmlist and duplicate call to maybe_new_object_file.
git-svn-id: trunk@29509 -
2015-01-20 07:52:11 +00:00
sergei
d24382e8f8 * x86 AT&T writer: never ever drop "@GOTPCREL" relocation, because it results in corrupted code (at least, "mov foo@GOTPCREL(%rip),%reg" must change to "lea foo(%rip),%reg" to remain equivalent, but this must be handled elsewhere anyway. Assembler writer should just write generated code as is).
* Added internal errors on some impossible types of references.

git-svn-id: trunk@29506 -
2015-01-18 17:04:53 +00:00
florian
2c7f1c73ac * pass -m elf_i386_sol2 to gld on i386-solaris as well, patch by H.Hartl, resolves #27265
git-svn-id: trunk@29501 -
2015-01-18 11:19:42 +00:00
florian
94a51e26a0 + support of winapi directive
git-svn-id: trunk@29500 -
2015-01-18 10:50:53 +00:00
Jonas Maebe
8fe981cccb * also give a warning when a field masks an identifier from a category
* also give a warning when a field/parameter/local variable masks an
    identifier from a class helper that's in scope

git-svn-id: trunk@29498 -
2015-01-17 15:38:29 +00:00
Jonas Maebe
990e47f2d3 * give a warning instead of an error if a parameter or local variable in a
an Objective-C method masks an identifier from a category, because due
    to the fact that all standard categories are imported at the same time via
    the CocoaAll unit, this can often happen with categories you don't know/
    care about. These errors also didn't happen in 2.6.x

git-svn-id: trunk@29497 -
2015-01-17 15:27:42 +00:00
florian
d25dbec070 * allow the varargs directive in combination with stdcall as well, resolves #27299
git-svn-id: trunk@29496 -
2015-01-17 14:23:38 +00:00
florian
681c1afe6c * limit inlined expansion and exponential code grow, resolves #23862
git-svn-id: trunk@29495 -
2015-01-17 13:52:41 +00:00
sergei
d4969ca2ee * Fixed subscripting records of size OS_PAIR on big endian targets and enabled placing such records into registers. Tested and shows no regressions on mips-linux.
git-svn-id: trunk@29493 -
2015-01-17 11:30:19 +00:00
Jonas Maebe
697552b9f1 * disabled hints/warnings about changed symbol visibility by default, use
-dextdebug to see them. This fixes 4 tests.

git-svn-id: trunk@29487 -
2015-01-16 20:08:48 +00:00
svenbarth
0d1d3d8e72 Fix for Mantis #25917. With this change the visibility of type parameters is changed from public to strict private as otherwise unexpected (and "unworkaroundable") errors might occur (like the one in the mentioned bug report).
pgenutil.pas:
  * parse_generic_parameters & insert_generic_parameter_types: create the type parameter symbols as strict private instead of public (which is the default visiblity)

* adjusted two tests which relied on this behavior (that's why I fixed the type aliases previously)
+ added test

git-svn-id: trunk@29486 -
2015-01-16 17:02:02 +00:00
svenbarth
a4e8f00399 Allow the usage of type aliases of generic type parameters outside of the generic. Besides being useful by itself it will also be needed in the future when the visibility of the type parameters is changed from public to strict private.
ptype.pas, id_type:
  * don't generate an error if the undefineddef typesym is an explicit rename that belongs to a generic

+ added test

git-svn-id: trunk@29485 -
2015-01-16 16:38:51 +00:00
svenbarth
5115c3e680 Fix for Mantis #26481. This is a regression.
nutils.pas, handle_staticfield_access:
  * generics don't have staticvarsyms for their static fieldvarsyms so we need to simulate a non-static access to avoid 1) an exception and 2) incorrect errors that instance methods can't be accessed

+ added tests

git-svn-id: trunk@29484 -
2015-01-16 16:05:53 +00:00
svenbarth
5fd47d5e00 Fix for Mantis #26483. This regression was introduced by famous revision 27861 which introduced partial specializations (and thus that specializations can be part of local- and parasymtables as well).
symtable.pas, is_visible_for_object:
  * if the symtable belongs to a specialization we need to ignore any owning local- or parasymtable as well to determine which unit it belongs to

+ added test

git-svn-id: trunk@29482 -
2015-01-16 14:23:49 +00:00
Tomas Hajny
b1e51054cb * add information about -vz to the help pages
git-svn-id: trunk@29475 -
2015-01-14 17:08:26 +00:00
pierre
32cdcb8930 Remove wrong error message, Pascal Didier
git-svn-id: trunk@29472 -
2015-01-14 15:46:29 +00:00
pierre
ea3bc10fd1 Change ReplaceForbiddenAsmSymbolChars to use ansistrings to avoid shortstring overflow
git-svn-id: trunk@29471 -
2015-01-14 13:43:14 +00:00
florian
ccb01d6196 * allow subtraction/addition of internally generated nodes, resolves #27256
git-svn-id: trunk@29456 -
2015-01-12 20:56:17 +00:00
pierre
9b468ba728 Change code so that the condition to use global or local symbol matches
the code written in hlcg.gen_proc_symbol to avoid change from AB_LOCAL
to AB_GLOBAL, which generates erroneous code (at least for targets using GOT)

git-svn-id: trunk@29450 -
2015-01-12 12:24:15 +00:00
pierre
a959b1a6ef Add Warning/Hint if changing bind type after assembler symbol has
been used already.
  Warning if from Global to local, temporarily downgraded to Note
to avoid faling cycle as -Sew is default.

git-svn-id: trunk@29449 -
2015-01-12 12:19:25 +00:00
marco
1b85962ef3 * put default libgcc path under if Dontlinkstdlibpath...
git-svn-id: trunk@29447 -
2015-01-12 10:34:39 +00:00
pierre
831a876ec5 Added asmsymbindname array name for TAsmSymBind type
for use in new messages commits 29444-29445

git-svn-id: trunk@29446 -
2015-01-12 10:15:17 +00:00
pierre
b3a4d47b96 Regenerated after msg/errore.msg commit:
Added two new messages for changes in assembler symbols after use.
Those changes can lead to invalid code generation.

git-svn-id: trunk@29445 -
2015-01-12 10:10:21 +00:00
pierre
18fe66b0e7 Added two new messages for changes in assembler symbols after use.
Those changes can lead to invalid code generation.

git-svn-id: trunk@29444 -
2015-01-12 10:05:21 +00:00
pierre
87b9c1b2ea Possible fix for the OpenSolaris x86_64 cycle failure, due to bind change from AB_GLOBAL back to AB_LOCAL after code generation, which lead to invalid code
git-svn-id: trunk@29431 -
2015-01-10 22:55:11 +00:00
svenbarth
af43e5e3e9 Fix for Mantis #24872.
psub.pas, tcgprocinfo.parse_body:
  * also check record symtables besides object symtables to determine whether the staticsymtable is accessed from a globally declared generic
  * use a translateable message if the static symtable is accessed if it should not
msg/errore.msg:
  + add new error message for when the static symtable is accessed from a global generic
msgidx.inc & msgtixt.inc:
  * regenerated

+ added test

git-svn-id: trunk@29427 -
2015-01-06 20:46:12 +00:00
Károly Balogh
6070ac3def m68k: some more basic FPU stuff
git-svn-id: trunk@29407 -
2015-01-05 05:26:44 +00:00
florian
9a9bf4be91 * write better hint message about the first occurence of an identifuer in case of a duplicate identifier error
git-svn-id: trunk@29400 -
2015-01-04 21:23:26 +00:00
marco
d407b668d1 * version updated to 3.1.1
git-svn-id: trunk@29399 -
2015-01-04 21:09:04 +00:00
florian
9b6b029ca1 * patch by Yuri Zaporozhets to fix typos in text messages, resolves #27250
git-svn-id: trunk@29396 -
2015-01-04 20:46:36 +00:00
Jonas Maebe
bad1b2a1c1 * fix for issue introduced in r28862: the compiler considered also
dynamic arrays and fixed-length static arrays when looking for
    overloads of array constructors, while these are not valid in
    such cases (and it also gave an error afterwards when trying to
    actually use them). This caused a lot of spurious "can't select
    which overloaded routine to call" errors when using many JVM
    routines

git-svn-id: trunk@29393 -
2015-01-04 19:41:21 +00:00
florian
ec3063c8cc * forgot to regenerate msgtxt.inc
git-svn-id: trunk@29391 -
2015-01-04 18:48:52 +00:00
florian
2c26c35eb6 * updated copyright year to 2015
+ added "and others" if translation was not updated yet

git-svn-id: trunk@29383 -
2015-01-04 15:26:29 +00:00
florian
29d4037a9c * make integer division instruction (div/idiv) on x86 dependent on the
resulttype of the div node set by the type checking pass, this is 
  also how the generic code generator handles it, resolves #27173

git-svn-id: trunk@29382 -
2015-01-04 13:08:57 +00:00
pierre
cc537a2e76 Try to avoid uncorrect optimization
git-svn-id: trunk@29373 -
2015-01-02 23:00:22 +00:00
Károly Balogh
7a91d5f495 m68k: oops, unbroke the build with softfpu
git-svn-id: trunk@29372 -
2015-01-02 16:00:53 +00:00
Károly Balogh
d000b1bc7c m68k: basic 68881 fpu support. probably still broken at umpzillion places, and mostly untested, but at least it builds the RTL and all packages successfully with -Cp68020 -Cf68881 instead of dying with random internalerrors() and now even emits actual FPU opcodes.
git-svn-id: trunk@29370 -
2015-01-02 05:29:45 +00:00
florian
f813703cf3 * fixes several issues with loop unrolling
git-svn-id: trunk@29362 -
2014-12-31 15:45:06 +00:00
sergei
da8346079f * mips-linux: Enabled tf_safecall_exceptions (it just works, no reason to keep disabled) and also tf_pic_uses_got (so that checks elsewhere in compiler set pi_needs_got flag; actual functionality is not changed because currently MIPS just forces pi_needs_got unconditionally).
git-svn-id: trunk@29360 -
2014-12-29 23:26:40 +00:00
sergei
b46ce6b70e * Fixed condition to output div/divu having R0 as first operand as non-macros.
git-svn-id: trunk@29359 -
2014-12-29 23:19:01 +00:00
florian
0a19825e25 * elf_x86_64 -> elf_x86_64_sol2, should resolve #27199
git-svn-id: trunk@29358 -
2014-12-29 17:57:45 +00:00
sergei
57094d495b + MIPS: implement inline full 64-bit multiplication, for cases when overflow checking is off and CPU is set to mips32r2.
git-svn-id: trunk@29354 -
2014-12-28 22:03:15 +00:00
florian
1178fdc98f * force objects and records only into memory if their address is passed, hint from Jonas, improves code after r29139
git-svn-id: trunk@29344 -
2014-12-27 16:42:34 +00:00
svenbarth
5848637db3 Fix generation of class names for specializations.
symdef.pas, tstoreddef:
  * is_specialization: fix exit condition to correctly recognize specializations

+ added test

git-svn-id: trunk@29328 -
2014-12-26 18:14:52 +00:00
sergei
d2187257e7 - removed unused type and variable
git-svn-id: trunk@29323 -
2014-12-25 10:25:21 +00:00
Tomas Hajny
ee82b6ea0b * do not mention OS/2 and EMX on option list for x86_64
git-svn-id: trunk@29318 -
2014-12-23 23:08:43 +00:00
florian
c34bffd56a * $SUBARCH => $FPCSUBARCH
git-svn-id: trunk@29316 -
2014-12-23 20:48:35 +00:00
nickysn
b193073e32 + support the $fpcmemorymodel macro in fpc.cfg
git-svn-id: trunk@29315 -
2014-12-23 18:55:57 +00:00
svenbarth
b38fb606cc Fix for Mantis #27185.
ngenutil.pas:
  * AddToStructInits: also process the class constructors/destructors of nested types

+ added test

git-svn-id: trunk@29308 -
2014-12-21 14:01:32 +00:00