Commit Graph

39440 Commits

Author SHA1 Message Date
Károly Balogh
7fa067265b small & ugly patch to work around old GNU AS on Amiga, which doesn't know about -march=
git-svn-id: trunk@23160 -
2012-12-17 00:12:30 +00:00
Károly Balogh
e2ce0e54c2 made Amiga/68k RTL to build with new m68k compiler at least (result probably not functional yet)
git-svn-id: trunk@23159 -
2012-12-16 23:46:27 +00:00
svenbarth
4adb36e8da Add support for generic type constraints. They are currently only useful to stop specialization of a generic. The parsing of a generic is still too lax and needs to be changed in the future...
symconst.pas:
  + extend "tdefoptions" by a "df_genconstraint" which will be used to mark dummy defs that should mainly satisfy the compiler's type checking without to much changes
symsym.pas:
  + add a class "tgenericconstraintdata" which will hold information about the constraints associated with a specific generic type parameter (designed for future extensions)
  + extend "ttypesym" by a reference to a "tgenericconstraintdata" which is written to the ppu only if needed
symtype.pas:
  + add a pointer to "tderef" as this is needed for the ppu reading/writing code for the "tgenericconstraintdata"
pdecl.pas, types_dec:
  + call "parse_generic_parameters" so that constraints are allowed
