Commit Graph

3542 Commits

Author SHA1 Message Date
Jonas Maebe
bf7c9361f6 * delay effect of {$calling x} until switches are flushed (mantis #12985)
git-svn-id: trunk@12932 -
2009-03-20 16:27:56 +00:00
Jonas Maebe
630aa5c493 * do not use voidtype for temporary parameter/result locations when
inlining, because that results in alignment settings of "0"
    (voidtype.savesize = 0 -> size2align(0) = 0), which is interpreted
    by the code generators as unaligned (and is actually even invalid
    nowadays). This caused errors on NDS when writing to memory mapped
    I/O devices (mantis #13343)

git-svn-id: trunk@12916 -
2009-03-18 22:25:06 +00:00
Jonas Maebe
3d739f7a80 * fixed test for non-i386 platforms after r12913
git-svn-id: trunk@12914 -
2009-03-18 20:05:15 +00:00
Jonas Maebe
9ab03e72f3 * mark class and interface parameters as pfAddress (further fix for
mantis #12038) + test

git-svn-id: trunk@12913 -
2009-03-17 20:37:11 +00:00
Jonas Maebe
d67dbcf030 * fixed UTF8ToUnicode() based on patch by JoshyFun, and also added
support for 4-character UTF-8 codepoints (mantis #11791)
  * fixed UnicodeToUtf8() based on patch by A. J. Miller (mantis
    #13075)

git-svn-id: trunk@12902 -
2009-03-15 15:47:39 +00:00
Jonas Maebe
f2ce99029b * fixed sets in rtti for big endian systems
* changed set sizes in rtti to 1 byte for Delphi compatibility
  * fixed tests/webtbs/tw12038 for the new set sizes
  * documented at http://wiki.freepascal.org/User_Changes_Trunk#Sets_in_RTTI_.28run-time_type_information.29

git-svn-id: trunk@12894 -
2009-03-15 12:06:30 +00:00
Jonas Maebe
2c94fca8e1 * disable debug info generation, because these tests require smart linking,
which is incompatible with smart linking on most platforms

git-svn-id: trunk@12893 -
2009-03-15 12:03:59 +00:00
Jonas Maebe
e4d52bb118 * use stdcall for the tested procvar definitions, so that the parameter
pushing order is the same on all platforms

git-svn-id: trunk@12890 -
2009-03-15 10:22:24 +00:00
Jonas Maebe
c26f9cc5df * set the RTTI type name of "open array" parameters to the name of the
elements of the array (like Kylix, mantis #12038) + test
  * add pfReference and pfArray TParamFlags for open array parameters
    like Kylix

git-svn-id: trunk@12888 -
2009-03-14 19:00:44 +00:00
Jonas Maebe
8d2f3946e0 * fixed TextToFloat() in case ThousandSeparator = DecimalSeparator, based
on patch by Bart Broersma (mantis #13307)

git-svn-id: trunk@12885 -
2009-03-14 15:20:46 +00:00
Jonas Maebe
2b69768afc + support for properties in DWARF2 where the accessor does not use a function
git-svn-id: trunk@12883 -
2009-03-14 11:12:46 +00:00
Jonas Maebe
b86cb8ba55 + interactive test for mantis #13313
git-svn-id: trunk@12882 -
2009-03-14 10:37:59 +00:00
Jonas Maebe
4f51aef122 + Support for debug info for absolute variables when using dwarf2.
Needs a fix in gdb when referencing a location relative to a
    global variable (an array element other than the first, a field
    other than the first) on Mac OS X and when using external debug
    info on Linux/Windows.

git-svn-id: trunk@12877 -
2009-03-13 21:16:06 +00:00
Jonas Maebe
c4bedeb9df * we have to be able to take the address of an "absolute" variable
expression (necessary to, a.o., reject absolute mappings to fields
    of bitpacked records and to bitpacked array elements)

git-svn-id: trunk@12874 -
2009-03-12 20:12:14 +00:00
Jonas Maebe
6165536b5e + added {$modeswitch objectivec1}/-Mobjectivec1 mode switch to enable
the use of Objective-C 1.0 constructs. Because it is a mode switch, it
    can be used cumulatively with every syntax mode. Note that a {$mode xxx}
    statement resets all mode switches as well, so you cannot use the
    -Mobjectivec1 variant if you have such a statement in a unit. This
    modeswitch is currently only enabled for Darwin/PowerPC and Darwin/i386,
    as the backend support is not yet implemented for other platforms.
  + implemented selector() statement that can be used to create an Objective-C
    selector for the message with the specified *constant* name (in the future,
    it will also work for Objective-C method identifiers)
  + added SEL type to the system unit (the selector() statement returns it)
  + added all Objective-C segments to the assembler writers
  + (currently mostly dummy) objc1 unit that is automatically included if the
    {$modeswitch objectivec1} statement is used
  + some tests for the selector() statement

git-svn-id: trunk@12870 -
2009-03-08 18:40:32 +00:00
Jonas Maebe
da461c5154 * fixed calling static class methods from inside other static class methods
git-svn-id: trunk@12866 -
2009-03-08 12:38:02 +00:00
florian
502c3f4ca4 + c linking test cases for i386-haiku by Olivier Coursiere
git-svn-id: trunk@12864 -
2009-03-08 11:55:41 +00:00
Jonas Maebe
55373cd1a9 * fixed tests for systems where the page size <> 4096
git-svn-id: trunk@12852 -
2009-03-02 16:10:07 +00:00
Jonas Maebe
0af39c77d9 * counterpart of r12844 for storing elements to a bitpacked array:
do not access any data after the array in that case either
  * adapted tparray7 so it checks this on unix platforms

git-svn-id: trunk@12851 -
2009-03-01 15:38:37 +00:00
Jonas Maebe
d24f232485 * when loading data from a bitpacked array, make sure we never load
anything from past the end of the array (it was discarded, but this
    can cause crashes if the array lies at the end of a memory block)
   -- todo: also for writing
  * adapted tparray13 so it checks this on unix platforms

git-svn-id: trunk@12844 -
2009-03-01 13:33:34 +00:00
florian
67d1604c49 * handle interface methods with cdecl modifier correctly, second and final part to resolve #10684
git-svn-id: trunk@12828 -
2009-02-28 20:28:33 +00:00
Jonas Maebe
4bf254bc32 * added .txt extensions to all README, TODO and COPYING files
(mantis #12358)

git-svn-id: trunk@12825 -
2009-02-28 17:34:08 +00:00
Jonas Maebe
042cbbc555 + test for mantis #11396 (already fixed in 2.2.2)
git-svn-id: trunk@12816 -
2009-02-28 10:45:27 +00:00
Jonas Maebe
f7003119d0 * fixed AddDisk() in sysutils and dos units, and fixed memory leaks
related to this functionality, based on analysis/patch by Michael
    Kamburelis (mantis #9985)

git-svn-id: trunk@12814 -
2009-02-27 22:02:24 +00:00
Jonas Maebe
5474004dcc * fixed calling inherited class methods from a regular method (mantis
#11825)

git-svn-id: trunk@12810 -
2009-02-27 17:05:41 +00:00
florian
694f563079 * fixed assembler tables for sse4 instructions, resolves #13186
git-svn-id: trunk@12787 -
2009-02-24 20:07:11 +00:00
Jonas Maebe
f1daa9fa73 + added support for streaming basic variant types (boolean, integer types,
floating point types, currency and string types), based on description
    by Anton Kavalenka at
    http://wiki.freepascal.org/FPC_Cleanroom#Variant_streaming_implementation
    and based on his test program (mantis #10482)

git-svn-id: trunk@12781 -
2009-02-23 21:32:12 +00:00
Jonas Maebe
4bb1d13d83 * fixed reading utf-8 strings from streams (based on patch by Anton
Kavalenka, mantis #13015)

git-svn-id: trunk@12777 -
2009-02-23 14:58:23 +00:00
joost
8d5463bfae * Added test for r12771
git-svn-id: trunk@12772 -
2009-02-22 15:32:27 +00:00
Jonas Maebe
3dd32daa03 * always create a temp for MacPas objects in with-expressions (mantis
#13210)

git-svn-id: trunk@12753 -
2009-02-19 22:43:59 +00:00
Vincent Snijders
9039afdead * fixed overflow when calculating frequencies
+ added lpi

git-svn-id: trunk@12749 -
2009-02-18 21:16:11 +00:00
Vincent Snijders
78d1b92d2f * updated to the current version from the shootout
git-svn-id: trunk@12748 -
2009-02-18 20:33:03 +00:00
Jonas Maebe
e58d8d6b92 * set maximum alignment of shortstrings to 2 in MacPas mode
(mantis #13187)

git-svn-id: trunk@12745 -
2009-02-16 18:57:26 +00:00
joost
a2f5f7400b * Replaces several direct references to FNSI.QName by the NodeName property, so
that descendent classes can override the NodeName properly
 * Fixed an AV when GetNodeName is called and there is no NodeName set
 * Removed the THtmlCustomElement.NodeName property and override the GetNodeName
   method instead. The hashtable of TDOMNode_NS is not used because
   THtmlCustomElement uses a faster lookupsystem for tag/node-names
 * Added a basic test for the htmlwriter unit

git-svn-id: trunk@12732 -
2009-02-09 21:43:09 +00:00
ivost
b3d611ab8f * extended test for bug #5800
git-svn-id: trunk@12728 -
2009-02-09 00:33:08 +00:00
ivost
cf7b755dc0 * additional negative testcase for interfaces
git-svn-id: trunk@12726 -
2009-02-08 23:10:43 +00:00
ivost
e9dd2694b2 * updated testcase for bug #5800
git-svn-id: trunk@12725 -
2009-02-08 21:25:00 +00:00
ivost
b2235eb873 * new negative test cases for interface to TGuid/Shortstring assign
git-svn-id: trunk@12724 -
2009-02-08 21:24:28 +00:00
Jonas Maebe
549f1ecc1b * when using overloaded functions in Delphi mode without the "overload"
directive, state that "overload" is missing rather than that
    overloading is disabled (mantis #10081)

git-svn-id: trunk@12723 -
2009-02-08 16:01:41 +00:00
Jonas Maebe
58456508f1 * renamed to correct bug number
git-svn-id: trunk@12722 -
2009-02-08 15:44:49 +00:00
Jonas Maebe
053493fbeb * fixed FahrenheitToCelsius() and CelsiusToFahrenheit() (mantis #13133)
git-svn-id: trunk@12721 -
2009-02-08 15:30:59 +00:00
Jonas Maebe
7d459cf12a * the compiler now explicitly keeps track of the minimally guaranteed
alignment for each memory reference (mantis #12137, and
    test/packages/fcl-registry/tregistry1.pp on sparc). This also
    enables better code generation for packed records in many cases.
  o several changes were made to the compiler to minimise the chances
    of accidentally forgetting to set the alignment of memory references
    in the future:
    - reference_reset*() now has an extra alignment parameter
    - location_reset() can now only be used for non LOC_(C)REFERENCE,
      use location_reset_ref() for those (split the tloc enum so the
      compiler can catch errors using range checking)

git-svn-id: trunk@12719 -
2009-02-08 13:00:24 +00:00
Jonas Maebe
95431c57f5 * fixed variantarrays for 64 bit systems after the changes in 2.2.0 to
turn variantarray indices into longints
  * extended tw9161 to also test storing and retrieving dynamic arrays
    in/from variant arrays

git-svn-id: trunk@12713 -
2009-02-08 00:24:03 +00:00
Jonas Maebe
b3aa2ab759 + new test which should fail but doesn't yet (it should not be possible to
use a char typecasted as a chararray with more than one element as an
    lvalue)

git-svn-id: trunk@12708 -
2009-02-07 22:20:47 +00:00
florian
d6ba5ab341 * another patch for seeking in compressed streams by Danny Milosavljevic, resolves #12830
git-svn-id: trunk@12705 -
2009-02-07 21:31:17 +00:00
florian
0c65d53f45 + added register keyword to Interlocked* definitions as suggested by Jonas, resolves #12255
git-svn-id: trunk@12698 -
2009-02-07 16:09:05 +00:00
Jonas Maebe
ae45a80d46 * allow the usage of symbolic constants to specify the "stored" attribute
of properties (mantis #10492). Not really clean (and Delphi supports
    full expressions, e.g. also "(const1=const2)"), but cannot do better
    without rewriting the complete symlist parsing to use parse trees instead
    of parser tokens as input

git-svn-id: trunk@12696 -
2009-02-06 19:54:29 +00:00
ivost
76694f6ec8 * added new test for interface to tguid or shortstring constants
git-svn-id: trunk@12693 -
2009-02-06 12:08:48 +00:00
Jonas Maebe
adaae268ae * don't perform fmShareDenyNone/fmShareExclusive check for unix, as it
cannot be implemented there

git-svn-id: trunk@12674 -
2009-02-03 13:33:47 +00:00
Jonas Maebe
8a0c16edb6 * fixed the placement of some fileclose() calls
git-svn-id: trunk@12673 -
2009-02-03 13:22:37 +00:00