Commit Graph

4256 Commits

Author SHA1 Message Date
joost
75e8cbd187 * Added ability to pass options to other packages + test
git-svn-id: trunk@35797 -
2017-04-14 23:00:52 +00:00
joost
13b73244b3 * Added tests for r35776 and r35777
git-svn-id: trunk@35778 -
2017-04-11 16:59:58 +00:00
joost
1119207fe3 * Added test-framework for fppkg
git-svn-id: trunk@35765 -
2017-04-10 15:47:30 +00:00
nickysn
256dc546ac + implemented the in_neg_assign_x and in_not_assign_x inline nodes, which will
be used (TBD in a future commit) for optimizing x:=-x and x:=not x on CPUs
  that support performing these operations directly in memory (such as x86)

git-svn-id: trunk@35749 -
2017-04-07 16:02:40 +00:00
maciej-izak
ff28d5c85d * Fix usage of class operators in generics types. If we have generic type declaration/implementation then constraint in comparison to not specialized generic is not "exact" nor "incompatible". Mantis #30534.
git-svn-id: trunk@35740 -
2017-04-05 13:47:21 +00:00
maciej-izak
e4565378db * Allow for "record constraint" in Delphi mode more types like: ordinal, float, classical objects, enumerations (instead of just record). Delphi compatibility. Fix for mantis #24073.
git-svn-id: trunk@35739 -
2017-04-05 13:12:30 +00:00
maciej-izak
8391b73206 * Virtual methods cannot be declared as static (static virtual method has no sense).
+ added tests

git-svn-id: trunk@35724 -
2017-04-03 20:45:52 +00:00
sergei
8ae0864c9a * x86 Intel asm reader: handle special variables "self" and "result" similar to regular ones in terms of subscripting. This makes fix from r34911 apply to these special variables. Resolves #31542.
git-svn-id: trunk@35669 -
2017-03-27 19:58:55 +00:00
nickysn
fc59649a98 + added inline nodes for handling and/or/xor in place (i.e. x:=x op y, where
op=and/or/xor). They generate more optimal code on certain architectures
  (including x86). The new inline nodes aren't generated by the compiler yet,
  but will be used in the future, at certain optimization levels, whenever the
  pattern x:=x op y is detected by the compiler.

git-svn-id: trunk@35666 -
2017-03-26 23:16:53 +00:00
florian
0897bd154a + align(<int64>,<int64>) and align(<qword>,<qword>), resolves an issue reported on the mailing list with large records
+ tests
* trecordsymtable.insertunionst takes a asizeint parameter
* changed one aint into a asizeint

git-svn-id: trunk@35662 -
2017-03-26 09:35:56 +00:00
svenbarth
34327000d8 + add test for Mantis #31521 which is already fixed, though I don't know which revision did it...
git-svn-id: trunk@35656 -
2017-03-25 13:41:27 +00:00
florian
0cf5ef459d + tcgtypeconvnode.second_class_to_intf supports LOC_CONSTANT as well, resolves #31596
git-svn-id: trunk@35655 -
2017-03-25 10:27:29 +00:00
florian
e8f7c9dfdd + test for large case statements
git-svn-id: trunk@35646 -
2017-03-23 17:57:31 +00:00
sergei
2357ca1fe6 * Fixed size suffix generated for CVTSI2SS, CVTSI2SD, VCVTSI2SS, VCVTSI2SD instructions. Mantis #31550.
* tasm2.pp already detected this bug if run with -al option. Added a copy of tasm2.pp and configured it with -al, so it is run daily on all suitable machines.

git-svn-id: trunk@35626 -
2017-03-19 10:29:28 +00:00
michael
cd03ec93fe * Patch from Karl-Michael Schindler (Bug ID 30402)
git-svn-id: trunk@35622 -
2017-03-18 18:11:18 +00:00
michael
b517ab7906 * Patch from Mattias Gaertner:
- ability to omit declarations
  - removed obsolete code
  + Test unit for optimizations

