Commit Graph

1634 Commits

Author SHA1 Message Date
paul
3ceee496d6 tests: fail test tw9509: disable type section in generic interfaces
git-svn-id: trunk@16680 -
2011-01-02 10:51:51 +00:00
Jonas Maebe
d10f46ec59 * skip instructions containing a reference with a segment prefix (fixes
mantis #18113)

git-svn-id: trunk@16619 -
2010-12-23 15:24:29 +00:00
sergei
331a72c8d6 * ncnv.pas, insert_varargstypeconv(): Do not cast a string literal to AnsiString if it has been already casted to Wide/UnicodeString, resolves #18266.
git-svn-id: trunk@16593 -
2010-12-19 15:08:42 +00:00
sergei
49e3c30bd1 * Changed the test so it uses typecasting instead of calling the conversion helpers from VarUtils.
git-svn-id: trunk@16589 -
2010-12-18 18:43:40 +00:00
paul
54b5172286 compiler: fix compiler crash (bug #0018222)
- don't use source pointeddef for copied tpointerdef,tclassrefdef if pointteddef is a forward def because in this case when forward def will be resolved copied def will point to garbage
  - put copied def into list of defs awaiting resolve if it was copied from forward def
  + test

git-svn-id: trunk@16575 -
2010-12-17 07:50:47 +00:00
florian
34dc727f0b + test for last commit
git-svn-id: trunk@16497 -
2010-12-02 17:32:48 +00:00
paul
8b209be7e9 compiler: put static variables into unit level and not into parent class/object/record (fixes bug #0018131)
git-svn-id: trunk@16494 -
2010-12-02 05:56:13 +00:00
paul
ab4a5c74c1 compiler: allow TFoo.TBar types for object methods (bug #0018123)
git-svn-id: trunk@16493 -
2010-12-02 03:53:02 +00:00
paul
2155dadf5e compiler: push to the stack not only nested hierarchy but also class hierarchy for each nested entry both in method declaration and for method body, also push child hierarchy while parsing object members because in other case parent types are invisible for descendants (fixes mantis #0018124, mantis #0018127 and more) + extended test
git-svn-id: trunk@16491 -
2010-12-02 03:04:23 +00:00
paul
668cd1f3c0 compiler: change check for current in try_consume_unitsym - don't use current_unit in check because specialize code does not replace this variable (fixes bug #0015591)
git-svn-id: trunk@16489 -
2010-12-01 08:18:51 +00:00
paul
ba75daa50d compiler: change find_module_from_symtable to support not only unit symtables but also other symtables with valid moduleid (fixes bug #0016090)
git-svn-id: trunk@16487 -
2010-12-01 04:33:47 +00:00
paul
26032c3574 test: add { %norun } directive to tw12249
git-svn-id: trunk@16481 -
2010-11-30 08:14:31 +00:00
paul
433f18e60c compiler: resolve only current typeblock forward declarations when the type block is finished (fixes bug #0018086)
git-svn-id: trunk@16480 -
2010-11-30 00:02:06 +00:00
florian
d99081fa47 + additional test
git-svn-id: trunk@16478 -
2010-11-29 21:18:59 +00:00
florian
f570934b45 * patch by Aleksa Todorovic to fix generic interfaces, resolves #16100
git-svn-id: trunk@16477 -
2010-11-29 21:13:09 +00:00
Jonas Maebe
5cbe12c622 * don't overwrite the target value of interlockedcompareexchange*() if the
value is different from the comparand (patch by "FVI", mantis #18082)
  * sign extend the loaded value of interlockedcompareexchange() on PowerPC64,
    because the function arguments are longints

git-svn-id: trunk@16475 -
2010-11-29 12:53:10 +00:00
paul
0d57d38d7c compiler: fix visibility of inherited protected members (mantis #0018087) and strict private/protected members (mantis #0018085) to nested classes
git-svn-id: trunk@16473 -
2010-11-29 04:08:00 +00:00
florian
97ac6ab928 + test for #17184
git-svn-id: trunk@16470 -
2010-11-28 20:23:45 +00:00
florian
e4ecee317e * finer grained convert levels for strings, prefers widestring<->unicodestring over other conversions, resolves #18075
git-svn-id: trunk@16460 -
2010-11-28 10:05:09 +00:00
sergei
7dd93b1282 * Variant types: renamed varunicodestring to varustring and changed its value to $102 (for Delphi compatibility), introduced varUStrArg=$73, added some description comments.
* ncal.pas, translate_disp_call:
  * pass UnicodeString as varUStrArg
  * do not typecast ordinal consts to Integer, so typecasts in source (if any) are preserved.
+ test for correct passing of Dispatch method arguments, concludes work on Mantis #17904.

git-svn-id: trunk@16456 -
2010-11-27 16:17:43 +00:00
Jonas Maebe
edfb31c020 * when looking for overloaded conversion (assignment) operators, only ignore
those for variants. All defined operators are guaranteed to be valid by
    the code that checks them when they are defined (mantis #17846)

git-svn-id: trunk@16449 -
2010-11-26 15:37:31 +00:00
Jonas Maebe
11399b9b13 + test from mantis #16365, already works
git-svn-id: trunk@16447 -
2010-11-26 14:38:15 +00:00
paul
8aef216f21 compiler: allow nested objects to refence owner class in method arguments (issue #0017986)
git-svn-id: trunk@16440 -
2010-11-26 07:55:55 +00:00
paul
0c23029d8f compiler: add all nested classes to the symtable stack while parsing method header (issue #0017952)
git-svn-id: trunk@16439 -
2010-11-26 07:30:20 +00:00
Jonas Maebe
749991ec02 + support extra parameter for initialize() that indicates how many elements
should be initialised, similar to how this was already allowed for
    finalize() (mantis #17998)

git-svn-id: trunk@16407 -
2010-11-23 15:14:40 +00:00
Jonas Maebe
6eecf71698 * halt(1) on error
git-svn-id: trunk@16402 -
2010-11-22 13:36:58 +00:00
Jonas Maebe
44178f41b6 * don't overwrite register variables when evaluating <=/>= expressions with
smallsets (left is overwritten by an "and", so it cannot be const; mantis
    #18013)

git-svn-id: trunk@16400 -
2010-11-22 12:58:08 +00:00
Jonas Maebe
a5473c33cc * part of r16347, forgot to commit
git-svn-id: trunk@16367 -
2010-11-18 22:41:42 +00:00
paul
a8deeaa168 compiler: fix search of outer class type inside inner type declarations (bug #0017945)
git-svn-id: trunk@16352 -
2010-11-17 05:51:54 +00:00
paul
d99b4ae7c1 compiler: set moduleid for record symtables and descendants (fixes bug #0017950)
git-svn-id: trunk@16351 -
2010-11-17 02:40:41 +00:00
Jonas Maebe
c14574bb56 * don't change the fpu control word in the initialisation code of dynamic
libraries (mantis #16263, #16801)

git-svn-id: trunk@16347 -
2010-11-14 16:00:25 +00:00
Jonas Maebe
d36f8ac542 * fixed potential buffer overflow error when creating the fullprocname for
display purposes if there was a parameter with a default value > 255 chars
  * replace #0, #10 and #13 in the fullprocname with '.' so they do not cause
    line breaks or early string termination when writing them to the
    assembler file (mantis #17928)

git-svn-id: trunk@16344 -
2010-11-14 12:18:48 +00:00
Jonas Maebe
de51c4734c * fixed searching for the 8-character variant of already compiled
unit files (patch by Aleksa Todorovic, mantis #17907)

git-svn-id: trunk@16329 -
2010-11-12 12:10:41 +00:00
Jonas Maebe
dd88644237 * record the vmt_offset as the actual offset of the vmt field, so that
it correctly reflects the alignment of the object symtable (mantis
    #16034)

git-svn-id: trunk@16321 -
2010-11-10 15:58:47 +00:00
Jonas Maebe
d45ba6c966 * only ordinals and enums can be bitpacked -> don't give an error when
e.g. passing a 3-byte record in a bitpacked array as var-parameter
    (mantis #17862)

git-svn-id: trunk@16317 -
2010-11-08 21:23:55 +00:00
Jonas Maebe
d1264eeb3a * fixed optimized division of signed values by constant power of 2 if the
constant is > high(longint), because then it must be loaded into a register
    first since such values cannot be encoded directly in non-mov x86-64
    instructions (mantis #17836)

git-svn-id: trunk@16305 -
2010-11-05 15:32:07 +00:00
Jonas Maebe
ae483061b1 + add cthreads for unix platforms
git-svn-id: trunk@16299 -
2010-11-03 12:41:32 +00:00
Jonas Maebe
c4488f6b3a * hook up CompareUnicodeStringProc and CompareTextUnicodeStringProc in
cwstring (fixes webtbs/tw17591.pp on unix platforms)
  * enhanced webtbs/tw17591.pp so it also (superficially) checks the
    correctness of the called routines, and add cwstring for unix platforms

git-svn-id: trunk@16298 -
2010-11-03 12:16:20 +00:00
pierre
5c92c18bdf * Shorten check for go32v2 target
git-svn-id: trunk@16297 -
2010-11-02 11:24:41 +00:00
pierre
d3d15cbc51 + Also check IntToBin input
git-svn-id: trunk@16296 -
2010-11-02 11:24:10 +00:00
sergei
b002c36e8b + Test for #17591
git-svn-id: trunk@16294 -
2010-11-02 07:36:55 +00:00
sergei
d8eccf008d + Test for Mantis #17560
git-svn-id: trunk@16291 -
2010-11-01 22:38:15 +00:00
Jonas Maebe
3aea9b134a * make sure that all references used in the inline int->real conversion code
are properly PICified (mantis #17714)

git-svn-id: trunk@16255 -
2010-10-29 16:57:54 +00:00
tom_at_work
8a2696eb24 * limit the number of string message methods per class to 2^31 independent of architecture width: this avoids lots of compiler changes when allowing 2^63 (for 64 bit targets)
* fix string message method handling data structures to reflect this change, and also use the correct types for accessing them (longint vs. dword)
* output proper alignment code for string message method data structures to avoid issues on big-endian 64 bit architectures or architectures requiring proper alignment
* same for integer message methods; also, like string message method data structures, do not use packed records for them when accessing
* extend the test case (tw14145) do do multiple message dispatches, both integer and string ones, to complete successfully

git-svn-id: trunk@16254 -
2010-10-29 13:26:50 +00:00
Jonas Maebe
9ab050316e * all accesses that cannot be handled natively by the code generator have
to be handled as a bitpacked access, not just those whose size mod 8 <> 0
    (bug reported by Willibald Krenn on fpc-devel, and mantis #17715)

git-svn-id: trunk@16227 -
2010-10-26 17:17:28 +00:00
Jonas Maebe
14b95b3b9b * always force range checking for the upper and lower bounds of for-loops if
they are constants (instead of only on 32 bit systems), and always use the
    actual upper/lower bound of the loop variable instead of hardcoding the
    bounds of longint (mantis #17646)

git-svn-id: trunk@16213 -
2010-10-24 14:55:48 +00:00
Jonas Maebe
5e84c557fa * don't internalerror when a property is hidden by a method in a child class
(mantis #17675)

git-svn-id: trunk@16191 -
2010-10-20 14:12:58 +00:00
Jonas Maebe
dd8fd7cd4a * fixed loading the vmt of TP-style objects when it's not at offset zero
(for virtual procvars of object, mantis #17521)

git-svn-id: trunk@16190 -
2010-10-20 12:00:15 +00:00
joost
07bf44517c * Merged XPCom branch into trunk, added support for constref and changed
the IInterface implementation to be XPCom-compatible
--- Merging r15997 through r16179 into '.':
U    rtl/inc/variants.pp
U    rtl/inc/objpash.inc
U    rtl/inc/objpas.inc
U    rtl/objpas/classes/persist.inc
U    rtl/objpas/classes/compon.inc
U    rtl/objpas/classes/classesh.inc
A    tests/test/tconstref1.pp
A    tests/test/tconstref2.pp
A    tests/test/tconstref3.pp
U    tests/test/tinterface4.pp
A    tests/test/tconstref4.pp
U    tests/webtbs/tw10897.pp
U    tests/webtbs/tw4086.pp
U    tests/webtbs/tw15363.pp
U    tests/webtbs/tw2177.pp
U    tests/webtbs/tw16592.pp
U    tests/tbs/tb0546.pp
U    compiler/sparc/cpupara.pas
U    compiler/i386/cpupara.pas
U    compiler/pdecsub.pas
U    compiler/symdef.pas
U    compiler/powerpc/cpupara.pas
U    compiler/avr/cpupara.pas
U    compiler/browcol.pas
U    compiler/defcmp.pas
U    compiler/powerpc64/cpupara.pas
U    compiler/ncgrtti.pas
U    compiler/x86_64/cpupara.pas
U    compiler/opttail.pas
U    compiler/htypechk.pas
U    compiler/tokens.pas
U    compiler/objcutil.pas
U    compiler/ncal.pas
U    compiler/symtable.pas
U    compiler/symsym.pas
U    compiler/m68k/cpupara.pas
U    compiler/regvars.pas
U    compiler/arm/cpupara.pas
U    compiler/symconst.pas
U    compiler/mips/cpupara.pas
U    compiler/paramgr.pas
U    compiler/psub.pas
U    compiler/pdecvar.pas
U    compiler/dbgstabs.pas
U    compiler/options.pas
U    packages/fcl-fpcunit/src/testutils.pp

git-svn-id: trunk@16180 -
2010-10-17 20:58:22 +00:00
Jonas Maebe
a178ff5172 * fixed evaluation of length('') (the type of an empty string is a chararray
instead of string) (mantis #17604)

git-svn-id: trunk@16128 -
2010-10-11 15:00:20 +00:00