Commit Graph

2234 Commits

Author SHA1 Message Date
paul
8bd5cef18b tests: add new for-in test from Michael Van Canneyt
git-svn-id: trunk@15954 -
2010-09-09 08:40:31 +00:00
Jonas Maebe
22b4860dd7 * getregisterinline() can be used to replace multiple size variants
of the same register (or of a register and its aliases) -> make
    sure that all relevant constraints are applied to it as well
    (mantis #16980)

git-svn-id: trunk@15952 -
2010-09-08 21:13:02 +00:00
Jonas Maebe
a311607ca6 * do not convert the second argument of inc/dec(ptrtype,value) into a
pointer, because that will force "value" to become unsigned, which
    result in errors in case of negative 64bit constants in case they
    are multiplied by the size of the pointed type in ncginl (the
    tconstexprint type operators have to handle positive and
    negative numbers differently) (mantis #17342)

git-svn-id: trunk@15951 -
2010-09-08 15:33:43 +00:00
michael
166ba412c9 * Test for formatfloat negative zero
git-svn-id: trunk@15946 -
2010-09-06 11:13:46 +00:00
pierre
973c23e12c * Fix for win64 GNU AS bug
git-svn-id: trunk@15939 -
2010-09-02 23:41:02 +00:00
sekelsenmat
18c8a1f9c0 Adds a lazarus project for fpvwritetest
git-svn-id: trunk@15931 -
2010-09-01 09:01:08 +00:00
Jonas Maebe
80086184d3 * mark values typecasted to regular array types and indexed as non-regable,
so that they aren't forced into a temporary location when passed to a
    var parameter later on (mantis #17283)

git-svn-id: trunk@15918 -
2010-08-29 17:19:58 +00:00
sekelsenmat
ef35ef0b0d Patches from Drigus, adds new wince units. bug #17096 and bug #17097
git-svn-id: trunk@15912 -
2010-08-27 14:31:13 +00:00
florian
ac51f535ae * support of data > 2 GB on x86_64-linux with PIC by picifing the startup code, resolves #17236
* fixed some small issues in the startup files

git-svn-id: trunk@15907 -
2010-08-25 19:43:29 +00:00
Jonas Maebe
821d0c5d26 * use fact that a method belongs to an objectsymtable to determine that
it is a method (_class is also set for nested procedures of methods),
    resolves problem reported in
    http://lists.freepascal.org/lists/fpc-pascal/2010-August/026259.html

git-svn-id: trunk@15898 -
2010-08-24 20:30:18 +00:00
Jonas Maebe
5ca1bd2a32 * if the unit of a procedure call is explicitly specified, limit the search
for (overloaded) procsyms to that unit (mantis #17220)

git-svn-id: trunk@15887 -
2010-08-23 20:51:40 +00:00
sekelsenmat
274856e2f5 Adds support for texts in the core of fpvectorial and adds a new example application for generating a set of documents from code
git-svn-id: trunk@15884 -
2010-08-23 15:26:54 +00:00
florian
3a07adf27e * reduce redundant temporary interfaces variables, resolves #14092
git-svn-id: trunk@15880 -
2010-08-23 11:56:17 +00:00
florian
700f687692 * nested open array constructors are not allowed, resolves #17213
git-svn-id: trunk@15876 -
2010-08-22 20:13:27 +00:00
nickysn
dabb5be491 * DrawPoly and FillPoly TP7 compatibility fixes
git-svn-id: trunk@15869 -
2010-08-21 21:18:23 +00:00
florian
deef8dfa33 * better error message in case of self-referencing generics specialization, resolves #17181
git-svn-id: trunk@15850 -
2010-08-19 08:00:57 +00:00
marco
e6277f6633 o commit patch from Mantis 17191:
* Patch with new linear based IPF writer
    * patch for Interfaces Overview in all Linear writers
    * patch with new Linear Writer specific parameter to control
      if linked documentation should be duplicated or not.
      new parameter is: --duplinkeddoc
      Default is that linked docs are not duplicated.
    * patch for fixing minor spelling mistakes in fpdoc
    * patch to not create a section Errors if there isn't actually
      any specific documentation for errors. makeskel generates error
      nodes but most don't have any items. This caused an Errors title
      in the docs, but with no content.
    * patch to fix SeeAlso section in Linear writer. It never output
      the custom text, but always the node link as text.
    * new features for linear writer that could be overridden in
      descendants.
      - marked some protected methods as virtual so it can be overridden
        in descendants for customization.
      - new section for listing Types found in a unit. Default does nothing,
        except in IPF writer.
      - new section for listing Variables found in a unit. Default does
        nothing, except in IPF writer.
      - new section for listing Constants found in a unit. Default does
        nothing, except in IPF writer.

git-svn-id: trunk@15849 -
2010-08-19 04:26:26 +00:00
ivost
db5e4028c4 * started with mysql 5.1 support (far from beeing finished! but core parts are working)
git-svn-id: trunk@15842 -
2010-08-18 14:07:05 +00:00
michael
4c7f9238c7 * SQL parser
git-svn-id: trunk@15832 -
2010-08-16 23:13:24 +00:00
Jonas Maebe
304a8f4db7 * only insert the current list of pc-relative data if it's not empty,
solves the problem whereby an empty list could sometimes be inserted
    after a jump table load (in case the jump table was larger than the
    maximally allowed offset, and if there was a skipinstr between the
    previous instruction and the jump table load) (mantis #17164)

git-svn-id: trunk@15831 -
2010-08-16 20:17:07 +00:00
Jonas Maebe
97f9157a7a * convert LOC_FLAGS/LOC_JUMP to cbool value in bool_to_bool conversion,
otherwise it stays 0/1 instead of becoming 0/-1 (mantis #17180)

git-svn-id: trunk@15830 -
2010-08-16 17:54:39 +00:00
sekelsenmat
d66b8c7068 Adds a Corel Draw file format explorer and starts implementing the CDR reader in fpvectorial
git-svn-id: trunk@15829 -
2010-08-16 15:00:54 +00:00
sekelsenmat
b7d466e8ab Renames the main fpvectorial example and adds a routine to detect the format from the extension.
git-svn-id: trunk@15826 -
2010-08-16 08:18:21 +00:00
marco
534fdb2e8c * Patch from Dmitry. imm + a dynloaded variant to be used for w9x. Mantis 17167
git-svn-id: trunk@15810 -
2010-08-14 14:59:04 +00:00
sekelsenmat
89593064f7 Starts code to add support to cdr and svg to fpvectorial
git-svn-id: trunk@15793 -
2010-08-13 08:24:27 +00:00
florian
9509437a96 * converted winspool.h from MingW and added it as winspool.pp, resolves #17174
git-svn-id: trunk@15766 -
2010-08-10 20:17:20 +00:00
florian
0085c22c59 - NaN floating point constants do not anymore cause an error when $Q or $R is active (resolves #16315 and #14757)
+ $ieeeerrors (command line switch -C3) to enable errors on NaN floating point constants
+ tests

git-svn-id: trunk@15765 -
2010-08-10 19:05:13 +00:00
Jonas Maebe
89be8d45e3 * use TrueBoolStrs/FalseBoolStrs for *StrToBool* (mantis #16848)
git-svn-id: trunk@15764 -
2010-08-10 13:06:22 +00:00
paul
38da67e08b tests: add hint directives test
git-svn-id: trunk@15760 -
2010-08-10 04:30:59 +00:00
joost
181804e4b9 * Fixed passing parameters on the stack to cdecl interface-methods. The 'call'
shifted all the parameters on the stack. Now the 'self' parameter is
   declared as var, not const, restoring its original value is not necessary
   anymore 

git-svn-id: trunk@15744 -
2010-08-08 13:27:54 +00:00
florian
683ac0ea45 * taking the address of an absolute var sym with constant address evaluates into a const. pointer, resolves #17118
git-svn-id: trunk@15723 -
2010-08-06 11:09:45 +00:00
florian
5d01b7b504 + tests for iso like goto
git-svn-id: trunk@15710 -
2010-08-05 19:16:09 +00:00
Jonas Maebe
57bd6d2685 + merged nestedprocvars branch
+ support for nested procedural variables:
    o activate using {$modeswitch nestedprocvars} (compatible with all
      regular syntax modes, enabled by default for MacPas mode)
    o activating this mode switch changes the way the frame pointer is
      passed to nested routines into the same way that Delphi uses (always
      passed via the stack, and if necessary removed from the stack by
      the caller) -- Todo: possibly also allow using this parameter
      passing convention without enabling nested procvars, maybe even
      by default in Delphi mode, see mantis #9432
    o both global and nested routines can be passed to/assigned to a
      nested procvar (and called via them). Note that converting global
      *procvars* to nested procvars is intentionally not supported, so
      that this functionality can also be implemented via compile-time
      generated trampolines if necessary (e.g. for LLVM or CIL backends
      as long as they don't support the aforementioned parameter passing
      convention)
    o a nested procvar can both be declared using a Mac/ISO Pascal style
      "inline" type declaration as a parameter type, or as a stand-alone
      type (in the latter case, add "is nested" at the end in analogy to
      "of object" for method pointers -- note that using variables of
      such a type is dangerous, because if you call them once the enclosing
      stack frame no longer exists on the stack, the results are
      undefined; this is however allowed for Metaware Pascal compatibility)

git-svn-id: trunk@15694 -
2010-08-02 22:20:36 +00:00
florian
85225d437e + additional goto test
git-svn-id: trunk@15689 -
2010-08-02 19:35:44 +00:00
florian
73d788ff96 + iso7195 unit
git-svn-id: trunk@15680 -
2010-07-31 20:42:52 +00:00
paul
c7de16cae1 tests: add type, var sections fail test
git-svn-id: trunk@15647 -
2010-07-27 02:42:54 +00:00
sergei
0f5795baaf XPath, use a perfect hash to recognize all possible keywords.
git-svn-id: trunk@15638 -
2010-07-26 13:49:46 +00:00
paul
8a47c5ec8e tests: class sections test by Martin
git-svn-id: trunk@15625 -
2010-07-23 09:00:00 +00:00
Jonas Maebe
e56f5d9462 + wavopenal example to play a wav file by Dmitry Boyarintsev (mantis #16961)
* only compile madopenal.pas for platforms for which the "mad" package
    gets compiled

git-svn-id: trunk@15610 -
2010-07-19 14:15:23 +00:00
Jonas Maebe
d7cdd9afba * allow tthread-based threads to only start executing once the constructor
has finished running (based on patch by Jared Davison, mantis #16884)

git-svn-id: trunk@15599 -
2010-07-18 16:31:25 +00:00
Jonas Maebe
b18a4617bb * fixed calling static TP-style object methods from within other methods
(mantis #16954)

git-svn-id: trunk@15598 -
2010-07-18 11:01:12 +00:00
Jonas Maebe
5b0962b735 * fixed misplaced bracket in condition test that caused all blocks
in libraries to be parsed as if they were the main module block,
    which in practice mainly mean that local variables with default
    values were never initialisation (mantis #16949)

git-svn-id: trunk@15596 -
2010-07-18 09:46:04 +00:00
florian
9affb070b8 * don't force OT_BITS32 on x86-64, resolves #16622
git-svn-id: trunk@15595 -
2010-07-17 20:57:06 +00:00
marco
eead32ac62 * unblock folded into chmls and deleted.
git-svn-id: trunk@15593 -
2010-07-17 11:52:58 +00:00
Jonas Maebe
a07bb94fcb * separate the finally block that dezals with cleaning up temps and the
except block that deals with exceptions raised inside the constructor
    (including afterconstruction), so that afterconstruction is always
    called after all temps have been finalised (necessary because in case
    of tinterfacedobject it decreases the reference count of the instance
    without every freeing the instance, so if that is done before a temp
    that also holds a refernce is finalised, the temp may wrongly free
    the instance (mantis #16592, #16592)

git-svn-id: trunk@15583 -
2010-07-15 19:25:40 +00:00
Jonas Maebe
bfc1a6ff1c + added support for intialising/finalising threads not started via the FPC
runtime

git-svn-id: trunk@15557 -
2010-07-12 16:16:50 +00:00
andrew
ab10e35fd5 * added basic reading for ms help 2 the successor to chm
git-svn-id: trunk@15548 -
2010-07-11 12:43:38 +00:00
Jonas Maebe
9273856e84 * disallow pusha*/popa* for x86_64 (mantis #14862)
* disallow pushfd/popfd for x86_64 (mantis #14862)
  * fixed assembling popfq with the internal assembler (it needs a rex.w
    prefisx, while pushfq doesn't)
  * changed the default opcode size of pushf/popf/pusha/popa in
    {$asmmode intel} from "native size" to 16 bit (compatible with Intel
    manuals and Kylix; in AT&T mode, the default size for those operations
    remains the native one)
  * changed pushf/popf in rtl/i386/* into pushfd/popfd because of the
    previous change

git-svn-id: trunk@15546 -
2010-07-10 16:22:46 +00:00
Jonas Maebe
26cc281390 * fixed real48 to double conversion for 0.0 (patch by "jeng", mantis #16863)
git-svn-id: trunk@15543 -
2010-07-10 12:15:13 +00:00
Jonas Maebe
d3976c858b * fixed 64 bit check for "movd xmmreg, mem" and "movd mem, xmmreg" (patch by
Jasper Neumann, mantis #13294)
  * moved "reg64, xmmreg" and "xmmreg, reg64" combo's from movd to movq
    (movd is always 32 bit)

git-svn-id: trunk@15538 -
2010-07-09 21:16:48 +00:00