git-svn-id: trunk@35615 -
2017-03-17 21:28:11 +00:00
michael
5ca540f3c7 * LibUSB headers from Anton Kavalenka (Bug ID 31095)
git-svn-id: trunk@35599 -
2017-03-15 18:38:45 +00:00
michael
7d92b0bd63 * unused Identifier analyser
git-svn-id: trunk@35586 -
2017-03-14 10:59:18 +00:00
florian
ad557a1da6 * allow call dword ptr eax in delphi, resolves #18225
git-svn-id: trunk@35572 -
2017-03-12 16:37:48 +00:00
michael
5de5fa9b7b * Allow object generics, bug ID #31485
git-svn-id: trunk@35571 -
2017-03-12 12:11:12 +00:00
florian
bb8b8f2eae * do not set IsMultithread on windows, if no second thread is started, resolves #30535
git-svn-id: trunk@35567 -
2017-03-11 21:35:48 +00:00
michael
9787c44c78 * Additional tests from Karl-Michael Schindler
git-svn-id: trunk@35521 -
2017-03-04 17:06:27 +00:00
svenbarth
7dc4f16db3 * fix for Mantis #31431: allow specializations to allow private/protected variables that their generic could have accessed
git-svn-id: trunk@35510 -
2017-03-03 21:45:29 +00:00
svenbarth
ece13bcc5a * fix for Mantis #31465: only consider non-static fields when checking whether a record may be used with Default()
+ added test (Note: the test fails due to missing = operator, but without the fix there was a stack overflow)

