Commit Graph

4601 Commits

Author SHA1 Message Date
florian
4c472a1569 * due to different result handling of integers and interfaces, GetInterfaceProp cannot use GetOrdProp, resolves #21684
git-svn-id: trunk@20857 -
2012-04-12 21:50:03 +00:00
Jonas Maebe
2174c6debc * fixed location of "end." in case "supported" is not defined
git-svn-id: trunk@20845 -
2012-04-11 18:06:53 +00:00
Jonas Maebe
347afa80fe * adapted so it also succeeds with the lnfogdb unit (gdb reports slightly
different line numbers: the line following the label, instead of the one
    preceding the label)

git-svn-id: trunk@20844 -
2012-04-11 18:06:48 +00:00
Jonas Maebe
07a65fed6b * adapted tests for aix (assembler code, -CN switch, library name suffix)
git-svn-id: trunk@20843 -
2012-04-11 18:06:43 +00:00
Jonas Maebe
64be3440d7 * fixed skiptarget directive
git-svn-id: trunk@20830 -
2012-04-11 18:05:40 +00:00
Jonas Maebe
131ed0c5a4 * use SharedSuffix for dynlib extension
git-svn-id: trunk@20823 -
2012-04-11 18:05:06 +00:00
Jonas Maebe
d68d9ba1a0 * don't pass -blibpath parameter for %needlibrary tests on AIX: the linker
doesn't recognise it (even though it's documented) and it's not needed

