Commit Graph

39440 Commits

Author SHA1 Message Date
michael
0ee95ca5f9 * Undid patch to resolve dotted unit names, it breaks generation of FPC documentation
git-svn-id: trunk@23369 -
2013-01-12 16:08:40 +00:00
michael
3ec989ca8d * remove debug output
git-svn-id: trunk@23368 -
2013-01-12 15:16:48 +00:00
michael
6bdcfaa493 * Added dependency on opengl
git-svn-id: trunk@23367 -
2013-01-12 13:30:23 +00:00
michael
c6d58be3e2 * Added dependency on opengl
git-svn-id: trunk@23366 -
2013-01-12 13:30:18 +00:00
Jonas Maebe
f57f7fda78 * fixed case of unit name dependencies for MacOS unit
git-svn-id: trunk@23365 -
2013-01-11 17:22:30 +00:00
sergei
f98e09d86e - TObjData.sectiontype2options: removed oso_keep flags. They don't have any effect here because this function is used only during assembling, and oso_keep cannot be represented in object files and therefore gets lost before linking.
git-svn-id: trunk@23364 -
2013-01-11 17:14:44 +00:00
sergei
ad1621df3f * Revert part of r22548, correct fix for the issue is provided by r23188.
Only referencing data labels from code should change "GOT is needed" property. Writing data labels or referencing them from data should have no effect on it.

