Commit Graph

46561 Commits

Author SHA1 Message Date
michael
d900f4a29f * Added support for class methods/properties in records
git-svn-id: trunk@31205 -
2015-07-12 07:25:08 +00:00
pierre
960a72f821 Use AnsiString and sysutils GetEnvironmentVariable function to avoid truncation of PATH to 255 chars
git-svn-id: trunk@31202 -
2015-07-11 13:59:06 +00:00
Jonas Maebe
9118146bc1 * ensure that managed out-parameters are processed before any other
parameters:
   1) since they are finalised on the caller side, if that same value
      is passed as a value parameter as well and its reference count
      was 1, then the value parameter will contain an invalid pointer
   2) since finalisation involves a call, for optimal code generation
      purposes they should also be evaluated first
    (mantis #28279, #28390)

git-svn-id: trunk@31201 -
2015-07-10 22:04:35 +00:00
lacak
a2b7b9cd6e fcl-db: odbc: experimental support for XML and sql_variant SQL Server data types
git-svn-id: trunk@31200 -
2015-07-08 13:00:59 +00:00
Jonas Maebe
5f21d6df93 * enable -godwarfsets by default
git-svn-id: trunk@31199 -
2015-07-07 17:12:31 +00:00
Jonas Maebe
945fd4fcf5 * wait till the end of typecheckpass before we load a call context's self
parameter instead of immediately doing it in the constructor of the call
  node, and then only create it if we actually need it.

  It was previously created in the call node constructor because it needs to be
  done before pass_1 (which is where it is actually used) due to pass_1 possibly
  being performed in the context of inlining (and then a wrong self parameter
  may be found, or none at all), and it was done unconditionally because at that
  point we don't know yet whether or not a self parameter will be necessary (as
  we haven't resolved the overloads/procdef yet).

  The problem with this is that if we use the parentfpstruct way of handling
  accesses to outer scope locals/parameters, we need to know all locals/
  parameters that will be accessed from nested routines after typecheckpass,
  otherwise we get crashes. The problem was that if a call to an RTL routine was
  generated by the compiler in a routine nested inside a method during pass_1,
  and this nested routine itself did not access self of the method (so self was
  not added to its parentfpstruct during the typecheckpass), then the
  unconditional reference to self when creating the call caused a compiler
  crash (introduced in r30908)

git-svn-id: trunk@31197 -
2015-07-07 16:34:14 +00:00
Jonas Maebe
5d15a28e75 - reverted workaround from r15939 that hasn't been necessary since FPC 2.6.0,
since that version already shiped with GNU AS 2.21 (mantis #17337)

git-svn-id: trunk@31196 -
2015-07-06 08:05:37 +00:00
florian
ba1297b1ab + provide also 8 and 16 bit div/mod helper
* tmoddivnode.first_moddivint does not force a 32 bit helper, the used helper depends now on the resultdef type set by tmoddivnode.pass_typecheck

git-svn-id: trunk@31195 -
2015-07-05 20:16:50 +00:00
florian
cf64e05c6f * use generic mod/div code for avr
git-svn-id: trunk@31194 -
2015-07-05 17:05:43 +00:00
Jonas Maebe
af2c7bf00f * don't perform CSE on typeconversion nodes inserted for absolute
references, or anything below them (mantis #27210)

git-svn-id: trunk@31193 -
2015-07-04 22:28:31 +00:00
Jonas Maebe
1bcc276dcf * remove implicit typecast to extended automatically inserted for trunc/round
(due to the declaration in the system unit) on x86_64 if this allows us
    to use SSE code instead (mantis #28366)

git-svn-id: trunk@31192 -
2015-07-03 21:01:18 +00:00
Jonas Maebe
fa1ac2515e * don't look for overloaded operators in case of internally generated
type conversions (mantis #28375)

git-svn-id: trunk@31191 -
2015-07-03 20:19:48 +00:00
Jonas Maebe
ee87d3bba9 * fixed "case <string> of" with multiple labels for a single statement after
r30855 (mantis #28372)

git-svn-id: trunk@31190 -
2015-07-03 20:04:25 +00:00
Jonas Maebe
e9d2eb6cff * fixed a_load_reg_reg() when storing an array/record to another
array/record type (can happen for parameters/function results
    that got a different type for ABI reasons)

git-svn-id: trunk@31189 -
2015-07-03 20:04:22 +00:00
Jonas Maebe
36e5291d94 * converted tcgguidconstnode.pass_generate_code to use the high level typed
constant builder

git-svn-id: trunk@31188 -
2015-07-03 20:04:18 +00:00
Jonas Maebe
7a8b5fd6c5 * several fixes for emitting aggregate typed constants with C/ABI packing:
o don't emit explicit padding bytes (LLVM adds them)
   o don't mark them in LLVM as packed either

git-svn-id: trunk@31187 -
2015-07-03 20:04:15 +00:00
Jonas Maebe
4edb6e68fd * fixed emitting Pascal extended typed constants inside aggregates for llvm
(have to be emitted as arrays of bytes to ensure they don't take up
     more than 10 bytes)

git-svn-id: trunk@31186 -
2015-07-03 20:04:11 +00:00
michael
0958ff80de * Fix bug #28364
git-svn-id: trunk@31185 -
2015-07-01 19:57:10 +00:00
michael
8cb651c0a5 * Correct documenting of advanced records
git-svn-id: trunk@31184 -
2015-07-01 19:44:47 +00:00
michael
a5715c078b * Better parsing and declaration of record types
git-svn-id: trunk@31183 -
2015-07-01 19:44:17 +00:00
michael
770ad238f4 * Added Fail and TypeOf routines
git-svn-id: trunk@31182 -
2015-07-01 19:42:02 +00:00
Károly Balogh
7eb05ba2ab AROS: use BPTR type as filehandle. BPTR is now PtrInt instead of a Pointer, because it's usually not directly referenceable, and that allows interoperability with THandle type
git-svn-id: trunk@31181 -
2015-06-29 23:11:02 +00:00
Károly Balogh
0d1c85a095 Amiga-likes: support unit_env environment variable for unit paths
git-svn-id: trunk@31180 -
2015-06-29 21:42:40 +00:00
Károly Balogh
a5abd4acd7 AROS/x86_64: fixed resources to use res_elf, set default stacksize for the more sensible 1MB instead of 8MB
git-svn-id: trunk@31179 -
2015-06-29 21:30:53 +00:00
Károly Balogh
02b9b1743e AROS/x86_64: fixed linker support by removing duplicated code and unifying it with i386
git-svn-id: trunk@31178 -
2015-06-29 21:28:51 +00:00
Károly Balogh
77bdd83bfc AROS/x86_64: regenerated Makefiles
git-svn-id: trunk@31177 -
2015-06-29 00:09:06 +00:00
Károly Balogh
eda311c0b3 arosunits: add some temporary kludge so it compiles at least on x86_64
git-svn-id: trunk@31176 -
2015-06-28 23:58:15 +00:00
Károly Balogh
32120a47f4 amicommon/sysutils: use THandle instead of Longint
git-svn-id: trunk@31175 -
2015-06-28 23:38:37 +00:00
Károly Balogh
c704b4b918 amicommon/sysfile.inc: use THandle instead of LongInt
git-svn-id: trunk@31174 -
2015-06-28 23:36:09 +00:00
Károly Balogh
51a6c217c7 amicommon/dos: some warning fixes - use PtrInt instead of LongInt; do not check for less than zero values in unsigned variables
git-svn-id: trunk@31173 -
2015-06-28 23:12:41 +00:00
Károly Balogh
f0ccbc87f2 AROS/x86_64: enable syscalls code in the parser, fix EAX->RAX reference base while calculating syscall offset
git-svn-id: trunk@31172 -
2015-06-28 23:04:51 +00:00
marcus
b3abbf066f AROS: fixed inputevent (missing constants, wrong types)
git-svn-id: trunk@31171 -
2015-06-28 20:38:10 +00:00
florian
af6ffd751f + generate optimized code for shifts/rotates by constants
git-svn-id: trunk@31170 -
2015-06-28 20:28:51 +00:00
Károly Balogh
7ca62febcd AROS/x86_64: initial AROS/x86_64 support and implement syscalls for AROS/x86_64
git-svn-id: trunk@31169 -
2015-06-28 19:16:40 +00:00
marcus
09addc9e78 fcl-passrc: support for syscall functions, parameter location, HASAMIGA define
git-svn-id: trunk@31168 -
2015-06-28 18:49:53 +00:00
Károly Balogh
4eaf1ffa48 FPCMake: enable AROS on x86_64
git-svn-id: trunk@31167 -
2015-06-28 15:58:23 +00:00
marco
c9ae6b34c6 * initial support for INSTALL_BINDIR. If that option isn't used behaviour
should be the same as old. Mantis #27272

git-svn-id: trunk@31166 -
2015-06-28 15:06:04 +00:00
marcus
627d63e7af AROS: Startup code for x64
git-svn-id: trunk@31165 -
2015-06-28 14:51:50 +00:00
marcus
56ae2ad6bc AROS: removed readintags and readinlongs (just a bug function), Added missing functions in AmigaDos, GetAttr overloaded with var parameter
git-svn-id: trunk@31164 -
2015-06-28 07:20:56 +00:00
nickysn
4cbf484124 * update the ptc version number in the readme
git-svn-id: trunk@31162 -
2015-06-26 21:33:49 +00:00
michael
d0df1c6fbb * Empty string in case statement does not work
git-svn-id: trunk@31161 -
2015-06-26 09:24:10 +00:00
michael
33916f51d0 * Added logging demo
git-svn-id: trunk@31160 -
2015-06-26 09:12:31 +00:00
michael
4cc83ba03f * Fix typo
git-svn-id: trunk@31159 -
2015-06-26 09:08:33 +00:00
michael
ba506acf9f * Actually log new log types (ActualSQL and ParamValue)
git-svn-id: trunk@31158 -
2015-06-26 09:07:30 +00:00
michael
71ab58a2f1 * Added ActualSQL and ParamValue log types, correct SQLConnector so it passes log options on
git-svn-id: trunk@31157 -
2015-06-26 09:00:09 +00:00
michael
e209b1604f * Correct error message for unknown connector, add param value message
git-svn-id: trunk@31156 -
2015-06-26 08:58:28 +00:00
lacak
2f97bc7f60 fcl-db: fix parameter parsing in case, when in SQL follows two comments, where in 2nd commend is embeded quote char. Bug #22463
git-svn-id: trunk@31155 -
2015-06-26 08:02:49 +00:00
michael
3a746b76fa * Example to demonstrate how to create sql
git-svn-id: trunk@31154 -
2015-06-25 17:32:53 +00:00
marco
8b9daedf10 Patch by Lacak, mantis #28432
- adds missing Microsoft specific types (I am not sure if it is best add them to generic ODBC, but two MS specific types are alredy there so I added remaining 4)
- for conversion function I have added NtoLE to be sure that number are in little endian as expected by ODBC

git-svn-id: trunk@31153 -
2015-06-24 18:57:20 +00:00
Károly Balogh
cdfe930c31 Amiga-likes: fix the same header issues in Amiga and AROS, which was fixed for MorphOS in r30917
git-svn-id: trunk@31151 -
2015-06-23 23:22:22 +00:00