git-svn-id: trunk@35508 -
2017-03-03 17:03:46 +00:00
Károly Balogh
14ba99ea09 netbsd: bits of the m68k support I started to hack together. non functional yet.
git-svn-id: trunk@35501 -
2017-03-01 17:26:23 +00:00
maciej-izak
16a11c8b7a Bug fix for getting pointer to function result (mantis #10933 #19861)
git-svn-id: trunk@35495 -
2017-03-01 13:23:02 +00:00
Jonas Maebe
1adde89621 * copy tcallnode.right after copying the callinitblock, as right can be a
temprefnode referring to a temp from the init block (mantis #31421)

git-svn-id: trunk@35478 -
2017-02-24 19:57:40 +00:00
florian
b9dba41ad0 * intel assembler reader: scale factor in references can also be a constant symbol, resolves #31165
git-svn-id: trunk@35473 -
2017-02-22 20:59:52 +00:00
maciej-izak
533c89e128 * New test for management operators to detect regressions like regression fixed in r35461 (many times initialized global variables)
git-svn-id: trunk@35463 -
2017-02-21 14:20:15 +00:00
maciej-izak
92c0e57c59 * Test suite for management operators. We have management operators on trunk! Enjoy ^^
git-svn-id: trunk@35452 -
2017-02-19 14:34:09 +00:00
florian
3d6d5145bf * fix handling of const string symbols in preprocessor expressions
+ accept string constants in preprocessor expressions, resolves #31246

git-svn-id: trunk@35432 -
2017-02-12 17:29:45 +00:00
Jonas Maebe
265c8e7bbc + support for specifying ms_abi_default, ms_abi_cdelc, sysv_abi_default, and
sysv_abi_cdecl calling conventions on x86-64 to force using the SYSV/
    Microsoft ABI on platforms that don't use it by default (mainly to ease
    porting pure assembler routines)

git-svn-id: trunk@35425 -
2017-02-11 19:57:12 +00:00
maciej-izak
1d301b6dbe More consequent writing of Rtti. Part of code related to recorddef moved from recorddef_rtti to write_child_data_rtti(). When typeinfo is used in code init Rtti is a child of the full Rtti. Commit also contains correction for code commited for mantis #31249 (r35376) and mantis #31305 (r35377) for objects. Before was impossible to compile code with usage of typeinfo() function for object without managed fields ("Undefined symbol" error).
+ Test attached

git-svn-id: trunk@35403 -
2017-02-06 18:52:37 +00:00
florian
41b028ffc0 * unpcklp* require aligned memory, so do not spill replace their first operand by a memory location, resolves #31332
git-svn-id: trunk@35400 -
2017-02-05 20:59:54 +00:00
Jonas Maebe
6d5339cdb6 * CP819/IBM819 should be mapped to Windows code page 28591 (ISO8859-1)
(mantis #30639)

git-svn-id: trunk@35397 -
2017-02-04 22:44:36 +00:00
michael
eaa02f2f88 * Basic RTL for pas2js generated programs
git-svn-id: trunk@35384 -
2017-02-04 11:31:55 +00:00
svenbarth
11493de99b + add test from Mantis #31305 for completeness sake
git-svn-id: trunk@35377 -
2017-01-31 18:24:00 +00:00
svenbarth
c1390b3442 * fix for Mantis #31249: applied (adjusted) patch provided by Maciej Izak
Commit message:
[PATCH] More consistent RTTI (also better performance) for classic
 objects (reference to initrtti from fullrtti).

git-svn-id: trunk@35376 -
2017-01-31 18:21:53 +00:00
michael
a809705fb8 * New simple program to test if pparser parses some code
git-svn-id: trunk@35358 -
2017-01-29 14:50:34 +00:00
svenbarth
26135d605f + implement interface RTTI inspired by the changes from Steve Hildebrandt, yet not exactly the same. Like his implementation this one isn't Delphi compatible either.
+ added test

git-svn-id: trunk@35341 -
2017-01-27 17:00:15 +00:00
svenbarth
4742e826f6 + add test for Mantis #23702, just to be sure that we don't re-add that already solved problem
git-svn-id: trunk@35335 -
2017-01-27 13:58:54 +00:00
michael
27329429d9 * Fix possible buffer overflow (bug ID 31203)
git-svn-id: trunk@35330 -
2017-01-25 20:59:35 +00:00
Jonas Maebe
048666a25c * when freeing a procdef that hasn't been registered for writing to the ppu
at the end of compiling a unit, also remove it from its owning procsym
    in case the procsym does get written to the ppu (possible because you
    can have extra overloads in the implementation) (mantis #25283)
   o also fixes webtbf/tw4103 on the platforms where this still failed
     (on the platforms where it worked, it worked by accedent since the
      compiler was accessing memory of a freed procdef)

git-svn-id: trunk@35309 -
2017-01-15 17:41:27 +00:00
Jonas Maebe
382bbc1201 - removed gotderef from valid_for_assign(), and return true at every place
where it used to be set to true (dereferencing a pointer always means
    that regardless of what the pointer was, the resut is assignable)
    (mantis #22979)
   o also removed gotpointer, since it was only used in combination with
     gotderef

git-svn-id: trunk@35308 -
2017-01-15 16:32:51 +00:00
michael
180b93b326 * JSON2pas command-line tool added
git-svn-id: trunk@35297 -
2017-01-14 10:22:16 +00:00
michael
e6000e88d1 * Added JSON to pascal converter
git-svn-id: trunk@35296 -
2017-01-14 09:06:49 +00:00
michael
a33812f88c * Improved router implemented
git-svn-id: trunk@35292 -
2017-01-13 22:26:46 +00:00
Károly Balogh
a8325b763f fppkg: shortened the name of pkguninstalledsourcesrepository.pp
git-svn-id: trunk@35277 -
2017-01-12 13:35:08 +00:00
Jeppe Johansen
7e75457a3e Added more Nordic Semi controllers. Created a new unit for NRF52x controllers with a more precise register naming following Nordic SDK conventions.
Patch from Paul Mitchell.

git-svn-id: trunk@35274 -
2017-01-10 20:30:20 +00:00
florian
1bea9e36eb + entropy test for random
git-svn-id: trunk@35260 -
2017-01-08 10:26:12 +00:00