git-svn-id: trunk@23363 -
2013-01-11 15:31:12 +00:00
michael
f4c2ba9eb6 * Make sure that current method is removed from stack prior to executing it (bug ID #23629)
git-svn-id: trunk@23362 -
2013-01-11 08:42:40 +00:00
Tomas Hajny
67e1aeab5e + new language added (cs)
git-svn-id: trunk@23361 -
2013-01-10 23:43:01 +00:00
sergei
7969fb4ee1 - Removed TlsSize variable, it duplicates threadvarblocksize.
git-svn-id: trunk@23360 -
2013-01-10 20:13:08 +00:00
sergei
bc4c1149c3 + Native threadvar implementation for Win32 and Win64 (most of it, but not yet complete).
git-svn-id: trunk@23359 -
2013-01-10 19:13:02 +00:00
svenbarth
b5827ce363 Move the handling of "misstyled" floating point constants like "2." or "2.e10" from the scanner to the parser. This way type helpers calls for integer constants can be parsed correctly in the future.
Note: the error messages for incorrect "misstyled" floating point numbers (e.g. "2e10foo") have changed because of this.

scanner.pas, tscannerfile.readtoken:
  instead of tokenizing "2.", "2.e10", "2.e+10" and "2.e-10" as "_REALNUMBER" tokenize them as "_INTCONST _POINT", "_INTCONST _POINT _ID", "_INTCONST _POINT _ID _PLUS _INTCONST" "_INTCONST _POINT _ID _PLUS _INTCONST"; tokenizing of normal floating constants is not changed

pexpr.pas:
  factor: 
    * extract the code for creating a new constant floating point from "factor" into a new function "real_const_node_from_pattern"
    + allow the parsing of postfixoperators for integer constants if a "." is encountered
  + postfixoperators: check for a "misstyled" floating point number if an ordinal const (not an enum and not a boolean) is encountered (the code is already partially prepared for type helper support)
  
+ Added tests

git-svn-id: trunk@23356 -
2013-01-10 16:23:00 +00:00
pierre
c26ef20f30 Use OLDBINUTILS conditional to disable assembler code unsupported by older GNU assmebler for x86_64.inc as in cpu.pp to allow use for openbsd for instance
git-svn-id: trunk@23355 -
2013-01-10 16:19:07 +00:00
sergei
3175f49e4f * Replaced local writable typed constant with variable. Makes function thread-safe (local typed constants are still allocated globally, writable ones ruin thread-safety) and able to compile in {$J-} state.
git-svn-id: trunk@23354 -
2013-01-10 09:23:25 +00:00
sergei
113f7593be * FPC_USE_WIN64_SEH is only defined if target is Win64, so another check for win64 is redundant.
git-svn-id: trunk@23353 -
2013-01-09 16:08:00 +00:00
svenbarth
359a228085 Fix one problem type of Mantis #23546. A record must not contain a static array that uses itself as an element type (in can contain a dynamic array however) otherwise an infinite loop is encountered when checking whether the record needs special init/final code.
pdecvar.pas, read_record_fields:
  * if the def of the field is a static array then use the array's element def (the final element def if it is a multi dimensional array) to check for whether this is the current record type

+ added tests

git-svn-id: trunk@23352 -
2013-01-09 14:07:01 +00:00
pierre
e7d1c468ca Regenerated with Use -32 -mips32 option for mips/mipsel ASTARGET
git-svn-id: trunk@23351 -
2013-01-09 12:39:34 +00:00
pierre
bdadde3ea9 Use -32 -mips32 option for mips/mipsel ASTARGET
git-svn-id: trunk@23350 -
2013-01-09 12:39:16 +00:00
svenbarth
29bd000a4a Fix for Mantis #23571.
ptype.pas, single_type:
  * if using a message that expects a parameter, provide that parameter...

+ added tests

git-svn-id: trunk@23349 -
2013-01-09 11:28:17 +00:00
svenbarth
6fb958a491 symdef.pas, tstoreddef:
* adjust "is_generic" so that it will really work for true generics only
  + added an analogous method "is_specialization" for specializations

Both methods are not used yet, but this will change in the future...

git-svn-id: trunk@23348 -
2013-01-09 09:34:20 +00:00
svenbarth
fdb1950227 Fix for revision 23344.
pgenutil.pas, generate_specialization:
  in case of "assigned(parsedtype)" an ">" could immediately follow (only one type parameter), so don't necessarily expect a type identifier

git-svn-id: trunk@23347 -
2013-01-09 09:12:39 +00:00
paul
97d7a4ff50 compiler: fix indentation
git-svn-id: trunk@23346 -
2013-01-09 01:26:46 +00:00
sergei
d43c38633c * Fixed tMIPSELnotnode.second_boolean do handle QWordBool type correctly and deal with difference between Pascal and C booleans. Also improved it to produce code without macros. Fixes webtbs/tw20874 (and maybe something else).
git-svn-id: trunk@23345 -
2013-01-08 17:43:33 +00:00
svenbarth
27f5e4f582 Fix for Mantis #23547. Basically we now fail with nicer error messages.
pgenutil.pas:
  generate_specialization:
    + instead of giving an internal error if "symname" is empty and "tt" is "nil" we now do an error recovery by parsing the specialization parameters and returning an errordef (this happens if the "generic" type before the "<" is not found)
    * handle "<>" specially by giving an approbiate error message (both when doing a recovery/parsing a generic and during normal specialization)
  parse_generic_parameters:
    * set the "block_type" to "bt_type" to be on the safe side
    * don't continue with inspecting the def (especially hard typecasting) if the found def is not an "objectdef"

Added tests.

git-svn-id: trunk@23344 -
2013-01-08 09:05:11 +00:00
sergei
7530fb3352 * tcgx86.make_simple_ref: handle references to absolute addresses (these are quite rare on x86_64, but still worth to handle correctly).
* If possible, use reference base instead of index, this yields shorter instructions.
* Added comment about offset limits for rip-relative addressing.
- Removed code related to taking threadvar address on win32, it is incorrect because Windows TLS is not directly accessible via segment registers (fs:0x2c points to array of pointers to TLS storages of each module, so at least double indirection is needed).

git-svn-id: trunk@23342 -
2013-01-07 16:00:12 +00:00
michael
7f10df3daa * Patch from Denis Volodarsky to add enumerator to vector (bug ID #22689)
git-svn-id: trunk@23341 -
2013-01-07 15:55:48 +00:00
michael
aeba9af003 * Patch from Vladimir Zhirov to add RemoteAddress, RemoteHost, ServerPort fields to content
git-svn-id: trunk@23340 -
2013-01-07 15:46:56 +00:00
sergei
49d7448f44 * Made TElfExeOutput.CreatePLT method protected virtual, so CPU-specific handling can be provided by descendants.
* Handle SHT_GNU_ATTRIBUTES sections (ignore them for now).

git-svn-id: trunk@23339 -
2013-01-07 15:22:04 +00:00
sergei
b197919953 * Handle relocation section prefixes (.rel/.rela) in internal linker script based on ElfTarget.relocs_use_addend, getting rid of $ifdef's.
+ Linker script adjustments for ARM target.

git-svn-id: trunk@23338 -
2013-01-07 15:13:05 +00:00
michael
7c8fcb63b7 * Changed DateTimeToTimestamp not to use Round()
git-svn-id: trunk@23337 -
2013-01-07 13:00:27 +00:00
michael
ce8fab6df7 * Fixed bug ID #20484
git-svn-id: trunk@23336 -
2013-01-07 11:23:55 +00:00
michael
b315d35819 * Patch from Luiz Americo to remove redundant test
git-svn-id: trunk@23335 -
2013-01-07 10:36:46 +00:00
michael
2a9e12c709 * Fixed rounding errors in DateTimeToTimeStamp, causing errors in conversions
git-svn-id: trunk@23334 -
2013-01-07 10:28:47 +00:00
Jonas Maebe
9ca374c0c6 * fixed compilation without -dFPC_USE_WIN64_SEH after r23325
git-svn-id: trunk@23333 -
2013-01-07 09:01:10 +00:00
michael
1ff0b31bf6 * Better check (see bug #23597)
git-svn-id: trunk@23332 -
2013-01-07 08:26:35 +00:00
florian
889b7285b1 * disable record register variables with a size of 2*sizeof(asizeint) on big endian architectures
git-svn-id: trunk@23331 -
2013-01-06 19:46:53 +00:00
Jonas Maebe
39f46d8350 * restored accidentally removed call to fpc_handleerror in r23325
git-svn-id: trunk@23330 -
2013-01-06 19:46:21 +00:00
paul
1508fd427d compiler: handle calling convention of record (class)constructors/destructors later as it is done with other record methods
git-svn-id: trunk@23329 -
2013-01-06 17:04:28 +00:00
michael
b55eb113a6 * Fixed bug ID #23464
git-svn-id: trunk@23328 -
2013-01-06 16:49:35 +00:00
michael
a701176c70 * Better error handling in FastCGI in case writing response fails (bug ID 23564)
git-svn-id: trunk@23327 -
2013-01-06 16:29:23 +00:00
Jonas Maebe
9777699c70 * fixed compilation for targets with internal stack checking after r23325
* added (commented out) fpc_stackcheck() compilerproc to java version of
    compproc.inc

git-svn-id: trunk@23326 -
2013-01-06 15:51:46 +00:00
Jonas Maebe
69c29a415f * pass the procdef to getintparaloc instead of only the proccalloption, so
that the type of the parameters can be determined automatically
   o added compilerproc declarations for all helpers called in the compiler
     via their assembler name, so we can look up the corresponding procdef

git-svn-id: trunk@23325 -
2013-01-06 15:05:40 +00:00
Jonas Maebe
7c578c3541 * made the pascal name of the string range checking helpers match
their assembler name

git-svn-id: trunk@23324 -
2013-01-06 15:05:33 +00:00
Jonas Maebe
1355fc0198 - disabled RecordRTTI declaration on the JVM target, because that
routine is not necessary/implemented there and hence doesn't exist

git-svn-id: trunk@23323 -
2013-01-06 15:05:29 +00:00
Jonas Maebe
4ea78538e4 * enabled threading feature for jvm target so that rtl/inc/genmath.inc
compiles again there (it's possible to take the address of arbitrary
    threadvars on the jvm platform, but not of arbitrary other variables)
  - disabled inclusion of generic thread manager and threadvar support
    on the jvm target if the threading feature is enabled

git-svn-id: trunk@23322 -
2013-01-06 15:05:24 +00:00
Jonas Maebe
fe5a4baa15 - removed FPC 2.4 bootstrapping support
git-svn-id: trunk@23321 -
2013-01-06 15:05:20 +00:00
Jonas Maebe
5f3d762788 * when the stack size is overestimated so much that it's larger than the
stack pointer (can happen for externally started threads), truncate it
    to a legal value (should stop crashes when enabling stack checking on
    iOS 6)

git-svn-id: trunk@23320 -
2013-01-06 15:05:16 +00:00
michael
51cce629e9 * Resources example
git-svn-id: trunk@23319 -
2013-01-06 14:56:03 +00:00
michael
64f8c451d9 * Implemented cross-platform version of fileinfo
git-svn-id: trunk@23318 -
2013-01-06 14:52:06 +00:00
florian
4f30ac0247 * put records with 16 bytes size into two register on 64 bit targets if possible
* don't put records containing floats into integer registers
* copy&paste error in tcg128.a_load128_const_reg fixed

git-svn-id: trunk@23317 -
2013-01-05 22:58:32 +00:00