git-svn-id: trunk@20822 -
2012-04-11 18:05:02 +00:00
Jonas Maebe
51616b7bd6 * enabled a bunch of tests also for aix
git-svn-id: trunk@20821 -
2012-04-11 18:04:57 +00:00
Jonas Maebe
6f02f47e59 - disabled for AIX, doesn't support weak external symbols
git-svn-id: trunk@20819 -
2012-04-11 18:04:45 +00:00
Jonas Maebe
44bd889b9b * regenerated Makefiles with AIX support
git-svn-id: trunk@20812 -
2012-04-11 18:03:57 +00:00
Jonas Maebe
2b0472dce5 + aix/ppc32 support
git-svn-id: trunk@20807 -
2012-04-11 18:02:28 +00:00
Jonas Maebe
9efe09a827 + aix support for testsuite helper programs
git-svn-id: trunk@20806 -
2012-04-11 18:02:23 +00:00
pierre
ad2ec8c76d New OpenBSD-x86_64 C compiled objects
git-svn-id: trunk@20759 -
2012-04-08 17:47:48 +00:00
florian
dd70debe80 * records containing managed types are not "regable", resolves #21674
git-svn-id: trunk@20753 -
2012-04-07 20:19:48 +00:00
florian
7fe6c0d95d * handle currency constants correctly on non i386 platforms if they are given as integer constant, resolves #21091
git-svn-id: trunk@20734 -
2012-04-06 22:13:48 +00:00
florian
9fcff238f1 * create and push array def before the array range is parsed, this allows generic parameters to be used in the range definition, resolves #21592
git-svn-id: trunk@20725 -
2012-04-06 20:35:18 +00:00
pierre
2c4d8cc9d9 Add x86_64-openbsd target in Makefiles
git-svn-id: trunk@20723 -
2012-04-06 16:49:08 +00:00
pierre
c5f9b66e51 * Fix bug in DelOptions leading to infinite loop:(
git-svn-id: trunk@20721 -
2012-04-06 15:15:48 +00:00
pierre
c968fcbfaf * Fix PuTTY plink usage with -load option
git-svn-id: trunk@20703 -
2012-04-04 04:56:20 +00:00
florian
79a77ae7d6 + in_generic for testing if currently a generic declaration/definition is parsed/record
* omit several error messages when in_generic is true because the error can be checked only during specialisation, resolves the issue reported in #21592

git-svn-id: trunk@20699 -
2012-04-03 19:29:09 +00:00
pierre
2c941ec5d9 Recompile sparc-linux objects using gcc Debian 4.3.2-1.1
git-svn-id: trunk@20679 -
2012-03-30 21:13:00 +00:00
Jonas Maebe
e13f9b5a2b * only link libgcc for softfloat helpers on ARM if we are compiling for
softfloat

git-svn-id: trunk@20666 -
2012-03-29 20:54:56 +00:00
pierre
0658a6ee88 * Move + after objfpc to use ansistrings
git-svn-id: trunk@20644 -
2012-03-28 08:10:46 +00:00
pierre
fdf0c4a644 Use new target specific option to avoid disabling of debug information generation for windows DLL
git-svn-id: trunk@20641 -
2012-03-27 14:27:17 +00:00
pierre
88b00552a2 + Add support for target specific options
example:  %OPT=-gl win32%-WN
    if % is found in OPT list, the string after % is only added
    to the compiler options if current target is
    contained in the list of the string before the % sign.
  + Add %DELOPT dotest option.
    can be used in two variants
    %DELOPT=-Crio
    will suppress -Criot from TEST_OPT if it appears exactly
    (-Criot will not match).
    %DELOPT=-C* will suppress all options starting with -C.

git-svn-id: trunk@20640 -
2012-03-27 14:26:24 +00:00
pierre
0c144e8bbc Test fix for bug report 21566
git-svn-id: trunk@20636 -
2012-03-26 15:50:09 +00:00
Jonas Maebe
26754a3f9f * fully compare typenodes and rttinodes in their docompare() methods
(mantis #21551)

git-svn-id: trunk@20630 -
2012-03-25 16:52:34 +00:00
svenbarth
bd19a16be9 Add support for Default() intrinsic. For now this is only (fully) supported
in code and not in constants. In the case of primitive types constant nodes
are used while complex types like arrays, records and objects use a local
variable which is initialized to zero once at the entry of the method (the
variable is reused if Default() is used for the same type multiple times in
the same method). For this a new compilerproc was added which uses FillChar
to initialize the given memory area to zero.
This fixes Mantis #9420.

+ psystem.pas: Added Default symbol to system unit
+ htypechk.pas: Added function "is_valid_for_default" which checks recursively
                whether the given type can be used with Default at all. 
                Forbidden types are files, helpers, ObjC and C++ types. This
                check is used for records, arrays and objects only if the mode
                is a non-Delphi one, as Delphi ignores these types on lower
                levels.
+ msg/errore.msg: Added error message for unsupported types for Default()
+ symconst.pas: Added a new enum value vo_is_default_var which is used for the
                local variables utilized by Default() so their initalization
                and finalization can be avoided.
+ pexpr.pas: Add handling of Default() intrinsic to "statement_syssym"
+ ninl.pas: Extended tinlinenode by a method which returns the correct node for
            a Default() and used that method in handle_typecheck.
* ncgutil.pas: Check for new flag "vo_is_default_var" when initializing and
               finalizing local variables.
* ppu.pas: increase PPU version
+ psub.pas: 
  * Added a new routine which zeros defaultvars of a symtable.
  * Use this routine inside "initializevars".
  * Also use this routine to initialize the staticsymtable of the unit/program.
* Adjusted ppudump, because of the new enum value.
+ Added implementation of fpc_zeromem to system unit.
+ Added tests for Default()

git-svn-id: trunk@20629 -
2012-03-25 16:02:27 +00:00
florian
99b0421193 + patch by Seth Grover to support line number macro returning a numerical number, resolves #21372
git-svn-id: trunk@20608 -
2012-03-23 20:35:42 +00:00
florian
0f9b8c8936 * don't throw an error if a non-generic is tried to be specialized, resolves #21238
git-svn-id: trunk@20607 -
2012-03-23 20:32:40 +00:00
pierre
6fd24693d6 * Explicitly disable range/overlfow checks when test is not about this
git-svn-id: trunk@20602 -
2012-03-23 16:35:04 +00:00
pierre
f8dcacd69b *Explicitly disable range check to trigger the hint that is tested and no range check generated warning
git-svn-id: trunk@20601 -
2012-03-23 15:16:29 +00:00
pierre
5b10c0c403 Avoid random values and range/overflow checks
git-svn-id: trunk@20600 -
2012-03-23 15:15:21 +00:00
pierre
bcf9a2deb3 * Use $Q- which is the correct way to disable overflow checking
git-svn-id: trunk@20599 -
2012-03-23 15:09:03 +00:00
pierre
3abfc11ade Add explicit -CO- command line option in tests needing it
git-svn-id: trunk@20598 -
2012-03-23 14:45:34 +00:00
pierre
a2d6cba691 Add explicit O- option in tests needing it
git-svn-id: trunk@20597 -
2012-03-23 14:38:39 +00:00
sergei
feb30b2e87 + Added test for RFC3896 compliance of ResolveRelativeUri().
git-svn-id: trunk@20542 -
2012-03-19 16:24:39 +00:00
florian
fbc519faeb * don't allow multiple deprecated messages, resolves #21466
git-svn-id: trunk@20515 -
2012-03-12 21:39:43 +00:00
florian
e9c5458dd2 o patch by Nico Erfurth:
* Fix for InterLockedCompareExchange on ARMEL

InterLockedCompareExchange would not return the current data on failure.
Getting this to work correctly is a bit tricky. As kuser_cmpxchg does
not return the set value, we have to load it.
There is a tiny chance that we get rescheduled between calling
kuser_cmpxchg and loading the value. If the value changed in between
there is the possibility that we would return the Comperand without
having done an actual swap. Which might cause havoc and destruction.

So, if the exchange failed, compare the value and loop again in case
of CurrentValue == Comperand.

* Improve testing of InterLockedCompareExchange

Added a test to check for the case when Comperand is different from the
current value.

git-svn-id: trunk@20514 -
2012-03-11 21:08:57 +00:00
Jonas Maebe
5c56b1bc3d * give an error when trying to take address of a global label declared in
another scope instead of crashing (mantis #21078)

git-svn-id: trunk@20508 -
2012-03-10 23:24:43 +00:00
florian
6b94087dd4 * disable alglib tests on architectures without hardware fpu, they take too much time
git-svn-id: trunk@20492 -
2012-03-10 13:45:37 +00:00
Jonas Maebe
d1acb76df8 * don't replace "expr1 or expr1" or "expr1 and expr1" with just "expr1"
if expr1 has sideeffects. This can't be done safely even in case of
    short boolean evaluation, because expr1 may return the inverse the
    second time its called (and "0 or 1" is not the same as "0", and
    neither is "1 and 0"), based on comment by Michael Karcher
  * perform a full string compare when comparing stringconstnodes
    before the string constant labels have been generated (patch by
    Michael Karcher, mantis #21255)

git-svn-id: trunk@20485 -
2012-03-09 20:26:32 +00:00
Jonas Maebe
3ebdd64d75 * dereference pchar passed to indexbyte in strecopy (patch by Andrew Haines,
mantis #21443)

git-svn-id: trunk@20481 -
2012-03-08 18:55:49 +00:00
pierre
af66d92faf * Update complete i386-freebsd C objects with gcc 4.2.1 from FreeSBD 8.2 release
git-svn-id: trunk@20466 -
2012-03-03 10:45:04 +00:00
Jonas Maebe
473cbbd5a2 * only for darwin
git-svn-id: trunk@20431 -
2012-02-26 12:50:48 +00:00
Jonas Maebe
b9c54fab0d * fixed finding the real definition for formal Objective-C protocols
* fixed printed source code positions in error message in case the external
    name of a formal and of a real definition don't match

git-svn-id: trunk@20425 -
2012-02-25 11:52:35 +00:00
Jonas Maebe
bacdd8be81 * don't ever mark the function result as vs_initialised, also not when
it is passed as a hidden parameter (mantis #20907)

git-svn-id: trunk@20373 -
2012-02-17 16:25:50 +00:00
paul
357d644891 tests: fix test for systems where widestring=unicodestring
git-svn-id: trunk@20359 -
2012-02-16 00:57:46 +00:00
paul
2499b5514f compiler: change overload search for char constants (for delphi compatibility):
- for AnsiChar prefer ShortString, AnsiString, UnicodeString, WideString, ... (LongString?)
  - for WideChar prefer UnicodeString, WideString, AnsiString, ShortString, ... (LongString?)
  - remove old code from htypechk which made AnsiChar const = AnsiString,ShortString and WideChar const = WideString,UnicodeString - it is no longer needed since defcmp performs the required comparisons
  + test

git-svn-id: trunk@20348 -
2012-02-14 06:52:33 +00:00
svenbarth
2a872978dc Fix Mantis #21179
* defcmp.pas:
        + Extend compare_def_ext by the possiblity to specify whether strict or
          loose comparison of undefined defs should be applied.
          * in strict mode undefined defs are incompatible to all other defs
            except other undefined defs
          * in loose mode undefined defs are equal to anything (this is how
            FPC behaved up to now)
        + Enable the strict mode in compare_paras so that overloads with
          generic type parameters are possible
* ptype.pas, single_type:
        If the generic dummy of the currently parsed generic is encountered in
        non-Delphi modes then we need to return the current genericdef. This
        condition needs to be checked using the ObjName of the def, because
        the link from the type symbol to the current def is not yet 
        established 
+ added test for bug report

git-svn-id: trunk@20345 -
2012-02-13 21:17:54 +00:00