Commit Graph

2783 Commits

Author SHA1 Message Date
Jonas Maebe
462de0f5fd + AIX target definition and info for the compiler and ppudump
git-svn-id: trunk@20790 -
2012-04-11 18:00:29 +00:00
Jonas Maebe
8d8fc0fdee + RTL for AIX
git-svn-id: trunk@20786 -
2012-04-11 17:59:49 +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
joost
66b0f3d9fb * Added fpmake.pp files for utilities
git-svn-id: trunk@20752 -
2012-04-07 20:06:14 +00:00
joost
f0a75c1254 * Added fpmake.pp files for some utils
git-svn-id: trunk@20736 -
2012-04-06 22:47:03 +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
a06b2b4c02 + Initial implementation for openbsd x86_64 cpu specific rtl code
git-svn-id: trunk@20713 -
2012-04-05 21:01:47 +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
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
joost
b1cda73a9a * Replaced fpcmake building by fpmake building
git-svn-id: trunk@20612 -
2012-03-24 10:15:21 +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
joost
79c3ea3f87 * Added fpmake.pp file for fppkg-util
git-svn-id: trunk@20584 -
2012-03-22 21:10:28 +00:00
joost
df59758326 * Added new tool to generate fpmake.pp files from JSON-based configuration files
git-svn-id: trunk@20571 -
2012-03-22 13:42:30 +00:00
joost
0e0a5dee4f * TTemplateParser: Do not require a space between the tag name and the
ParamStartDelimiter. 
 * Allow parameters without any name, for example: {uppercase[-this-]}
 * Added simple tests for TTemplateParser

git-svn-id: trunk@20543 -
2012-03-20 16:13:14 +00:00
sergei
feb30b2e87 + Added test for RFC3896 compliance of ResolveRelativeUri().
git-svn-id: trunk@20542 -
2012-03-19 16:24:39 +00:00
marco
2d8dbeca54 * Merged Andrew Brunners and Lacak2's patches from Mantis #19736 that
implement mysql 5.5 header + sqldb connection support.

git-svn-id: trunk@20534 -
2012-03-17 17:17:40 +00:00
michael
5331e66a8d * Added ms-sql server connector by LaCak2
git-svn-id: trunk@20522 -
2012-03-16 08:36:12 +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
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
michael
c0807b4023 * Added readme
git-svn-id: trunk@20498 -
2012-03-10 17:17:39 +00:00
michael
aa45ca8e0e * First version of fpindexer engine
git-svn-id: trunk@20496 -
2012-03-10 16:04:12 +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
sergei
997538dd41 + fcl-xml, added unit xmlreader.pp (abstract base for streamed reading)
git-svn-id: trunk@20437 -
2012-02-27 11:02:34 +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
sergei
724227c962 * Cleaned out code marked as originated from glibc:
- strlen.inc: removed, was never actually used anywhere.
  - StrCopy: removed, its generic version is optimized well enough now.
  * StrComp: rewritten, speed somewhat improved.

git-svn-id: trunk@20349 -
2012-02-14 16:09:45 +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
pierre
f7d48d6a04 * i386 NetBSD compiled objects added using GCC 4.1.3
git-svn-id: trunk@20327 -
2012-02-12 19:06:01 +00:00
joost
2735e656b0 * Switched packages building from make/fpmake hybrid to fpmake building.
git-svn-id: trunk@20315 -
2012-02-11 17:55:26 +00:00
pierre
ed3284546a New file adapted from Darwin
git-svn-id: trunk@20297 -
2012-02-10 00:23:50 +00:00
paul
3b153c223a compiler:
- treat the defs equal when convert from rawbytstring to any ansistring type (delphi compatible)
  - set result of ansistring copy() function to the type of first argument for ansistring arguments and to ansistring for pchar and char array arguments (delphi compatible)
  + test

git-svn-id: trunk@20285 -
2012-02-09 08:22:38 +00:00
florian
806ae36100 * some mips rtl compilation issues fixed
git-svn-id: trunk@20277 -
2012-02-07 22:07:13 +00:00
pierre
30d9afe879 Add mipsel file including mips counterparts
git-svn-id: trunk@20256 -
2012-02-04 22:29:04 +00:00
florian
8b339ded7a * started to fix the mips(el) linux rtl
git-svn-id: trunk@20255 -
2012-02-04 21:25:53 +00:00
svenbarth
ef10ce3bd0 * pgenutil.pas, generate_specialization:
When parsing an inline specialization inside a generic we need to 
	respect the "parsedtype" parameter which tells us whether the first
	generic parameter was already parsed. This fixes Mantis #20871 .
+ added test for this

git-svn-id: trunk@20251 -
2012-02-04 16:26:47 +00:00
svenbarth
9cb16c950f This fixes Mantis #20851 .
For the solution symbols will now contain a "sp_explicitrename" flag if they
were created through a type rename. This is necessary, because we can't
decide whether a type is a renamed generic para which contains by default a
reference to the default undefined def. Using individual undefined defs will
lead to duplicate identifiers as they are created before a symtable was
pushed (thus they'll ba part of whatever symtable is at the top). 

+ symconst.pas, tsymoption:
        Add a new option "sp_explicitrename" which will be used to track type
        renames.
+ pdecl.pas, type_dec:
        Set the new flag if we're dealing with a type rename
* pexpr.pas, factor_read_id:
        If we have an undefined def that is also a rename then we assume that
        it's a rename of a generic parameter
* utils/ppudump.pp:
        Adjustment because of change to tsymoption
* utils/ppu.pp:
        Increase PPU version
+ added test

git-svn-id: trunk@20250 -
2012-02-04 16:03:58 +00:00
svenbarth
6204da6248 Add tests for Mantis 18103 which somehow is completely fixed now (not related
to my last commit though...).

git-svn-id: trunk@20248 -
2012-02-04 14:33:29 +00:00
svenbarth
04683c5f13 pgenutil.pas, generate_specialization:
- Remove unneeded check for "parse_generic" (it's already checked in the outer if-clause).
+ Check whether we are trying to specialize one of the surrounding type declarations of a
  nested type (as long as nested generics are forbidden this is always the outermost generic
  or specialization). This check can not rely on the symbol, because while parsing the
  generic or the specialization the symbol's def is still an errordef. This fixes 
  Mantis #19498 .

+ Added test from bug report.

git-svn-id: trunk@20247 -
2012-02-04 14:20:26 +00:00
svenbarth
c572395f61 * pgenutil.pas, generate_specialization & psub.pas, specialize_objectdefs:
When specializing a generic the references from unitsyms to the loaded modules
	needs to be reestablished, so that "unitidentifier.identifier" can be used
	inside a generic without leading to an access violation.
	Only global units are checked, because a generic must not use symbols from the
	static symtable or from units used by the implementation section (the latter is 
	currently not checked)

+ added tests for the above problem for "normal" units as well as units with a namespace 

git-svn-id: trunk@20245 -
2012-02-04 11:33:17 +00:00
pierre
a9c7e135ee Add MIPS GNU AS reader
git-svn-id: trunk@20222 -
2012-02-02 23:49:51 +00:00
pierre
6e81fe6abc + Add two new sotfpuu units with x80 or 128 bit support
git-svn-id: trunk@20204 -
2012-01-31 15:58:56 +00:00