Commit Graph

2991 Commits

Author SHA1 Message Date
michael
264a013087 * Example from Reinier Olislagers to demo TFBAdmin component (bug 22012)
git-svn-id: trunk@21277 -
2012-05-12 12:19:45 +00:00
michael
3296858f44 * Added TFBAdmin component from Ludo Brands (bug 22012)
git-svn-id: trunk@21276 -
2012-05-12 12:15:56 +00:00
paul
62a91ef626 compiler: don't search symbol in other symtables than in found nested class, fix wrong test + add another one
git-svn-id: trunk@21275 -
2012-05-12 08:21:50 +00:00
paul
62b59235ca compiler: fix accessing typed constants inside class declaration (bug #21941)
git-svn-id: trunk@21273 -
2012-05-12 01:09:56 +00:00
svenbarth
4fc7515591 * pdecsub.pas, parse_proc_dec: always parse operator overload heads as block type bt_body so that operators like ">", "=>" or "<>" are resolved to the correct tokens ("<>" would be a sequence of "_LSHARPBRACKET _RSHARPBRACKET" instead of _NE otherwise). Fixes Mantis #21127
git-svn-id: trunk@21266 -
2012-05-09 12:32:34 +00:00
joost
e2d43a63b2 * Added Lazarus gui-frontend for db unit-tests.
git-svn-id: trunk@21253 -
2012-05-08 10:22:39 +00:00
svenbarth
5b1b194b47 * pdecvar.pas, read_record_fields: don't generate BSS-data for generic static fields (doesn't fix any specific bug, but we don't need space reserved for the field)
* pgenutil.pas, generate_specialization: fix a stupid "don't iterate upwards if deleting/extracting" mistake (twice!); this fixes Mantis #21550 and Mantis #21654 (tests added)

git-svn-id: trunk@21251 -
2012-05-08 07:31:37 +00:00
Jonas Maebe
50d2fa7134 * after changing a modeswitch, only change related module/localswitches that
depend on the modeswitch that was just changed (so that e.g. changing
    the nested procvars setting has no effect on the state of $h+/$h-)
    (mantis #21951)

git-svn-id: trunk@21247 -
2012-05-06 14:56:49 +00:00
florian
69ce5fa66b * patch by Max Nazhalov to improve real2str performance, resolves #21825
git-svn-id: trunk@21236 -
2012-05-05 18:29:32 +00:00
paul
5217b7011b tests: add test to check overload precedence for ShortString type passed to other string types
git-svn-id: trunk@21192 -
2012-05-02 08:45:54 +00:00
paul
548cdece84 tests: add test to check overload precedence for AnsiString type passed to other string types
git-svn-id: trunk@21191 -
2012-05-02 02:52:10 +00:00
paul
50ddd16619 tests: add string constant overload precedence tests when default string type is UnicodeString
git-svn-id: trunk@21190 -
2012-05-02 02:34:12 +00:00
Jonas Maebe
4ac396bd74 * and now the actual test object files...
git-svn-id: trunk@21108 -
2012-04-28 22:28:26 +00:00
Jonas Maebe
562b968b16 * now that copy() expressions are only translated into calls during the
first pass, we have to manually set the varstate of its parameters during
    the typecheck pass (mantis #21878)

git-svn-id: trunk@21106 -
2012-04-28 21:33:29 +00:00
sergei
c08ab0f745 * Re-raising exceptions must be allowed only in 'except' block itself, not in 'try' block of a nested try..except statement. Mantis #21873.
git-svn-id: trunk@21100 -
2012-04-28 15:59:34 +00:00
Jonas Maebe
e20639732f + cghlcpu unit with thlbasecgcpu class that overrides all abstract tcg
methods that don't have to be implemented by targets using the high
    level code generator, with dummy implementations that raise an internal
    error (to remove warnings about instantiating classes with abstract
    methods)
  * let the JVM tcg descendent derive from this new thlbasecgcpu class

git-svn-id: trunk@21098 -
2012-04-28 14:27:31 +00:00
Jonas Maebe
834026bfb5 * synchronised with trunk up to r21067
git-svn-id: branches/jvmbackend@21068 -
2012-04-26 21:24:20 +00:00
marco
743e58ed0f * test for bzip2 from Mantis #21261
git-svn-id: trunk@20977 -
2012-04-22 10:12:45 +00:00
florian
d681ad612b + several redirection include files for mipsel/mipsel-linux
git-svn-id: trunk@20956 -
2012-04-21 18:21:09 +00:00
joost
c16b79c1a6 Improved working with stand-alone TBufDataset:
* Added tests
 * Raise exception when trying to refresh data when there are updates
 * CreateDataset now also creates a dataset based on the fields when there
   are no fielddefs available.

git-svn-id: trunk@20940 -
2012-04-20 13:45:41 +00:00
pierre
8c047abb43 + New script to check constant entries against system headers
git-svn-id: trunk@20934 -
2012-04-19 14:56:32 +00:00
pierre
3f24548e58 + New script to check errnostr.inc entries
git-svn-id: trunk@20933 -
2012-04-19 14:55:57 +00:00
pierre
eb90a60afe New test for sysnr.inc system error numbers
git-svn-id: trunk@20914 -
2012-04-18 10:31:29 +00:00
pierre
75ca260090 Separate sparc specific system error numbers into new include file
git-svn-id: trunk@20912 -
2012-04-18 10:29:10 +00:00
pierre
b3f3e0d2a1 Move check_sys.sh to unix/scripts directory
git-svn-id: trunk@20911 -
2012-04-18 10:24:34 +00:00
pierre
11fe796ac3 Add script directory
git-svn-id: trunk@20910 -
2012-04-18 10:10:03 +00:00
Jonas Maebe
ac419e1cb4 + passthrough hlcgpu for AVR
git-svn-id: branches/jvmbackend@20898 -
2012-04-15 21:43:57 +00:00
Jonas Maebe
9c311fa6bb + test object files for AIX/PowerPC
git-svn-id: trunk@20888 -
2012-04-15 16:06:46 +00:00
Jonas Maebe
aee5380ae0 * merged trunk up to r20882
o support for the new codepage-aware ansistrings in the jvm branch
   o empty ansistrings are now always represented by a nil pointer rather than
     by an empty string, because an empty string also has a code page which
     can confuse code (although this will make ansistrings harder to use
     in Java code)
   o more string helpers code shared between the general and jvm rtl
   o support for indexbyte/word in the jvm rtl (warning: first parameter
     is an open array rather than an untyped parameter there, so
     indexchar(pcharvar^,10,0) will be equivalent to
     indexchar[pcharvar^],10,0) there, which is different from what is
     intended; changing it to an untyped parameter wouldn't help though)
   o default() support is not yet complete
   o calling fpcres is currently broken due to limitations in
     sysutils.executeprocess() regarding handling unix quoting and
     the compiler using the same command lines for scripts and directly
     calling external programs
   o compiling the Java compiler currently requires adding ALLOW_WARNINGS=1
     to the make command line

git-svn-id: branches/jvmbackend@20887 -
2012-04-15 15:54:10 +00:00
michael
fcb4bf4854 * Solved name conflict parser.inc is used in classes unit
git-svn-id: trunk@20880 -
2012-04-15 09:27:53 +00:00
sergei
18079355f5 * fcl-xml, going public with TXMLTextReader: moved most of the code from xmlread.pp to new unit xmltextreader.pp, auxiliary classes moved to xmlreader.pp.
git-svn-id: trunk@20868 -
2012-04-14 17:25:40 +00:00
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
247033cce1 + stabx support for AIX, which is a variant of stabs. Note that we only
support the stabx as understood by gdb, which is a mixture of regular
    stabs and stabx (e.g., class/object definitions are completely different
    in real stabx). This means that gdb can be used to debug aix programs,
    but the native dbx will complain about lots of debug information
    constructs

git-svn-id: trunk@20842 -
2012-04-11 18:06:38 +00:00
Jonas Maebe
adbad5ab96 + fcl-res support for xcoff/aix
+ compiler support for Delphi-style resources on aix

git-svn-id: trunk@20841 -
2012-04-11 18:06:33 +00:00
Jonas Maebe
1e9b92ee50 + AIX support for cwstring
o AIX-specific codepage names
   o AIX/ppc32 uses a 16 bit wchar_t
   o special support for handling cp866 on AIX: AIX only supports converting
     cp866 from/to ISO8859-5 -> always use that code page as an intermediate
     one on AIX (it's lossy, but better than completely failing)
  * in case the default system code page cannot be detected, fall back to
    UTF-8

git-svn-id: trunk@20839 -
2012-04-11 18:06:22 +00:00
Jonas Maebe
d545a72f1a + lnfogdb unit that can use gdb to symbolicate backtraces on unix targets
(used for stabx/aix)

git-svn-id: trunk@20833 -
2012-04-11 18:05:56 +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
8335223caf + aix support for pthreads package
git-svn-id: trunk@20810 -
2012-04-11 18:02:43 +00:00
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
Jonas Maebe
83235a483b * always return a LOC_JUMP from tjvmnotnode.second_boolean: required both
to correctly handle non-pasbool types (can't just "not" their value),
    and for Dalvik (a "not pasbool" became "xori 1", which turned the value
    from a boolean into an integer as far as the Dalvik type checker was
    concerned)

git-svn-id: branches/jvmbackend@20525 -
2012-03-16 17:23:55 +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
85ef5e109c + assert() support for the JVM target (currently ignores the Java classloader
assertionStatus setting)

git-svn-id: branches/jvmbackend@20388 -
2012-02-20 11:28:59 +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
pierre
dbeca48e3d + New mkia64reg.pp source
git-svn-id: trunk@20201 -
2012-01-31 15:47:31 +00:00
Jonas Maebe
1f83203117 * make self-pointer passed by reference not regable. Was not necessary
when we only had objects because they are never put in registers,
    but (advanced) records can be (mantis #21177)

git-svn-id: trunk@20192 -
2012-01-29 11:30:12 +00:00
Jonas Maebe
74e721517d * keep track of the type of symbolic floating point constants rather
than always forcing them to bestreal (mantis #21151)

git-svn-id: trunk@20190 -
2012-01-28 18:38:06 +00:00
svenbarth
a28a9a9521 * pdecobj.pas, object_dec:
Always define nested types of a generic as generic as well.
* symtable.pas: 
	+ Add a function which decides whether two defs belong to the same generic.
	* Fix sym_is_owned_by as there can be corner cases where childsym becomes Nil.
* ptype.pas:
	* record_dec: Always define nested types of a generic as generic as well.
	* single_type & read_named_type.expr_type:
		Use the newly added function to improve the checks whether a generic 
		symbol should be rejected as "generics not allowed for types of 
		variables or fields".
+ Add a test for which the improved checks are necessary.

git-svn-id: trunk@20189 -
2012-01-28 18:09:40 +00:00
Jonas Maebe
f984a3d74e - removed optimization that pops the current symtable off the symtablestack
if it cannot contain local type definitions before looking up the type of
    a field, because the type of a field may be a new type definition (e.g. an
    inline record definition) and such type definitions must be added to the
    correct symtable for, a.o., correctly resolving uses of the name of a
    type that is currently being parsed

git-svn-id: trunk@20187 -
2012-01-28 17:07:56 +00:00
joost
ff81a5018f * Template file for testing fpmake-building
git-svn-id: trunk@20185 -
2012-01-28 11:00:33 +00:00
florian
fc569e224d * handle all operand combinations of xadd, resolves #21146
git-svn-id: trunk@20177 -
2012-01-25 21:26:59 +00:00
paul
310c396cfc compiler: add owner hierarchy prefix for mangled name of parameter def to prevent asm symbols collision (issue #0020940)
git-svn-id: trunk@20163 -
2012-01-24 08:27:51 +00:00
paul
a71d588105 compiler: write INIT and RTTI info also for defs of nested records and classes + test (issue #0020909)
git-svn-id: trunk@20162 -
2012-01-24 06:57:04 +00:00
paul
d752ce2c11 compiler:
- postpone insertion of hidden params into record methods after the full record parse to prevent interface and implementation difference because of the possible record size change after the method parse (issue #0021044)
  - skip hidden arguments during methods search for a property setter because of the above change and also for consistency with getter method search
  - test

git-svn-id: trunk@20161 -
2012-01-24 01:45:31 +00:00
Tomas Hajny
b19d53a609 + new test for lineinfo functionality
git-svn-id: trunk@20152 -
2012-01-22 16:14:49 +00:00
svenbarth
7986f03186 * pgenutil.pas, generate_specialization:
* When building the typename for a generic use the full typename
	  including it's surrounding object- or abstractrecorddefs. This allows
	  that a nested non-generic type of a generic type A can be used as
	  type arguments for more than one specialization of another generic B
	  (there were some problems when B e.g. defined a pointer to the type
	  argument's type)

	* Always CRC the constructed specialization name as otherwise it might
	  reach the limit of 255 characters (not yet including unit name,
	  method name or method arguments)
	  Note: Errors like "expected XYZ, but got ABC" will need to be 
		adjusted to use the prettyname...

* increased PPU version
+ added test for above's point 1

git-svn-id: trunk@20149 -
2012-01-22 13:29:12 +00:00
Jonas Maebe
e5c097a6e2 * mark nodes that have been created by transforming a read-accessor of
of a property with nf_no_lvalue flag, and check that such nodes are
    never used in direct assignments (fixes mantis #21087 and a couple of
    other cases of invalid assignments to properties)

git-svn-id: trunk@20140 -
2012-01-21 19:09:30 +00:00
joost
8c4b24dc13 * Added fpmake.pp file for opengles
git-svn-id: trunk@20127 -
2012-01-20 17:09:07 +00:00
joost
4bb05b21ed * Converted fpmkunit and the packages it depends on to fpmake building.
Hash, paszlib, fcl-process and fpmkunit itself are build using
   fpmkunit_bootstrap. The fpmkunit-Makefile.fpc still contains dependencies
   on hash,paszlib and fcl-process because the packages depending on fpmkunit
   needs those. For fpmkunit itself those dependencies are ignored by directly
   setting the unit-search path to the rtl-unit search path.

git-svn-id: trunk@20115 -
2012-01-19 20:02:41 +00:00
Jonas Maebe
ceee186f2f * typecheck all array indices, not just integer and boolean types
o allows converting indices to the proper type if required (such as
     variant, mantis #20873)
   o do not create temporary defs for this type checking anymore if not
     necessary
   o makes sure that errors are thrown in case of conversions considered
     as invalid by the compiler rather than that wrong code is silently
     generated (such as in mantis #20873 before this change)

git-svn-id: trunk@20108 -
2012-01-18 21:29:44 +00:00
sergei
cbad0abab5 + Platform-specific exception support for x86_64-win64. Enable by cycling with OPT=-dTEST_WIN64_SEH.
git-svn-id: trunk@20098 -
2012-01-16 23:13:31 +00:00
joost
65d568ab6d * Added fpmake.pp for winceunits package
git-svn-id: trunk@20093 -
2012-01-16 17:09:14 +00:00
joost
68d9066200 * Changed more packages to fpmake building
git-svn-id: trunk@20089 -
2012-01-15 18:26:19 +00:00
florian
ce070c93fc + patch by Jeppe Johansen to support the SC32442B
git-svn-id: trunk@20081 -
2012-01-14 21:39:32 +00:00
joost
f1405b03fa * Converted more packages to fpmake building
git-svn-id: trunk@20068 -
2012-01-13 22:41:43 +00:00
Jonas Maebe
56161e608d * do not interpret procsyms followed by ./^/( as potential procvar
expressions in case of TP/Mac-style procvar modes (mantis #21073)

git-svn-id: trunk@20062 -
2012-01-12 21:37:59 +00:00
joost
c41f844f58 * More packages switched to fpmake building
git-svn-id: trunk@20056 -
2012-01-11 21:02:51 +00:00
Jonas Maebe
3b8ae840c1 * avoid range check errors when inlining not-nodes (mantis #21029)
git-svn-id: trunk@20046 -
2012-01-10 22:23:25 +00:00
joost
76ff540c2c * More packages converted to fpmake building
git-svn-id: trunk@20038 -
2012-01-10 16:31:07 +00:00
joost
8642d18921 * Added fppkg fpmake.pp file
git-svn-id: trunk@20029 -
2012-01-09 18:12:45 +00:00
michael
c9eb7540bf * Moved consoletestrunner from LCL to fcl
git-svn-id: trunk@20010 -
2012-01-08 15:30:07 +00:00
florian
e30ac89356 * moved test into the correct location and renamed
git-svn-id: trunk@20001 -
2012-01-07 21:56:23 +00:00
florian
7ec6201fb3 * mark label as used if address is taken
git-svn-id: trunk@20000 -
2012-01-07 21:53:21 +00:00
joost
0c87700084 * More packages switched to fpmake building
git-svn-id: trunk@19970 -
2012-01-05 16:29:36 +00:00
florian
4765728fc4 * use SarInt64 to optimize 64 bit divs on 32 bit platforms, resolves #20998
git-svn-id: trunk@19968 -
2012-01-04 22:58:25 +00:00
joost
bbe579131b * More packages switched to fpmake building
git-svn-id: trunk@19957 -
2012-01-03 14:29:12 +00:00
sergei
b1cbf30a94 * Managed types passed to out formal parameters must be completely cleaned (decrementing refcount is not enough) at caller side, because callee side doesn't know their actual type and cannot initialize them. Resolves #20962.
git-svn-id: trunk@19956 -
2012-01-03 09:07:08 +00:00
sergei
f8e921e478 * Fixed code generation for constructors compiled in {$implicitexeptions off} state, or having no implicit finally frame. Exit label and finalization code have to be placed before call to AfterConstruction, so exit statements do not jump over AfterConstruction, and overall control flow is the same as in default {$implicitexceptions on} state.
* A second attempt to remove unconditional pi_needs_implicit_finally from constructors, should hopefully be correct this time due to the changes described above.
+ Test (a copy of tctr1.pp with additional {$implicitexceptions off} directive)

git-svn-id: trunk@19955 -
2012-01-02 20:07:24 +00:00
svenbarth
17a276aabc * compiler\pdecl.pas:
in "array_dec" and "procvar_dec" "parse_generic" needs to be true if the currently
      parsed declaration (array or procvar) is declared inside a generic, because only then
      specializations of other types (it does not matter whether they are inline or in a type
      section of the current generic) are parsed correctly (this fixes Mantis #20577 and
      Mantis #20955 )
+ add tests for the mentioned bug reports (testing only the array case) (tests\webtbs) and
  tests for the procvar case (tests\test)

git-svn-id: trunk@19953 -
2012-01-02 16:02:51 +00:00
sergei
66ec137f09 * Partially reverted r19668. It turns out that the implicit finally block in constructors, besides its intended purpose, provides correct position of the exit label (more precisely, it relocates exit label to the start of 'finally' part without subsequent restoring it to original value). Optimizing it away causes exit statements in constructors to jump over AfterConstruction call.
+ Test to prevent it from happening again.

git-svn-id: trunk@19948 -
2012-01-02 09:43:43 +00:00
michael
51953c459c * Added eventsink unit from Ludo Brands (bug 20991)
git-svn-id: trunk@19934 -
2011-12-31 15:25:47 +00:00
Legolas
659b386f02 + Added Easy gl2d library for Nintendo DS and 6 new examples
* libndsfpc: Fixed glMaterialShinyness()

git-svn-id: trunk@19932 -
2011-12-31 14:14:12 +00:00
florian
c4a5499d2a * handle flag to reg./ref. conversion correctly for boolean64
git-svn-id: trunk@19914 -
2011-12-29 17:28:35 +00:00
florian
a59a37dddd * handle assignments of qword bools with LOC_FLAGS correctly, resolves #20874
git-svn-id: trunk@19912 -
2011-12-29 16:48:46 +00:00
florian
61eb25ea30 * qwordbool is obviously a 64 bit type, resolves #20889
git-svn-id: trunk@19911 -
2011-12-29 16:46:50 +00:00
michael
48b314928b * importtl (type library import program) from Ludo Brands (bug 20958)
git-svn-id: trunk@19888 -
2011-12-26 16:37:38 +00:00
michael
4c8800c253 * StdOle2 and typelib added from Ludo Brands (bug 20958)
git-svn-id: trunk@19887 -
2011-12-26 16:31:35 +00:00
sekelsenmat
4785b5637f Adds initial Xft and fontconfig headers
git-svn-id: trunk@19879 -
2011-12-21 14:51:42 +00:00
Legolas
0f050b97b7 + Added maxmod library for GBA
* Fixed makefile for cleaning examples
 * Fixed SimpleBGScroll example compilation

git-svn-id: trunk@19871 -
2011-12-18 11:35:30 +00:00
sergei
cd347e40b2 * Moved existing exception-related definitions into separate include file seh64.inc, and added some more WinAPI definitions needed for SEH.
git-svn-id: trunk@19869 -
2011-12-18 01:15:31 +00:00
Jonas Maebe
40a9762ac6 * objcprotocol symbols have to be weak in the non-fragile abi to prevent
conflicts in case a protocol is adopted by classes in multiple object
    files part of the same binary (mantis #20875)

git-svn-id: trunk@19865 -
2011-12-17 12:43:42 +00:00
Jonas Maebe
22dd93858d * don't try to write rtti for fields in Pascal records/classes/objects/...
whose type is an objc type (objcclass, objcprotocol): they only need
    objc-style rtti, which is generated elsewhere (and to prevent bugs
    they give an internal error if we try to generate FPC-style rtti for
    them) (mantis #20876)

git-svn-id: trunk@19861 -
2011-12-17 11:43:13 +00:00
michael
9135ece182 * Example for JSON dataset
git-svn-id: trunk@19857 -
2011-12-16 16:31:13 +00:00
michael
d58859af47 * Renamed to fpjsondataset, in line with other FPC units
git-svn-id: trunk@19854 -
2011-12-16 16:21:36 +00:00
michael
23c969a962 * Initial implementation of JSON dataset
git-svn-id: trunk@19853 -
2011-12-16 16:20:13 +00:00
pierre
243687b6d4 Remove platform.inc
git-svn-id: trunk@19839 -
2011-12-13 13:34:47 +00:00
Jonas Maebe
0d5b2b84a8 + Android/JVM target, including a translation of the Android r14 SDK
(= Android 4.0) java headers: java.*, javax.*, org.*, junit.*, android.*).
    The RTL can also be used to target earlier versions of the Android
    platform, but you manually have to take care of not using APIs that
    weren't available yet. Adding separate units for separate platform
    versions would only partly solve the problem, because some of the
    classes used inside the system unit have also changed across
    versions.

    Use -Tandroid while compiling to select the Android OS as target
    platform.

git-svn-id: branches/jvmbackend@19830 -
2011-12-12 02:34:34 +00:00
Jonas Maebe
0e65d01274 * renamed java-specific compproc.inc to jcompproc.inc to prevent timestamp
conflicts when the compiler finds inc/compproc.inc while compiling other
   units later on

git-svn-id: branches/jvmbackend@19828 -
2011-12-12 02:34:04 +00:00
Jonas Maebe
f4f70f99b2 * call all operators with invokestatic, since they are always
class methods

git-svn-id: branches/jvmbackend@19823 -
2011-12-11 17:25:42 +00:00
Jonas Maebe
21e6401921 * no longer encode all pointers to other pointer types (such as
classes, interfaces, dynamic arrays, ...) as "array of JLObject",
    but instead as an array of the actual pointed-to type. The reason
    for the previous behaviour was mainly that the JVM threadvar
    implementation internally stores all threadvars that are
    such double pointer types into an "array of JLObject". Type casting
    this array to e.g. an "array of array of byte" causes an exception
    even if it only contains "array of byte" instances (since the outer
    array type is different). This is now solved by first taking the
    element of the array and then typecasting it to the destination
    type (so dynarrbyte(arr[0]) instead of pdynarrbyte(arr)^[0]).

    The reason for the new (more accurate) behaviour is because the
    old one caused type errors in case a double pointer field was
    internally created for the nestedfpstruct support (see added
    test)

git-svn-id: branches/jvmbackend@19821 -
2011-12-11 17:25:09 +00:00
sergei
4208269221 + Test case for bug #20827. The issue itself was fixed in r19668.
git-svn-id: trunk@19820 -
2011-12-11 17:00:26 +00:00
svenbarth
fca525a85b When checking whether the current specialization was already done before we also need to check the globalsymtable if we're currently in the implementation section. Otherwise the specialization will be generated twice and will result in a "duplicate identifier" error. This fixes mantis #20872 .
git-svn-id: trunk@19818 -
2011-12-11 16:03:55 +00:00
svenbarth
5ffba57b51 Add tests for resolved generic bug reports.
Also adjusted test for report 20836 (removed unneeded units and the {$R ...} directive completely and added a "%NORUN" modifier).

git-svn-id: trunk@19817 -
2011-12-11 15:49:22 +00:00
michael
aa625a23e6 * Unit Tests for scanner
git-svn-id: trunk@19798 -
2011-12-10 14:20:55 +00:00