pgenutil.pas:
  + extend "generate_specialization" by a "parsedpos" to give in the file position of the first parsed parameter (needed for correct error locations when checking the constraints)
  + add an overloaded call of "generate_specialization" to differentiate between the use cases "first parameter parsed by generate_specialization" and "first parameter parsed by other code"; this also allows to write the "fillchar" for the "parampos" parameter only once ( => otherwise a warning is triggered => error in compilation)
  + extend the "parse_generic_specialization_types" by a "poslist" parameter which will contain the positions of all parsed type parameters (can only be used in the case that all parameters are parsed)
  * move the original code of "parse_generic_specialization_types" to a new procedure "parse_generic_specialization_types_internal" which take an additional "parsedpos" parameter which will be added to the "poslist" before all others; "parse_generic_specialization_types" calls this new procedure with a dummy argument (which won't be used)
  + extend "parse_generic_parameters" by the parsing of generic constraints which constructs correct defs for the parameters and fills in the new "tgenericconstraintdata" object for each parameter (note: the "constructor" constraint is only parsed for Delphi compatibility and basically means the same as a "class" constraint... (it's a relict of Delphi.NET))
  * adjust "insert_generic_parameter_types" as specializations and generics can no longer be differed by whether the type parameters are of type "undefineddef"
pdecsub.pas, parse_proc_head, consume_generic_interface:
  * adjust call to "generate_specialization"
  + add a new function "check_generic_constraints" which is used from within "generate_specialization" to ensure that the given specialization parameters are compatible with the constraints of the generic parameters
ptype.pas:
  * single_type: adjust call to "generate_specialization"
  * read_named_type, expr_type: adjust call to "generate_specialization"
  + write_persistent_type_info: don't write typeinfo for constraints
pexpr.pas, sub_expr:
  * adjust call to "generate_specialization"
* adjusted ppudump, because of added "tdefoptions.df_genconstraint" value

+ added tests for generic constraints
* modified test for class helper inside a generic which extends a class type parameter
+ added test for record helper inside a generic which extends a record type parameter

git-svn-id: trunk@23158 -
2012-12-16 13:44:58 +00:00
florian
e4b0c1b284 + lazarus compiler project for aarch64
git-svn-id: trunk@23157 -
2012-12-16 12:35:02 +00:00
florian
d4c17ec4e0 + patch by Vojtech Cihak to add csqr function, resolves #23492
+ init function for complex numbers
+ csamevalue function
+ test
+ run tests in units/ucomplex directory

git-svn-id: trunk@23156 -
2012-12-16 10:15:13 +00:00
sergei
c73ec250a6 + Endian-swapping procedures for version (TElfverneed, etc.) records.
git-svn-id: trunk@23155 -
2012-12-16 09:43:48 +00:00
sergei
0aa7204707 + Added codes of dynamic relocations to TElfTarget; since most targets use similar dynamic relocation model differing only in code values, this will allow to do majority of handling in the base class.
git-svn-id: trunk@23154 -
2012-12-16 09:36:34 +00:00
Jonas Maebe
c37c039905 * report resolveref errors on the correct line number
git-svn-id: trunk@23153 -
2012-12-15 22:54:22 +00:00
Jonas Maebe
6ac8b4fbdf * give a proper error when an mmx/fpu/sse register is used inside a memory
reference (mantis #23441)

git-svn-id: trunk@23152 -
2012-12-15 22:47:16 +00:00
Jonas Maebe
68dd05e259 * fixed std_regname() for xmm registers with custom sizes
* fixed findreg_by_number() for xmm registers with R_SUBNONE
    (from the assembler reader)

git-svn-id: trunk@23151 -
2012-12-15 22:47:12 +00:00
Jonas Maebe
6e9a8c9187 * write node flags to log file instead of to stdout
git-svn-id: trunk@23150 -
2012-12-15 22:47:07 +00:00
svenbarth
9ef4a35a7b Fix the fix for Mantis #21538. The check never really worked up to now...
defcmp.pas, compare_defs_ext:
  use "equal_defs" instead of a reference comparison to check whether the type defs are equal
pgenutil.pas, insert_generic_parameter_types:
  * add to each (specialized) generic parameter the "sp_generic_para" flag so that it will be added to the "genericparas" list upon ppu loading
  * add the generic parameter to the genericparas list as well, so that the comparison in "compare_defs_ext" is triggered at all... (up to now the list was always empty -.-)
ppu.pas:
  * increase PPU version

git-svn-id: trunk@23149 -
2012-12-15 21:43:52 +00:00
ludob
43371002c4 Oracleconnection: added support for TSQLCurser.FSelectable
git-svn-id: trunk@23148 -
2012-12-15 15:52:08 +00:00
sergei
db72b8d7fd * TCGMips.a_loadfpu_reg_cgpara: temps of type Double need 8-byte alignment, according to description of sdcX/ldcX instructions. Using TCGSize2Size to specify alignment is somewhat weird, but it is being used in other CPU back-ends and looks working.
git-svn-id: trunk@23146 -
2012-12-15 08:47:11 +00:00
sergei
1415569ecb - Removed UnixToWinAge, since revision 444 it does not change its argument, but wastes a lot of CPU cycles converting it from local time and back.
git-svn-id: trunk@23145 -
2012-12-15 08:38:41 +00:00
michael
cecea651b2 * Expose ForeachCall functionality in new Iterate call, but keep backwards compatibiliy
git-svn-id: trunk@23144 -
2012-12-14 14:56:42 +00:00
michael
37279faba5 * Hide internals of ForeachCall data structure
git-svn-id: trunk@23143 -
2012-12-14 14:49:00 +00:00
michael
95a0d01d0d ForeachCall needs to be pubic
git-svn-id: trunk@23142 -
2012-12-14 10:55:48 +00:00
lacak
722193d643 fcl-db: sqlite: increase max allowed column length. Fix for existing test TestStringLargerThen8192.
git-svn-id: trunk@23141 -
2012-12-14 09:54:02 +00:00
lacak
7566c9c685 fcl-db: postgresql: correct message for unpreparation.
(note: if preparation of one statement failed and there are other already prepared statements (f.e. selects), then when Rollback used CloseDatasets is called which lead to Unpreparation of all datasets, which fails with : "current transaction is aborted, commands ignored until end of transaction block" ...)

git-svn-id: trunk@23140 -
2012-12-14 09:33:43 +00:00
lacak
7e2627f047 fcl-db: formatting (char case)
git-svn-id: trunk@23139 -
2012-12-14 07:00:39 +00:00
lacak
ecd81ed514 fcl-db: postgresql: do not clear result of PQexec if result set is returned (PGRES_TUPLES_OK) + test
simplify error handling

git-svn-id: trunk@23138 -
2012-12-14 06:22:05 +00:00
lacak
66a6b15efe fcl-db: switch from usage of [stSelect, stExecProcedure] to FSelectable to determine if there is result set.
(see also previous commit)

git-svn-id: trunk@23137 -
2012-12-13 11:26:45 +00:00
lacak
6a9c3a6061 fcl-db: introduce FSelectable as new TSQLCursor class field. Update sql connectors to set it after Preparation or Execution of sql statement to signal if there will be or is result set. This change is neutral. In next commit I will use FSelectable to determine if allow Open or raise SErrNoSelectStatement.
(motivation is that there are many various statements, that are not stSelect nor stExecProcedure, which also return result set)

git-svn-id: trunk@23136 -
2012-12-13 11:16:25 +00:00
michael
11a531ab62 * Fixed bug #23477
git-svn-id: trunk@23135 -
2012-12-12 15:21:28 +00:00
reiniero
50f1ab686a * fcl-db tests: clarified TTestBufDatasetDBBasics.TestIndexEditRecord error messages/description
git-svn-id: trunk@23134 -
2012-12-11 13:39:39 +00:00
nickysn
ca61631524 * fixed the key codes of the Shift-Key combinations in the X11 console
git-svn-id: trunk@23133 -
2012-12-10 21:44:09 +00:00
florian
db68214e88 + support setpeoptflags directive, resolves #23447
git-svn-id: trunk@23132 -
2012-12-10 19:17:25 +00:00
Jonas Maebe
d180d6f241 * fixed size of movzx/movsx with 64bit operand in x86-64 Intel asm reader
git-svn-id: trunk@23131 -
2012-12-09 22:42:52 +00:00
Jonas Maebe
14b1c8a99c * moved fpc_threadvar_relocate_proc from systemh.inc to thread.inc
and gave it the correct type (TRelocateThreadVarHandler)
  * changed parameter type of InitThread also to TRelocateThreadVarHandler

git-svn-id: trunk@23130 -
2012-12-09 22:42:46 +00:00
florian
2ea6979277 * handle Movzl/Op/Mov optimization correctly, resolves #23431
git-svn-id: trunk@23128 -
2012-12-09 21:27:05 +00:00
sergei
00ca4a74a3 * Reworked/fixed TExeSymbol.State behavior:
* Added symstate_undefweak for undefined symbols having only weak references to them, this state is removed when a normal reference to symbol is seen.
  * Use a separate boolean property to determine if ExeSymbol is referenced.
  * Use a separate property TExeOutput.AllowUndefinedSymbols to suppress error messages when linking dynamic shared objects.
  * Don't issue InternalError when an undefined symbol is encountered during unused section removal.

git-svn-id: trunk@23127 -
2012-12-09 08:02:58 +00:00
sergei
a771d68685 * Fixed a bug introduced in r23077: relative_reloc_count must be increased only once per GOT entry, not every time a relocation to that entry is seen.
git-svn-id: trunk@23126 -
2012-12-09 06:39:43 +00:00
reiniero
4ab7c432c0 * fcl-db tests: cosmetic: updated readme
git-svn-id: trunk@23125 -
2012-12-08 14:54:04 +00:00
sergei
a7eab8ff67 * TElfObjInput: Factored section creation code into separate method which can be called by CPU-specific routines.
+ Load SHT_INIT_ARRAY,SHT_FINI_ARRAY,SHT_PREINIT_ARRAY section types.

git-svn-id: trunk@23124 -
2012-12-08 11:26:38 +00:00
reiniero
7c128f6556 * fcl-db sqldb: cosmetic; added info to readme.txt
git-svn-id: trunk@23123 -
2012-12-07 15:26:17 +00:00
reiniero
9cb8438cca * fcl-db tests: cosmetic: test using constants instead of manually assigned values that happen to be the same
git-svn-id: trunk@23122 -
2012-12-07 11:24:13 +00:00
lacak
bc25c4b297 fcl-db: tests: starting from rev.23113 is AutoCommit OFF by default for TODBCConnection. So we does not need set it explicitly (reverts my previous commit in rev.23075)
git-svn-id: trunk@23121 -
2012-12-07 11:12:14 +00:00
lacak
fb3a6f9054 fcl-db: odbc: map 'call' to stExecProcedure.
(revealed by test TestOpenStoredProc for MySQL ODBC)

git-svn-id: trunk@23120 -
2012-12-07 07:58:45 +00:00
sergei
59593f86a7 + Some more ELF definitions (related to symbol versioning).
git-svn-id: trunk@23119 -
2012-12-06 18:24:44 +00:00
sergei
36859068f5 * Propagate AS_NEEDED flag further into Load_DynamicObject and handle it properly: shared objects marked with AS_NEEDED are added to dependencies only if they actually resolve some symbol.
* Dropped TObjInput.newObjData method. Instead, TObjData instances are created directly in ReadObjData, this gives possibility to create a different type of TObjData based on file header.
- Dropped TObjInput destructor, it does nothing except calling inherited.

git-svn-id: trunk@23118 -
2012-12-06 18:19:19 +00:00
Jonas Maebe
29095e9dd3 * fixed if-simplication for C-style booleans by considering all values
different from 0 to be "true", instead of only 1 (patch by Jeppe Johansen,
    mantis #23436)

git-svn-id: trunk@23117 -
2012-12-06 15:18:58 +00:00
sergei
7d19a6d551 * Propagate AS_NEEDED flag down the expression tree an assign it to TStaticLibrary objects.
git-svn-id: trunk@23116 -
2012-12-05 16:05:16 +00:00
sergei
67a41e1e94 * Fixed 2 bugs introduced in r22951:
* Require symbol table presence only in dynamic objects; relocatable objects may not contain one (example is crtn.o).
  * Attempt to write relocations from dynreloclist regardless of relative_reloc_count, the latter is typically 0 in executables.

git-svn-id: trunk@23115 -
2012-12-05 15:49:45 +00:00
lacak
7524b9219c fcl-db: odbc: map MONEY columns to TCurrencyField instead of TFloatField (test TestSupportCurrencyFields)
git-svn-id: trunk@23114 -
2012-12-05 08:17:01 +00:00
michael
b63bd2c749 * Autocommit OFF by default, bug ID #23429
git-svn-id: trunk@23113 -
2012-12-04 19:54:03 +00:00
lacak
a49dc1d262 fcl-db: tests: improve TestSQLInterval + comments
(MySQL ODBC driver does not correctly handles TIME values >= '100:00:00')

git-svn-id: trunk@23112 -
2012-12-04 12:18:59 +00:00
ludob
b36aa216e5 TDataset: fixed daAbort TDataAction behavior (was not aborting). Fixed TDataset.Delete calling OnDeleteError instead of OnPostError.
git-svn-id: trunk@23111 -
2012-12-04 10:00:43 +00:00
florian
8e5bd14e3a * overleft newline fix
git-svn-id: trunk@23110 -
2012-12-03 21:56:01 +00:00
florian
1ea8a397e5 * use membar only for sparcv9(+)
git-svn-id: trunk@23109 -
2012-12-03 21:55:51 +00:00