Commit Graph

39318 Commits

Author SHA1 Message Date
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
sergei
2bba4e2d44 + Stabs debug info needs swapping when linking for different endianness.
* A few minor tweaks for Stabs generation.

git-svn-id: trunk@23316 -
2013-01-05 12:26:23 +00:00
florian
c781f21a46 * records with two times the size of a register can be kept in registers
git-svn-id: trunk@23313 -
2013-01-04 21:48:41 +00:00
florian
6363567fba * FloatToStrFIntl is used only internally so we can assume that Value is aligned
git-svn-id: trunk@23311 -
2013-01-04 19:13:28 +00:00
florian
b43b4bb455 + pseudo procedure aligned: tells the compiler to assume that the given parameter is naturally aligned, counterpart of unaligned
git-svn-id: trunk@23310 -
2013-01-04 19:13:24 +00:00
florian
fce9e953b4 + nested exit support
git-svn-id: trunk@23309 -
2013-01-04 19:09:04 +00:00
masta
6fabe49828 Readded cutils to compiler/arm/rgcpu.pas for DEBUG_SPILLING
Commit r23306 broke compiling with DEBUG_SPILLING set. Unit cutils will
now be included when DEBUG_SPILLING is set.

git-svn-id: trunk@23308 -
2013-01-04 12:21:54 +00:00
lacak
c5e8af10a4 fcl-db:
* Fixes tests for UniDirectional datasets
* Calculated fields are supported by UniDirectional datasets
* Lookup fields return always null for UniDirectional datasets in Delphi
* First is valid for UniDirectional datasets (in TDataSet.First closes/opens dataset if not at Bof)

git-svn-id: trunk@23307 -
2013-01-04 07:38:02 +00:00
florian
47d43750e4 * remove unused units from uses statements
git-svn-id: trunk@23306 -
2013-01-03 23:07:09 +00:00
florian
318f0e5cab * enable section smartlinking for powerpc-linux to reduce compilation
times, some testing with qemu-ppc showed no problems

git-svn-id: trunk@23305 -
2013-01-03 23:04:29 +00:00
florian
198907797b * don't replace vmt entries of empty methods by FPC_EMPTYMETHOD
if the code is compiled for x86 and returns the result in an fpu register

git-svn-id: trunk@23304 -
2013-01-03 23:01:07 +00:00
florian
7ac9f11cc7 * check if current_procinfo is assigned in paramanager code to avoid crashes
git-svn-id: trunk@23303 -
2013-01-03 23:00:03 +00:00
florian
329257d76e * check for empty procedures after helper test so even empty helper methods cannot be called directly
* don't remove calls to subroutines taking arrays of const

git-svn-id: trunk@23302 -
2013-01-03 22:58:56 +00:00
yury
7322164c0a * I've found that libc on Android does not implement widechar case functions such as towupper(). Such functions are just wrappers over regular char functions. Therefore the whole cwstring unit is useless for Android. For now I've added stub cwstring unit for Android and reverted all Android specific changes in unix/cwstring.pp. Later, Unicode manager for Androud should be implemented using libicuuc, which is default Android lib.
git-svn-id: branches/targetandroid@23301 -
2013-01-02 18:47:09 +00:00
florian
f0487f8fde * remove packed used for nan records in the softfpu code, it served no purpose
* recordered files of nan records in the softfpu code

git-svn-id: trunk@23300 -
2013-01-02 18:13:21 +00:00
yury
b480479b8c * Android does not have libiconv, so don't use it in cwstring unit. For now support only UTF-8 code page in ansistrings. Later it is possible to use libicuuc for code page conversions on Android.
git-svn-id: branches/targetandroid@23299 -
2013-01-02 17:38:08 +00:00
yury
26c1ab9375 * Added uuchar unit to build for android.
git-svn-id: branches/targetandroid@23298 -
2013-01-02 15:41:36 +00:00
sekelsenmat
b0980b342d Adds support to join style and endcap in TFPCustomPen in fcl-image
git-svn-id: trunk@23297 -
2013-01-02 14:28:09 +00:00
florian
21d62277ce + build sysutils unit for arm-embedded
git-svn-id: trunk@23296 -
2013-01-02 11:02:44 +00:00
florian
358a62d7c3 * enable command line handling dummy for arm-embedded
git-svn-id: trunk@23295 -
2013-01-02 10:52:19 +00:00
florian
8ee1445b81 * stripped trailing spaces
git-svn-id: trunk@23294 -
2013-01-02 10:50:32 +00:00