Commit Graph

11481 Commits

Author SHA1 Message Date
Jonas Maebe
3c9e1742dd * fixed calling inherited methods in Objective-C + test
git-svn-id: branches/objc@13686 -
2009-09-09 22:27:39 +00:00
Jonas Maebe
203609d09d * obj-c classrefdefs and id/pobjc_class are assignment-compatible
(a class type is also a class instance in obj-c, and id is
     assignment-compatible with all instance types)

git-svn-id: branches/objc@13685 -
2009-09-09 22:24:12 +00:00
Jonas Maebe
356ad9893a * define rtti mangled names for obj-c classes and metaclasses
(mainly for use in the future to optimize inherited calls)

git-svn-id: branches/objc@13684 -
2009-09-09 22:22:26 +00:00
Jonas Maebe
e0b7e8aa55 * made internalerror unique
git-svn-id: branches/objc@13683 -
2009-09-09 09:30:52 +00:00
joost
2f7875fb12 * Place stride in subrange-entry of array
git-svn-id: trunk@13680 -
2009-09-08 17:00:55 +00:00
Jonas Maebe
e393446769 * fixed several omissions that could cause the dynamic linker not to
register required classes:
    + add lazy references to classes referred to in the current unit
    + define reference symbols for classes defined in the current unit
    + add lazy references to parent classes of classes defined in the current
      unit

git-svn-id: branches/objc@13679 -
2009-09-08 16:05:41 +00:00
Jonas Maebe
1705a1e5b8 * fixed memory leak after previous change
git-svn-id: branches/objc@13671 -
2009-09-07 19:05:48 +00:00
Jonas Maebe
ab8e119c3e * use separate pools for obj-c strings and string references
git-svn-id: branches/objc@13670 -
2009-09-07 19:01:50 +00:00
Jonas Maebe
d56a936520 * forgot to commit error message from r13668
git-svn-id: branches/objc@13669 -
2009-09-07 18:30:57 +00:00
Jonas Maebe
bcfcf30e04 * give an error if the number of formal parameters of an obj-c method
does not match the number of colons in the message name

git-svn-id: branches/objc@13668 -
2009-09-07 18:07:25 +00:00
Jonas Maebe
e8216ff397 * changed error about unsupported -Xr option into a warning, because the
Makefiles automatically pass it when cross compiling (mantis #14527)

git-svn-id: trunk@13665 -
2009-09-06 18:50:11 +00:00
Legolas
00a3dae729 * Enabled -Xm switch for NDS and GBA and switched from abi_default to abi_eabi
* Fixed NDS libfat linking

git-svn-id: trunk@13664 -
2009-09-06 18:47:22 +00:00
Jonas Maebe
fc40e1fe5b + support for implementing Objective-C classes in Pascal,
based on patch by Dmitry Boyarintsev (mantis #14508)
   o Todo: while parsing the class declaration, check whether the
       field types are valid for use in an obj-c class
  * use a common pool for selector names generated by objcselector()
    and by the rtti info for implemented classes

git-svn-id: branches/objc@13663 -
2009-09-06 18:35:48 +00:00
Jonas Maebe
1048ac96d5 * skip hidden function result parameters when generating message signatures
git-svn-id: branches/objc@13662 -
2009-09-06 17:18:49 +00:00
Jonas Maebe
27385550f8 * use the (sorted) paras rather than the (unsorted) parasymtable when
generating method signatures

git-svn-id: branches/objc@13661 -
2009-09-06 17:15:00 +00:00
Jonas Maebe
9da0729d7c * fixed copy/paste error in r13645: fallback to /usr/lib/dylib1.o rather
than /usr/lib/bundle1.o when dylib1.o is not found

git-svn-id: trunk@13658 -
2009-09-06 09:38:19 +00:00
Jonas Maebe
8eb3a34633 * increased length of GCSectionsStr so it can contain the full new
smart linking string for Darwin
  * removed another -no_dead_strip_inits_and_terms that was hardcoded in all
    situations

git-svn-id: trunk@13657 -
2009-09-06 09:35:03 +00:00
Jonas Maebe
ac1b340755 * quote the mangled name of ObjC methods, because the +/- otherwise
confuse the assembler (patch by Dmitry Boyarintsev, from mantis
    #14508)
  * use objextname and not objrealname in the method name (extname is
    the class/protocol/category name as it appears/will appear to the
    ObjC runtime)

git-svn-id: branches/objc@13655 -
2009-09-05 21:33:58 +00:00
Jonas Maebe
64af998435 * correct type of _cmd parameter for ObjC methods (is objc_id, not
voidpointer) (patch by Dmitry Boyarintsev, part of mantis #14508)

git-svn-id: branches/objc@13654 -
2009-09-05 21:03:55 +00:00
Jonas Maebe
1503890756 * don't always pass -no_dead_strip_inits_and_terms, because it automatically
turns on dead code stripping (smart linking). Do specify it when smart
    linking is enabled though.

git-svn-id: trunk@13653 -
2009-09-05 20:19:12 +00:00
Jonas Maebe
eb84d329d4 * fixed incompatibility of resource strings with the data reordering done by
the Mac OS X 10.6 linker

git-svn-id: trunk@13650 -
2009-09-05 14:40:27 +00:00
Jonas Maebe
621ebe240e * fixed another case where safecall was not ignored for targets<>windows
git-svn-id: trunk@13647 -
2009-09-05 12:53:42 +00:00
marco
32c6253c07 * Last commit broke helpfile/doc compilation. Items should be within description,
not after.

git-svn-id: trunk@13646 -
2009-09-05 12:12:31 +00:00
Jonas Maebe
6d0eda6e4a * used ld directly rather than libtool to link dynamic libraries, because
libtool from Xcode 3.2 (Mac OS X 10.6) does not support all new linker
    options (in particular -no_order_inits and -no_order_data, both of
    which must be specified when compiling dynamic libraries with FPC and
    Xcode 3.2)

git-svn-id: trunk@13645 -
2009-09-05 10:30:11 +00:00
florian
cf215d5097 o patch by Michael V. Denisenko to handle case <string> of (see also #13700)
+ compiler implementation
  + tests

git-svn-id: trunk@13642 -
2009-09-03 20:21:30 +00:00
Jonas Maebe
ab3294dce2 * fixed handling of "type x = y" for objcclass/objcprotocol
* don't allow "type x = type y" for objcclass/objcprotocol for now
    (would require generating new rtti for the new name)

git-svn-id: branches/objc@13641 -
2009-09-03 19:42:37 +00:00
Jonas Maebe
eb12fdb617 * give an error for -Xr on platforms where this parameter is ignored
git-svn-id: trunk@13640 -
2009-09-03 12:48:06 +00:00
Jonas Maebe
1f1396596e * don't insert vmt for objcprotocols either
git-svn-id: branches/objc@13639 -
2009-09-03 11:12:57 +00:00
Jonas Maebe
970fc43aa5 * fixed support for forward-declared objcprotocols
+ test (also for warning about missing constructor)

git-svn-id: branches/objc@13633 -
2009-09-01 13:55:14 +00:00
Jonas Maebe
f586299b6a * don't warn that a constructor is necessary for objc classes/protocols
(since they can't have a constructor)

git-svn-id: branches/objc@13632 -
2009-09-01 13:54:12 +00:00
Jonas Maebe
744d20d086 * allow "array of const" parameters again for objcclass/objcprotocol methods
after merge of r13618 from trunk
  * also allow "varargs" for objclass/objcprotocol methods
  * set the cdecl calling convention for objcclass/objcprotocol methods in
    handle_calling_convention() rather than in a separate routine in
    pdecobj (and do the same for cppclass methods)
  * check that array of const parameters and varargs are only used with
    external objc-methods (can only be done after the class is parsed,
    because earlier on it's not known yet whether or not it is external)

git-svn-id: branches/objc@13624 -
2009-08-30 11:02:28 +00:00
Jonas Maebe
5082e23d57 Merged revisions 13599-13600,13602-13604,13608,13615-13618 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk

git-svn-id: branches/objc@13621 -
2009-08-30 09:50:36 +00:00
Jonas Maebe
b15fb4afb5 * renamed hidden selector parameter to Objective-C methods from msgsel to
_cmd for naming consistency with the Objective-C runtime (no effects
    on existing code)

git-svn-id: branches/objc@13620 -
2009-08-30 09:34:45 +00:00
Jonas Maebe
b3737214b0 * use paraloc info to obtain parameter size (instead of (re)calulcating it
from the def)
  + added (disabled) code to correctly calculate the parameter offsets for
    ppc, see comments why it's not activated

git-svn-id: branches/objc@13619 -
2009-08-30 09:30:59 +00:00
Jonas Maebe
ceb547d027 * only allow cdecl "array of const" parameters for procvars and for external
routines (just like "varargs"), because if implemented in Pascal then
    on the callee side this array of const parameter is treated as a Pascal-
    style array of const
  * don't give the "cdecl'ared functions have no high parameter" warning for
    array of const parameters for cdecl external routines and procvars

git-svn-id: trunk@13618 -
2009-08-30 08:52:38 +00:00
florian
e8dff46f8e * several small bugs in the handling of implements fixed, resolves #14418
git-svn-id: trunk@13615 -
2009-08-30 08:01:10 +00:00
Jonas Maebe
ec8364904c * set the size of the (invalid) page at address zero to 64kb for 32 bit
Darwin platforms, so that no data can be placed below that address.
    This fixes the strange Windows-compatible resource API, which
    assumes that addresses <64kb do not exist.

git-svn-id: trunk@13600 -
2009-08-26 21:18:53 +00:00
Jonas Maebe
a149674a75 Merged revisions 13458-13596 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk

git-svn-id: branches/objc@13598 -
2009-08-25 19:47:36 +00:00
Jonas Maebe
8def2c2ac3 * fixed compilation after introduction of strict class type checking
for var/out parameters

git-svn-id: branches/objc@13597 -
2009-08-25 19:43:45 +00:00
Jonas Maebe
106c0673c0 * allow passing records to C varargs (also allowed by C)
git-svn-id: trunk@13595 -
2009-08-25 19:04:34 +00:00
Jonas Maebe
666f345df4 * allow objcclasstype.classmethod()
git-svn-id: branches/objc@13591 -
2009-08-25 18:26:06 +00:00
Jonas Maebe
84cefb5eba * fixed dynamic linking of programs that only link with libc after r13584
git-svn-id: trunk@13587 -
2009-08-23 16:05:59 +00:00
Jonas Maebe
9a84dee059 * fixed static linking under Linux for ppc64; test still crashes under
linux/i386 and linux/x86_64 (but at least it links now, mantis #14265)

git-svn-id: trunk@13584 -
2009-08-23 11:53:00 +00:00
Jonas Maebe
c2c68ddb8f - removed FPC_NEW_BIGENDIAN_SETS define and if(n)defs
* left old cpu-specific set helper code under ifdef FPC_OLD_BIGENDIAN_SETS
    in case someone wants to write new assembler set helpers (although most
    of them should be optimally generated by the compiler already if
    http://wiki.freepascal.org/FPC_HowToDo#Bit.28field.29_getting.2Fsetting_primitives
    are optimally implemented)

git-svn-id: trunk@13582 -
2009-08-23 08:16:40 +00:00
Jonas Maebe
0eec337a00 - removed SUPPORT_UNALIGNED, FPC_SUPPORTS_UNALIGNED and FPC_UNALIGNED_FIXED
defines and ifdefs (already all defined by 2.2.4)

git-svn-id: trunk@13581 -
2009-08-23 07:51:26 +00:00
Jonas Maebe
a64c5a7b23 * fixed bug that sporadically caused the column of certain nodes to
change, resulting in slightly different DWARF debug information
    (mantis #13508)

    The cause was saving a node pointer in a local variable, processing
    it further, and later on checking whether it changed by comparing
    the stored and the current instance pointer. The problem was that
    the node could have been freed and reallocated at the same address
    (but with different contents), so this check sometimes resulted
    in (hard to reproduce) false negatives.

git-svn-id: trunk@13580 -
2009-08-22 22:15:27 +00:00
Jonas Maebe
2f7457f37e * set the fileinfo of typeconversions created using inserttypeconv*()
to that of the left node
  * same for a typeconversion inserted in the typecheck pass of
    taddrnode

git-svn-id: trunk@13579 -
2009-08-22 22:11:03 +00:00
Jonas Maebe
1f5d9b932f * various fixes for fully setting/restoring the token position, seems to
fix the random garbage before the initial "const" of msgidx.inc in
    verbose.s when compiling with -al

git-svn-id: trunk@13578 -
2009-08-22 22:09:17 +00:00
Jonas Maebe
acdb0bbb3e * don't change current_filepos in pass_typecheck when not generating
errornodes (so the that the parser won't afterwards suddenly start
    creating nodes with this different fileinfo)

git-svn-id: trunk@13577 -
2009-08-22 20:21:56 +00:00
Jonas Maebe
8dbc728926 * changed InputFileBufSize from 32kb to 32kb+1byte, because the last
byte is used for zero-termination (so we now always read blocks of
    exactly 32kb from disk)
  * set the first byte of the buffer to #0 when opening a file initially

git-svn-id: trunk@13576 -
2009-08-22 20:20:11 +00:00
Jonas Maebe
f2691c4ebf * fixed indentation
git-svn-id: trunk@13575 -
2009-08-22 20:13:57 +00:00
Jonas Maebe
146a819615 * fixed spilling of and operations on spilled 32 bit values for x86_64
(mantis #14403)

git-svn-id: trunk@13573 -
2009-08-21 16:20:16 +00:00
Jonas Maebe
2eebadf944 * allow disabling the wpo cycle with NOWPOCYCLE=1
git-svn-id: trunk@13572 -
2009-08-21 14:27:37 +00:00
Jonas Maebe
d11764fe8c - removed 1.0.x-specific checks
git-svn-id: trunk@13570 -
2009-08-20 20:33:15 +00:00
Jonas Maebe
d9a65f5fcc * clean wpo files with distclean
* don't delete utilities while performing wpo cycle

git-svn-id: trunk@13564 -
2009-08-20 08:34:02 +00:00
Jonas Maebe
c8f9cfe9ed * only specify -Xs- when actually using -OWsymbolliveness
git-svn-id: trunk@13561 -
2009-08-19 21:51:45 +00:00
Jonas Maebe
6c948f0970 * when RELEASE=1, also perform two compilations of the compiler/rtl with WPO
(and use the resulting compiler as final compiler to compile the rest of
     the source tree and to install)

   Note: this means that if you manually use "make cycle RELEASE=1", the RTL
     afterwards will not be usable, because it will have been compiled with
     WPO for the compiler; if you use "make all" in the root FPC dir, there
     is no problem since that makefile recompiles the RTL anyway.

git-svn-id: trunk@13560 -
2009-08-19 21:36:28 +00:00
Jonas Maebe
c6b5038d5e * removed unnecessary internalerror triggered when reading wpo info for a
program whereby no methods can be optimized for the last class in the
    contextinsensitive_devirtualization section

git-svn-id: trunk@13559 -
2009-08-19 20:25:41 +00:00
Jonas Maebe
125b9e79d7 * fixed an error with trashing (-gt) of open shortstring "out" parameters
causing crashes if strings with a maximum length < 255 were passed

git-svn-id: trunk@13558 -
2009-08-19 20:24:32 +00:00
Jonas Maebe
5885866990 + support for objcencode() (equivalent of Objective-C's @encode()) + test
+ functionality to encode Objective-C function signatures (untested)

git-svn-id: branches/objc@13557 -
2009-08-18 19:54:02 +00:00
Jonas Maebe
a59c8974f3 * mark first fields of records and variant parts of records, as is also
done in the llvm branch (necessary to encode variant records in the
    notation used by the Objective-C runtime)

git-svn-id: branches/objc@13556 -
2009-08-18 19:48:19 +00:00
Jonas Maebe
3ed4734f85 * fixed position where error message is given about wrong "class of"
type definitions (was at the position of the invalid x type in
    "class of x", rather than at the position of the "class of x" definition
    itself)

git-svn-id: trunk@13555 -
2009-08-18 18:04:55 +00:00
Jonas Maebe
e0c51caa7d * fixed compilation after r13551
git-svn-id: trunk@13553 -
2009-08-18 15:01:57 +00:00
florian
c0d4efed2e * forbid passing derived classes to call by reference parent classes (for objects, this is still allowed), resolves #13135
git-svn-id: trunk@13551 -
2009-08-17 21:46:25 +00:00
Jonas Maebe
e7c9a380f7 * fixed comment describing pshortstring2pchar
git-svn-id: trunk@13550 -
2009-08-17 18:09:43 +00:00
Jonas Maebe
7e7e7b34e1 - disabled cs_opt_asmcse for -O2/-O3 on i386. It can still be enabled
explicitly using -Ooasmcse for now. It will probably be completely
    removed before the next major release after 2.4.0 (fixes mantis
    #14363)

git-svn-id: trunk@13545 -
2009-08-16 15:29:47 +00:00
florian
8fc6cbf89b * reordered fields, safes 2-3 per cent of memory during compilation
git-svn-id: trunk@13539 -
2009-08-16 10:22:54 +00:00
Jonas Maebe
847354fe10 * Makefiles version 2.5.1
git-svn-id: trunk@13533 -
2009-08-13 21:21:28 +00:00
Jonas Maebe
8bd552b7b3 * version 2.5.1
git-svn-id: trunk@13532 -
2009-08-13 21:16:05 +00:00
florian
a1179733a7 + tsym.prettyname
* don't complain about unused compiler generated type symbols of generic specializations, resolves #13405

git-svn-id: trunk@13523 -
2009-08-12 18:46:32 +00:00
florian
53d60f02b2 * lying around newline fixes
git-svn-id: trunk@13513 -
2009-08-10 18:56:32 +00:00
florian
10ede51609 * access static fields by a absolute sym pointing to the symbol for the space allocation, resolves #14124
git-svn-id: trunk@13512 -
2009-08-10 18:46:23 +00:00
yury
6a6a6a6e6f * Copy() with WideChar array or PWideChar parameter should use fpc_unicodestr_copy compilerproc, since fpc_widestr_copy is available only on Windows. Bug #14307.
+ test.

git-svn-id: trunk@13511 -
2009-08-10 13:09:27 +00:00
yury
e82e4ae806 * Fixed WideString on wince. WideString=UnicodeString on wince. Bug #14304.
git-svn-id: trunk@13510 -
2009-08-10 11:32:08 +00:00
florian
49cff00793 * unified ie
git-svn-id: trunk@13509 -
2009-08-09 22:22:30 +00:00
florian
e022a86c47 * update of german error message files by Karl-Michael Schindler
git-svn-id: trunk@13506 -
2009-08-09 16:35:09 +00:00
florian
a9aba39d63 * show warnings about parameter types in cdecl'ed procedures at proper locations, resolves #14283
git-svn-id: trunk@13502 -
2009-08-08 22:28:45 +00:00
florian
8e9e7f0f8c - don' read ppc386.cfg any longer, it's deprecated since years, resolves #11317
git-svn-id: trunk@13493 -
2009-08-06 19:47:30 +00:00
florian
6c99746074 * forbid the usage of Result(x) as function call, resolves #14248
git-svn-id: trunk@13492 -
2009-08-06 19:06:23 +00:00
Jonas Maebe
e246cac3ac * regenerated using latest fpcmake
git-svn-id: trunk@13487 -
2009-08-02 18:40:14 +00:00
Károly Balogh
c11243c83d * made MorphOS build to cycle again: fixed path_absolute() for Amiga and MorphOS, and fixed AllFilesMask for MorphOS
git-svn-id: trunk@13474 -
2009-07-30 00:57:06 +00:00
Jonas Maebe
6505b4f9c5 * reverted rest of r13469 because it causes crashes for linux/ppc64
git-svn-id: trunk@13473 -
2009-07-29 20:35:51 +00:00
Jonas Maebe
baf1ac22b7 * fixed r13469 (PLT entries are not GOT-relative). Not reverting all the
changes from that commit, because not hardcoding the use of
    current_procinfo in all cases when obtaining the GOT register is
    cleaner

git-svn-id: trunk@13470 -
2009-07-28 17:43:17 +00:00
Jonas Maebe
f265fbe343 * fixed GOT loading for i386 in stubs for external procedures whose external
name is (re)defined in the implementation (mantis #14221)

git-svn-id: trunk@13469 -
2009-07-28 17:28:17 +00:00
Jonas Maebe
2799cfd83f + parser-side of objcprotocol() expression to obtain the metaclass
associated with an Objective-C protocol. Code generator part will
    always generate an internalerror currently, because it cannot yet
    be implemented (needs support for generating RTTI for Objective-C
    classes)

git-svn-id: branches/objc@13461 -
2009-07-26 16:03:37 +00:00
Jonas Maebe
a25e791ff8 * allow Objective-C classes/protocols in C varargs parameter lists
git-svn-id: branches/objc@13460 -
2009-07-26 16:00:33 +00:00
Jonas Maebe
10aa7f40cd * made ppu version again different from trunk version, because the format
is also different

git-svn-id: branches/objc@13459 -
2009-07-26 14:40:30 +00:00
Jonas Maebe
335e159c11 Merged revisions 13351-13373,13376-13457 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk

git-svn-id: branches/objc@13458 -
2009-07-26 14:31:50 +00:00
Jonas Maebe
464d595cc6 * renamed selector() to objcselector() for consistency with the way all
other Objective-C integration keywords/functions are being named

git-svn-id: trunk@13456 -
2009-07-26 14:06:34 +00:00
florian
caf0096877 * enabled version and description directive for all windows
git-svn-id: trunk@13447 -
2009-07-25 22:06:37 +00:00
florian
9856e548ed * avr stuff, work in progress
git-svn-id: trunk@13444 -
2009-07-25 19:31:06 +00:00
florian
b4914d063a * write class string message table correctly, resolves #14145
git-svn-id: trunk@13440 -
2009-07-25 12:17:54 +00:00
Jonas Maebe
aba66582a8 * corrected the description of the option_only_one_source_support warning:
only the last source file specified will be compiled, not the first one
  * also print out both the old and the new source file name to be compiled
    when showing that message (to more easily find where the error is)
  * give an error if an unknown parameter is used, instead of silently
    ignoring it

git-svn-id: trunk@13429 -
2009-07-23 13:48:27 +00:00
Jonas Maebe
97072cd21a * corrected the description of the -Xr parameter
git-svn-id: trunk@13428 -
2009-07-23 13:36:57 +00:00
Jonas Maebe
8103a3b39c * always generate a DW_TAG_typedef entry when usng a type (not only for
Darwin anymore), because otherwise if unit A is compiled without debug
    info and unit B uses one of its types, the debug info will contain no
    DW_TAG_typedef for that type and hence gdb will not recognise it as
    a type definition that's part of the program.

git-svn-id: trunk@13424 -
2009-07-22 19:44:29 +00:00
florian
04a796628c * variables in dlls need at least a dll name on windows, test fixed
* names of exported functions on windows are not mangled
* cosmetic fixes to tests

git-svn-id: trunk@13422 -
2009-07-22 17:03:46 +00:00
Jonas Maebe
cc44257086 * made internalerror unique
git-svn-id: trunk@13420 -
2009-07-22 16:17:45 +00:00
Jonas Maebe
63ce04fd00 * set addn resultdef when evaluating constant string concatenation
instead of letting the resulting stringconstn decide for itself
    (mantis #14174)

git-svn-id: trunk@13419 -
2009-07-22 16:16:11 +00:00
Jonas Maebe
5eb7a398e0 * add SIZEOF_HEADERS to the start address of the text section for ARMEL
(fix by thexception, mantis #14100)
  * changed hardcoded "+0x100" for the default linker script also into
    "+ SIZEOF_HEADERS"

git-svn-id: trunk@13418 -
2009-07-20 09:20:02 +00:00
florian
5bccfc5aee * allow cvar and external with libname, cvar is only a naming convention so it is orthogonal to external
git-svn-id: trunk@13416 -
2009-07-19 19:41:27 +00:00
florian
ab217ca748 * lpi version increased
git-svn-id: trunk@13415 -
2009-07-19 18:12:57 +00:00
florian
f34acc8505 * fixes compilation on i386 after r13410
git-svn-id: trunk@13414 -
2009-07-19 17:39:09 +00:00
Jonas Maebe
34c985cfa6 * added register type parameter to cgsize2subreg(), as the subreg can
depend on that (and correct a number of cases where this was wrong)
  * set the correct subreg type for xmm x86_64 parameter registers
    (resolved mantis #14067)

git-svn-id: trunk@13410 -
2009-07-19 13:57:23 +00:00
Jonas Maebe
754696d1f5 * enable converting procedure callnodes with only default parameters into
procvars in tp/delphi mode (mantis #11771)

git-svn-id: trunk@13400 -
2009-07-17 10:29:56 +00:00
Jonas Maebe
14107b42b2 * fixed tw9039{a,b} for 64 bit platforms (qwordvar > int64var) is evaluated
by the compiler as  (int64(qwordvar) > int64var), which broke the array
    size check for 64 platforms

git-svn-id: trunk@13388 -
2009-07-15 08:22:00 +00:00
florian
9d659dc937 * accept const <guid const> = <guid string>; again, resolves #14134
git-svn-id: trunk@13384 -
2009-07-12 11:00:07 +00:00
Jonas Maebe
5a2ccfff52 --WARNING: start build process with FPC 2.2.4; won't work when
starting with a previous 2.3.1 or compiler built from the objc branch
  + added basic objcprotocol support (only for external protocols
    currently)
     o use in type declaration: "type xp = objcprotocol ... end;"
     o when defining a root class that implements it:
       "type yc = objcclass(xp) ... end" (note: no support yet
       for something like "objcclass(id,xp)" or so)
     o when defining a non-root class that implements a protocol:
       "type zc = objcclass(nsobject,xp) ... end"
     o includes support for "required" and "optional" sections
     o no support yet for the objcprotocol(<protocol>) expression
       that enables getting a class instance representing the
       protocol (e.g., for use with "conformsToProtocol:")
     o message names have to specified in protocol declarations,
       but if an objcclass implements a protocol, the message names do
       not have to be repeated (but if they are, they have to match;
       the same goes when overriding inherited methods)
  + allow specifying the external name of Objective-C classes and
    protocols, since classes and protocols can have the same name
    (and you cannot use the same Pascal identifier in such caseq)
  + added NSObject protocol, and make the NSObject class use it
  + added missing NSObject class methods that have the same name
    as instance methods (added "class" name prefix to avoid clashes)
  * fixed several cases where the compiler did not treat Objective-C
    classes/protocols the same as Object Pascal classes/interfaces
    (a.o., forward declarations, alignment, regvars, several type
     conversions, ...)
  * allow "override" directive in objcclass declarations, and print
    a hint if it's forgotten in an external declaration (because it
    doesn't really matter there, and may make automated header
    conversion harder than necessary) and an error if will be used in
    a non-external declaration (because it is not possible to start
    a new vmt entry-tree in Objective-C, you can only override parent
    methods)
  * reject objcclasses/protocols as parameters to typeof()
  * don't try to test VMT validity of objcclasses/protocols

git-svn-id: branches/objc@13375 -
2009-07-09 20:48:28 +00:00
Jonas Maebe
2bcef8e018 * fixed typo in comment
git-svn-id: branches/objc@13374 -
2009-07-09 16:03:59 +00:00
Jonas Maebe
52c6f14de5 * do not allow local type definitions such as string[1] and "file of byte"
inside parameter lists and function results (fixes second problem
    reported in mantis #14104, see also
    http://wiki.freepascal.org/User_Changes_Trunk#Local_type_definitions_in_parameter_lists
    )

git-svn-id: trunk@13372 -
2009-07-08 20:21:37 +00:00
florian
b9fddff9c4 * avoid IE in case of unknown assembler reference syntax
git-svn-id: trunk@13364 -
2009-07-05 19:16:46 +00:00
florian
04402dd6cc * initialize allow_array_constructor for each compilation run, fixes probably #12283
git-svn-id: trunk@13360 -
2009-07-04 15:44:33 +00:00
florian
67cb961ed3 * only x86 and m68k need treference.segment
git-svn-id: trunk@13353 -
2009-06-29 21:12:45 +00:00
florian
6898b10e2e * fixed order of cgloc2str strings
git-svn-id: trunk@13352 -
2009-06-29 19:27:51 +00:00
Jonas Maebe
92de010fe1 Merged revisions 13218-13347 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk

git-svn-id: branches/objc@13350 -
2009-06-28 16:09:53 +00:00
Jonas Maebe
0356a35e1c Merged revisions 13156-13217 via svnmerge from
svn+ssh://jonas@svn.freepascal.org/FPC/svn/fpc/trunk

........
........
r13157 | marco | 2009-05-17 14:22:41 +0200 (Sun, 17 May 2009) | 2 lines

 * mingw textmode IDE debugging support. First working version (for me), atexit handler for mingw and cygwin stuff under ifndef  USE_MINGW_GDB
    
........
r13158 | marco | 2009-05-17 14:43:57 +0200 (Sun, 17 May 2009) | 1 line

 * Fix for gdb66/mingw (general?) program reset issue. Instructs GDB to turn confirmation off.  Mantis 0011968 
........
r13159 | yury | 2009-05-17 14:43:58 +0200 (Sun, 17 May 2009) | 1 line

* Replaced some ifdef x86_64 by ifdef cpu64bitaddr, since it is more correct.
........
r13160 | yury | 2009-05-17 14:47:26 +0200 (Sun, 17 May 2009) | 1 line

* Set default image base for win64 dlls to $110000000.
........
........
........
r13163 | jonas | 2009-05-17 16:33:20 +0200 (Sun, 17 May 2009) | 3 lines

  * support {$i *.ext} to include source files with the same base name, but
    with a different extension than the current source file (mantis #13696)

........
r13164 | jonas | 2009-05-17 16:42:17 +0200 (Sun, 17 May 2009) | 2 lines

  * copyright in comments updated (from mantis #13048)

........
r13165 | jonas | 2009-05-17 16:50:44 +0200 (Sun, 17 May 2009) | 2 lines

  * small fixes from Karl-Michael Schindler (mantis #13048)

........
r13166 | marco | 2009-05-17 17:37:27 +0200 (Sun, 17 May 2009) | 3 lines

 *  gtk_cell_renderer_combo_new returns gtkcellrenderer not -combo (mantis 13689),
      probably to support some kind of procedural polymorphism.

........
r13167 | jonas | 2009-05-17 18:01:13 +0200 (Sun, 17 May 2009) | 4 lines

  * when loading the functions for a particular OpenGL function, also
    automatically load those for lower versions (patch by "satan", mantis
    #13687)

........
r13168 | marco | 2009-05-17 19:09:26 +0200 (Sun, 17 May 2009) | 3 lines

 * reversed destruction order of TFPObjectList as per Mantis 13715.
  Note that it is _NOT_ good coding to rely on such things

........
........
........
........
r13172 | sergei | 2009-05-18 00:56:51 +0200 (Mon, 18 May 2009) | 9 lines

DOM test suite enhancements:
* Do not convert tests which request implementation attribute 'signed'='true'.
  Such tests aren't applicable to our unsigned DOM, they only cause compiler warnings
  and noise in the test report.
+ Support for default properties (obj.item(x) -> obj[x]).
+ Support black-listing of testcases. Some of them (in HTML testsuite) are easier to
  rewrite by hand than to convert.
+ Support adding certain units to 'uses' clause (e.g. HTML suite must use dom_html).

........
........
........
r13175 | sergei | 2009-05-18 22:33:43 +0200 (Mon, 18 May 2009) | 1 line

dom.pp: Ignore node read-only property when its owning document is being destroyed (enables destroying nodes in arbitrary order).
........
r13176 | sergei | 2009-05-19 00:03:37 +0200 (Tue, 19 May 2009) | 2 lines

* Moved TDOMAttrDef class from xmlread.pp to dom.pp (in order to implement default attribute handling at DOM level).
* Using regular CloneNode() method to create copies of TDOMAttrDef.
........
........
........
........
r13180 | sergei | 2009-05-21 01:08:24 +0200 (Thu, 21 May 2009) | 13 lines

Final strike for #13605:

src/dom.pp:
* GetElementsByTagName[NS] results now get cached in a hashtable. Repeated calls to
  GetElementsByTagName with same arguments return the same instance of NodeList. All NodeLists
  created during document lifetime are destroyed with the document.

src/xmlutils.pp:
* THashTable.Lookup(), changed SetString to SetLength+Move because SetString truncates on #0
+ added THashTable.RemoveData() method

tests/api.xml:
- No longer need to 'garbage collect' the NodeLists.
........
r13181 | jonas | 2009-05-21 11:57:45 +0200 (Thu, 21 May 2009) | 4 lines

  - unconditionally enabled {$ifdef PARAOUTFILE}-code (that define was
    decomissioned quite a while ago, but this file was forgotten in
    that process)

........
r13182 | marco | 2009-05-21 13:26:54 +0200 (Thu, 21 May 2009) | 2 lines

 * win64 compatibility fix from Vincent. TLibHandle is now equal to system.thandle

........
r13183 | marco | 2009-05-21 16:11:16 +0200 (Thu, 21 May 2009) | 1 line

 * some minor vista/w7 related updates to message numbers
........
r13184 | sergei | 2009-05-21 22:45:16 +0200 (Thu, 21 May 2009) | 1 line

dom.pp: Added node memory management code (pure addition, no functionality changes this time).
........
r13185 | sergei | 2009-05-22 01:07:32 +0200 (Fri, 22 May 2009) | 10 lines

dom.pp: Customized memory management, fixes 17 test cases and all memory leaks in testsuite:
* Every node created by Document.CreateXXX method is now guaranteed to be destroyed with the
  document, whether it is part of the tree or not. Therefore, DOM methods which remove nodes
  from the tree (namely, TDOMNode.RemoveChild, TDOMNode.ReplaceChild,
  TDOMElement.SetAttributeNode and TDOMElement.SetAttributeNodeNS) no longer need to destroy
  their return value and are now conformant to the specs.
* Nodes are allocated in arrays of instances (emulates 'placement new operator' in C++ terms).
  Allocation and freeing are as fast as possible (just assigns a couple of pointers).
* Behaviour of nodes that are created by direct call to constructor is unchanged.

........
r13186 | jonas | 2009-05-23 12:10:56 +0200 (Sat, 23 May 2009) | 2 lines

  + Darwin-specific fcntl constants

........
........
r13188 | marco | 2009-05-23 17:40:13 +0200 (Sat, 23 May 2009) | 1 line

 * thread creation failure for win<x>. Mantis 13798
........
r13189 | joost | 2009-05-24 13:17:59 +0200 (Sun, 24 May 2009) | 1 line

 * Modified patch from taka_jp to set the connection-dataset for mysql, bug #13588.
........
r13190 | joost | 2009-05-24 13:20:45 +0200 (Sun, 24 May 2009) | 1 line

 * Fixed resource-leak on exceptions during creating/dropping databases, patch from taka_jp, bug #13587
........
r13191 | jonas | 2009-05-24 13:48:49 +0200 (Sun, 24 May 2009) | 5 lines

  * changed the parameters of gotoxy() and the return values of wherex/wherey
    from byte into tcrtcoord=1..255, since all crt unit coordinates are
    1-based (not for Window() procedure, see comments in crth.inc;
    mantis #13788)

........
r13192 | jonas | 2009-05-24 14:25:33 +0200 (Sun, 24 May 2009) | 2 lines

  * again made less complex in case of PIC, otherwise it fails

........
r13193 | jonas | 2009-05-24 14:26:38 +0200 (Sun, 24 May 2009) | 2 lines

  * make sure example also works without an application bundle

........
r13194 | jonas | 2009-05-25 20:34:04 +0200 (Mon, 25 May 2009) | 2 lines

  * fixed evaluating "nil +/- int_const" expressions (mantis #13815)

........
r13195 | jonas | 2009-05-25 21:41:14 +0200 (Mon, 25 May 2009) | 4 lines

  * fixed missing reference counting in case a refcounted type was implicitly
    type casted to a non-refcounted type, e.g. dynarray to pointer in Delphi
    mode (mantis #13820)

........
r13196 | sergei | 2009-05-25 22:28:40 +0200 (Mon, 25 May 2009) | 8 lines

dom.pp: No more failures on level 1 testsuite... at last.
+ Implemented handling of default attributes:
  * creating an element also creates and attaches the default attributes;
  * removing an attribute restores it with default value, if there's one.
+ Attribute nodes remove themselves from the owner element upon destruction, making it possible
  to Free attributes manually.
* TDOMNamedNodeMap.SetNamedItem does not reset attribute OwnerElement if the argument node is already
  contained in the map (and whole operation is therefore is a no-op).
........
r13197 | marco | 2009-05-26 14:24:58 +0200 (Tue, 26 May 2009) | 5 lines

 * uxtheme moved from Lazarus.
 * Disabled (ifdeffed) lock around init/finalization because of circular
    reference between fcl-base and winunits-base. If needed it can be
    recoded directly using system specific (windows.pas) routines.

........
r13198 | jonas | 2009-05-26 18:22:41 +0200 (Tue, 26 May 2009) | 2 lines

  * make references PIC-safe before pushing them as parameter (mantis #13829)

........
r13199 | marco | 2009-05-26 18:54:49 +0200 (Tue, 26 May 2009) | 2 lines

 * tmschema as include file added at Paul's request

........
r13200 | sergei | 2009-05-27 00:14:21 +0200 (Wed, 27 May 2009) | 6 lines

+ Implementation of TDOMDocument.CreateAttributeNS and CreateElementsNS
+ Initial part of TDOMElement.SetAttributeNS
+ TDOMImplementation.CreateDocumentType checks validity of QualifiedName
* Use 'managed' memory allocation in TDOMEntity.CloneNode and TDOMNotation.CloneNode to avoid leaks
* TDOMDocument.RemoveID now using THashTable.RemoveData(), simplifies things

........
r13201 | marco | 2009-05-27 09:29:04 +0200 (Wed, 27 May 2009) | 2 lines

 * Marquee patch from Paul + some Vista PBM_ constants.

........
r13202 | marco | 2009-05-27 10:46:27 +0200 (Wed, 27 May 2009) | 2 lines

 * first half of vista updates.

........
r13203 | marco | 2009-05-27 18:26:32 +0200 (Wed, 27 May 2009) | 2 lines

 * vista items till WC_STATICA, roughly at 80% now.

........
r13204 | jonas | 2009-05-27 19:26:50 +0200 (Wed, 27 May 2009) | 2 lines

  * various optimizations by Dave Richards (mantis #12440)

........
r13205 | jonas | 2009-05-27 19:50:55 +0200 (Wed, 27 May 2009) | 3 lines

  * forbid "nil +/- ordinal" expressions (Delphi-compatible, and the
    expression is meaningless since nil is not a valid address)

........
r13206 | marco | 2009-05-27 22:08:56 +0200 (Wed, 27 May 2009) | 2 lines

 * more Vista fixes, and implemented some macro's that somehow were not implemented.

........
r13207 | hajny | 2009-05-27 23:18:35 +0200 (Wed, 27 May 2009) | 1 line

  * extension of r13191 to OS/2, EMX and potential other platforms using crt.inc based implementation of unit crt
........
r13208 | florian | 2009-05-29 00:28:58 +0200 (Fri, 29 May 2009) | 1 line

* patch to fix fillpoly, by borsa77
........
r13209 | michael | 2009-05-29 09:24:02 +0200 (Fri, 29 May 2009) | 1 line

* Change so that when FindFirst initially returns nonzero, FindClose is no longer needed (Windows compatible)
........
r13210 | michael | 2009-05-29 09:27:41 +0200 (Fri, 29 May 2009) | 1 line

* Change so that when FindFirst initially returns nonzero, FindClose is no longer needed (Windows compatible)
........
r13211 | michael | 2009-05-29 09:30:46 +0200 (Fri, 29 May 2009) | 1 line

* Fix from Ken Wright for broken FPC changes
........
r13212 | jonas | 2009-05-30 13:29:54 +0200 (Sat, 30 May 2009) | 2 lines

  * fixed/cleaned up tests for "nil + 1"

........
r13213 | michael | 2009-05-30 14:07:16 +0200 (Sat, 30 May 2009) | 1 line

* Some TCustomVariant methods implemented
........
r13214 | sergei | 2009-05-31 10:18:06 +0200 (Sun, 31 May 2009) | 3 lines

+ Processing of prefixed attributes and prefix bindings. This completes namespace support at
  the XML reader side.

........
r13215 | sergei | 2009-05-31 11:14:37 +0200 (Sun, 31 May 2009) | 1 line

* Added .txt extension to README_DOM (this one was missed while fixing Mantis #12358)
........
r13216 | sergei | 2009-05-31 12:38:28 +0200 (Sun, 31 May 2009) | 1 line

Bringing readme's up to date
........
r13217 | Legolas | 2009-05-31 14:15:24 +0200 (Sun, 31 May 2009) | 4 lines

* updated nds/gba linker scripts and reverted some changes for 2.2.4a release
- Removed unused/outdated stuff from libndsfpc
+ Added new examples for libndsfpc
+ Added working (I hope so...) makefile.fpc for all libndsfpc/libgbafpc examples
........

git-svn-id: branches/objc@13348 -
2009-06-28 15:29:53 +00:00
florian
60169d34dc * fixed compilation of AVR compiler
git-svn-id: trunk@13342 -
2009-06-27 19:31:24 +00:00
florian
86aad85b78 + section smartlink bss for embedded targets
git-svn-id: trunk@13341 -
2009-06-27 15:21:01 +00:00
Jonas Maebe
c6733ed9a5 * disallow placing fields after method/property definitions, because this
can create ambiguities for the parser in case the field names also exist
    as modifiers (TP- and Delphi-compatible, mantis #13971) + tests
  * fixed tests that broke because of this change

git-svn-id: trunk@13334 -
2009-06-27 12:59:46 +00:00
Jonas Maebe
be43cec33a * enable cross-compiling from x86_64 platforms that support the extended
type to i386

git-svn-id: trunk@13333 -
2009-06-27 12:54:56 +00:00
Jonas Maebe
1f6ec379de * moved field definitions before method/property definitions (see mantis
#13971)

git-svn-id: trunk@13330 -
2009-06-27 11:27:31 +00:00
florian
fc5e5d9258 * talignmentinfo must be packed, it is written to the ppu during streaming, further it is member of tsettings which packed too
* reordered fields of tsetting to avoid unaligned fields
* fixed compilation of arm after disableddircache was added
* increased ppu version

git-svn-id: trunk@13327 -
2009-06-27 11:14:19 +00:00
Jonas Maebe
e42842b31c * don't allow skipping property parameters if the getter/setter has default
parameters (mantis #13956)
  * when reporting an error about too few specified parameters to a call,
    return the column of the call itself rather than after the last parameter
    (because this ends up after the end of an indexed property in case of
     properties, which is confusing)

git-svn-id: trunk@13326 -
2009-06-26 17:31:41 +00:00
Jonas Maebe
5c006b9b86 * enable the directory cache by default starting with the first lookup
(fixes mantis #13756)
  + added -Fd command line parameter to disable the directory cache

git-svn-id: trunk@13325 -
2009-06-26 14:55:31 +00:00
Jonas Maebe
b7235b21c9 * no longer allow assigning values to typecasted properties, because in
case the getter is a function, the result is that first the getter is
    called, and subsequently the temp holding the function result is
    overwritten (thus not changing anything). This is Delphi-compatible,
    and fixes tests/tbf/tb0214*

git-svn-id: trunk@13320 -
2009-06-23 18:42:53 +00:00
florian
2574851942 * ppu format change, ppu version increased
git-svn-id: trunk@13316 -
2009-06-22 21:49:39 +00:00
florian
121875a374 * make TSettings packed so ppus containing generics are compatible regardless which compiler generated them
git-svn-id: trunk@13315 -
2009-06-22 21:45:06 +00:00
florian
2a683bff43 * make msg was not executed after rev. 13287
git-svn-id: trunk@13314 -
2009-06-22 20:49:44 +00:00
Jonas Maebe
c0e51f3e97 * use reference-counted temps for the method pointer when the method
pointer is of a reference-counted type (reverts r2165, fixes mantis #14019)
  * modified test for mantis #4086 (which was "fixed" by r2165) so it still
    works and no longer depends on whether or not the compiler uses a
    refcounted temp to evaluate certain expressions

git-svn-id: trunk@13310 -
2009-06-21 12:17:51 +00:00
Jonas Maebe
80864ebf31 * made TDebugInfoDwarf3 inherit from TDebugInfoDwarf2 instead of from
TDebugInfoDwarf, so DWARFv2 and DWARFv3 generators can share protected
    methods.
  * fixed the debug info for sets whose language-level lower bound is not
    equal to the actual set base used when storing the data (e.g., a "set
    of 1..5" is actually stored as a "set of 0..7" or "set of 0..31")
    (mantis #13984)
  + interactive test for the above

git-svn-id: trunk@13302 -
2009-06-20 10:45:04 +00:00
florian
a70d36e9c7 + set stack through linker script
* reduced size of fiq and irq stack
* fixed data coping and bss zero'ing loop

git-svn-id: trunk@13301 -
2009-06-20 07:33:25 +00:00
florian
a4eb523d0e * fixed memory sizes
* fixed objdump parameters

git-svn-id: trunk@13299 -
2009-06-19 15:20:38 +00:00
florian
7a65b5c7a0 + added some AT91SAM7 controllers
* improved linker script for arm-embedded

git-svn-id: trunk@13292 -
2009-06-18 21:55:12 +00:00
Jonas Maebe
f5a24d0f5b * fix from r13288
git-svn-id: trunk@13289 -
2009-06-18 09:34:04 +00:00
Jonas Maebe
b05992b8a2 * stabs -> Stabs
* dwarf/Dwarf -> DWARF

git-svn-id: trunk@13287 -
2009-06-18 09:10:35 +00:00
florian
22745d74a8 o Message file update by Karl-Michael Schindler
* Updates of error message files, mainly the two German files and a small typo correction of the English 

git-svn-id: trunk@13286 -
2009-06-17 21:30:18 +00:00
florian
f342e825ab * store scanner directive stack when starting compilation of another module
* reset scanner directive stack position when starting new compilation, resolves #13998

git-svn-id: trunk@13285 -
2009-06-17 21:24:26 +00:00
joost
75eaa2cddf * Renamed DW_AT_stride to DW_AT_byte_stride, DWARF-3 compatible
* Use DW_AT_byte_stride when possible, because gdb does not support DW_AT_stride_size
 * Add stride to dynamic-array definitions

git-svn-id: trunk@13280 -
2009-06-15 14:47:28 +00:00
florian
70a262acbb * regenerated
git-svn-id: trunk@13258 -
2009-06-11 16:16:05 +00:00
florian
d15e6bbe2a + -vs is shown in the help screen, resolves #13958
* -v options slightly reordered so they are easier to read

git-svn-id: trunk@13257 -
2009-06-11 16:15:31 +00:00
Jonas Maebe
5c4f80d6bc * when optimizing temp assignments by simply replacing one temp with
another, it's not enough that the temp sizes are the same, because
    the assignment may only apply to part of them. In such cases,
    perform a regular copy (mantis #13948)

git-svn-id: trunk@13255 -
2009-06-10 19:14:40 +00:00
Jonas Maebe
7bff50becd * give an error message when the specified wpo feedback input file
is a directory
  * always quote wpo feedback file name in messages

git-svn-id: trunk@13242 -
2009-06-06 12:39:09 +00:00
Jonas Maebe
e13a708002 * fixed compiler crash when using a bitpacked array whose size was
close to high(longint) bytes

git-svn-id: trunk@13241 -
2009-06-06 12:33:18 +00:00
Jonas Maebe
d27673bbe4 * do not load wpo info from ppu files when we are not generating
a wpo feedback file (saves time and memory)

git-svn-id: trunk@13240 -
2009-06-06 09:08:08 +00:00
Jonas Maebe
b9601f10fb * part of r13238, forgot to commit
git-svn-id: trunk@13239 -
2009-06-06 09:07:07 +00:00
Jonas Maebe
41acad1d11 + keep track of called virtual methods per unit. -Owoptvtms will now replace
vmt entries of virtual methods that can never be called with references
    to FPC_ABSTRACTERROR. Some virtual methods are always considered to be
    reachable: published methods, and methods used as getter/setter for a
    published property.

git-svn-id: trunk@13238 -
2009-06-06 08:24:36 +00:00
Jonas Maebe
0daaaf5d3b * fixed compilation after r13217 (some 2.2.x-isms)
git-svn-id: trunk@13220 -
2009-06-01 08:08:16 +00:00
Jonas Maebe
66c14c8a88 * don't mark classes used in "is"- or "as"-expressions as potentially
instantiated (for wpo)
  * also replace vmt-entries for classes for which we don't have any
    information at all with FPC_ABSTRACTERROR (since that means they
    certainly are not instantiated), except for their published and
    virtual class methods
  * fixed check for published methods in wpo

git-svn-id: trunk@13219 -
2009-05-31 13:52:40 +00:00
Jonas Maebe
380e957a79 * init wpo collectors before parsing the interface of units
* also register classes assigned to classref typed constants as potentially
    instantiated

git-svn-id: trunk@13218 -
2009-05-31 13:37:15 +00:00
Legolas
d2dabe9a33 * updated nds/gba linker scripts and reverted some changes for 2.2.4a release
- Removed unused/outdated stuff from libndsfpc
+ Added new examples for libndsfpc
+ Added working (I hope so...) makefile.fpc for all libndsfpc/libgbafpc examples

git-svn-id: trunk@13217 -
2009-05-31 12:15:24 +00:00
Jonas Maebe
7e908cb1e3 * forbid "nil +/- ordinal" expressions (Delphi-compatible, and the
expression is meaningless since nil is not a valid address)

git-svn-id: trunk@13205 -
2009-05-27 17:50:55 +00:00
Jonas Maebe
15b0711ca0 * various optimizations by Dave Richards (mantis #12440)
git-svn-id: trunk@13204 -
2009-05-27 17:26:50 +00:00
Jonas Maebe
dc00a747f4 * make references PIC-safe before pushing them as parameter (mantis #13829)
git-svn-id: trunk@13198 -
2009-05-26 16:22:41 +00:00
Jonas Maebe
966ebbf157 * fixed missing reference counting in case a refcounted type was implicitly
type casted to a non-refcounted type, e.g. dynarray to pointer in Delphi
    mode (mantis #13820)

git-svn-id: trunk@13195 -
2009-05-25 19:41:14 +00:00
Jonas Maebe
17a7903e60 * fixed evaluating "nil +/- int_const" expressions (mantis #13815)
git-svn-id: trunk@13194 -
2009-05-25 18:34:04 +00:00
Jonas Maebe
27afdbf94a * fixed check for forbidding constructors/destructors in objcclasses + tests
git-svn-id: branches/objc@13179 -
2009-05-19 20:24:55 +00:00
Jonas Maebe
27b3689f60 * message file changes from r13177
git-svn-id: branches/objc@13178 -
2009-05-19 20:22:51 +00:00
Jonas Maebe
ba2c2cd449 * don't automatically set the parent class of objcclasses without a
designated parent to NSObject, because you can have multiple root classes
    (e.g., NSProxy is also an Objective-C root class in Cocoa). Instead,
    give a hint when an Objective-C class is declared without any parent
    (because it can very well be a mistake, given that Pascal classes all
    do automatically inherit form TObject).

git-svn-id: branches/objc@13177 -
2009-05-19 20:19:11 +00:00
Jonas Maebe
5691da116f * replace the contents of the dummy self and msgsel parameters when
transforming objc-calls, rather than adding new such parameters
    (fixes calling objc-methods on ppc)

git-svn-id: branches/objc@13174 -
2009-05-18 15:13:36 +00:00
Jonas Maebe
112ea5e5a8 * made all objcclasses assignment-compatible with id, and vice versa
git-svn-id: branches/objc@13170 -
2009-05-17 20:04:43 +00:00
Jonas Maebe
a63d4e3ad0 * fixed indentation
git-svn-id: branches/objc@13169 -
2009-05-17 20:03:52 +00:00
Jonas Maebe
bbfd8812c9 * small fixes from Karl-Michael Schindler (mantis #13048)
git-svn-id: trunk@13165 -
2009-05-17 14:50:44 +00:00
Jonas Maebe
84cdb246fa * copyright in comments updated (from mantis #13048)
git-svn-id: trunk@13164 -
2009-05-17 14:42:17 +00:00
Jonas Maebe
b59d1f724b * support {$i *.ext} to include source files with the same base name, but
with a different extension than the current source file (mantis #13696)

git-svn-id: trunk@13163 -
2009-05-17 14:33:20 +00:00
Jonas Maebe
b1b9894ae3 * initial Objective-C 1.0 support:
o support for declaring external Objective-C classes (see
      rtl/inc/objcbase.pas), including derived classes
    o support for converting methods of objcclasses into selectors
      (see tests/test/tobjc1.pp)
    o support for loading from/storing to fields of objcclasses
    o support for calling Objective-C methods using regular
      Object Pascal syntax (see tests/test/tobjc1.pp)
    o some things that are known to be not yet working:
      o automatic conversion from ID to objcclasses and back
      o declaring and implementing new objcclasses/methods in Pascal code
      o debug information (objcclasses are currently plain pointers
        as far as the debugger knows)

git-svn-id: branches/objc@13162 -
2009-05-17 13:42:50 +00:00
yury
9a0808d0fb * Set default image base for win64 dlls to $110000000.
git-svn-id: trunk@13160 -
2009-05-17 12:47:26 +00:00
yury
bf00b3e94b * Replaced some ifdef x86_64 by ifdef cpu64bitaddr, since it is more correct.
git-svn-id: trunk@13159 -
2009-05-17 12:43:58 +00:00
Jonas Maebe
4106ce540f * fixed compilation with -Cr after r13147
* changed type of minstacksize, maxstacksize and imagebase from aword
    (= size of integer registers of the target platform) into puint
    (= size of address space of target platform)

git-svn-id: trunk@13155 -
2009-05-17 10:07:54 +00:00
Jonas Maebe
3a8b29be91 + test conversion from class to differently sized enum and to differently
sized integer (succeed for Delphi, fail for objfpc)
  * fixed compiler so it only allows typecasting a class/interface to a
    differently sized integer in Delphi mode

git-svn-id: trunk@13152 -
2009-05-16 11:07:09 +00:00
Jonas Maebe
47c28c2db3 * pass -no_dead_strip_inits_and_terms to the linker, since we use these for
dynamic library initialization (this automatically enables dead code
    stripping/smart linking in all cases though, independent of -XX/CX;
    on the other hand, there is no real reason not to use it anymore on
    Mac OS X, since support was introduced in Xcode 1.5 for
    Mac OS X 10.3.9 and that's also the earliest version we support
    for running FPC on)

git-svn-id: trunk@13151 -
2009-05-16 10:42:23 +00:00
Jonas Maebe
d3cec25dce * small indentation fix
git-svn-id: trunk@13150 -
2009-05-16 10:31:35 +00:00
yury
78b2618db6 * Fixed setting of image base using {$IMAGEBASE X} directive.
* Cleanup of relative code.

git-svn-id: trunk@13147 -
2009-05-15 23:12:02 +00:00
yury
ede93974bc * Fixed writing of external debug info when reloc section should be created.
git-svn-id: trunk@13146 -
2009-05-15 22:30:52 +00:00
yury
187a145358 * Fixed build for ARM targets.
git-svn-id: trunk@13142 -
2009-05-14 08:47:18 +00:00
yury
c6253d5bd7 * Added missing override directive in trgcpu.add_constraints method for x86_64 CPU. It was missing for years and I am not sure that this code is really needed. Please review.
git-svn-id: trunk@13141 -
2009-05-13 11:37:09 +00:00
yury
41d50e4723 * Fixed dead code warning.
git-svn-id: trunk@13140 -
2009-05-13 11:27:48 +00:00
yury
f726e1691b * Fixed warnings and notes.
git-svn-id: trunk@13139 -
2009-05-13 11:26:01 +00:00
yury
e23a304254 * Set default images base to $100000000 for win64 executables as done by MS linkers. It helps to detect portability errors early.
git-svn-id: trunk@13138 -
2009-05-13 10:56:33 +00:00
yury
82ad6b4de9 * Define FPC_HAS_RIP_RELATIVE to indicate that x86_64 internal assembler supports RIP relative symbol addressing.
git-svn-id: trunk@13136 -
2009-05-13 10:44:01 +00:00
yury
92ad06f1e8 * Always use RIP relative symbol addressing for x86_64 Windows targets. Bug #13657.
* Support for simple form of RIP relative addressing by x86_64 assembler writer. Example: movl rax,SomeSymbol(%rip)

git-svn-id: trunk@13135 -
2009-05-13 10:07:44 +00:00
Jonas Maebe
927dfc526a * search include files specified using relative path also in the include
search paths (mantis #13461)

git-svn-id: trunk@13125 -
2009-05-10 13:42:41 +00:00
Jonas Maebe
74042f791d * completed making debugstart/end labels local for darwin as started
in r13111

git-svn-id: trunk@13112 -
2009-05-07 18:12:30 +00:00
Jonas Maebe
9a8ac8cecc * make the dwarf debugstart/end labels local for Darwin, because the darwin
linker does not like two global labels both pointing at the end of a
    section (causes "atom sorting error" warnings), and this happened for
    units without any code after r13098

git-svn-id: trunk@13111 -
2009-05-07 16:42:46 +00:00
yury
c4439e4e39 * Properly write 64-bit relocations into .reloc section.
* Warning when 64-bit object file contains 32-bit absolute relocations. In such case an executable image can be loaded into lower 4Gb of address space only.

git-svn-id: trunk@13110 -
2009-05-07 10:46:56 +00:00
Jonas Maebe
c1e327c8c4 * insert register allocation/deallocation information for the exception
handling code (g_exception_reason_load() now automatically allocates
    the cpu register that it loads). This fixes the bug reported in
    http://lists.freepascal.org/lists/fpc-devel/2009-May/016773.html
    on i386 with -O2)

git-svn-id: trunk@13105 -
2009-05-06 19:11:54 +00:00
yury
5cd83b26d9 * More proper check for executable image size limits.
* Proper handling of 64-bit COFF relocations.
* Use jumps with 32-bit relative addressing in imports on win64.
* This fixes are related to bug #13657. The bug is not fully fixed yet...

git-svn-id: trunk@13104 -
2009-05-06 18:07:07 +00:00
yury
16e19aaef3 * Some cleanup.
git-svn-id: trunk@13099 -
2009-05-04 18:45:08 +00:00
yury
9c9462cd5a * Insert DW_AT_low_pc and DW_AT_high_pc attributes for modules on Windows also. It solves debugging problems on Windows with dwarf debug info.
git-svn-id: trunk@13098 -
2009-05-04 18:36:08 +00:00
yury
9acecc0863 * Do not switch to external assembler if dwarf debug info is used.
git-svn-id: trunk@13097 -
2009-05-04 11:20:49 +00:00
yury
b1427bad2e * Fixed internal assembler writer to handle offset calculations with forward symbols involved. Internal assembler can handle dwarf debug info now.
git-svn-id: trunk@13096 -
2009-05-04 11:19:48 +00:00
yury
99917e034d * Fixed visibility notes of some overrode methods.
git-svn-id: trunk@13095 -
2009-05-04 10:24:47 +00:00
yury
2b3a54cec0 * Allow usage of internal linker when dwarf debug info is used.
git-svn-id: trunk@13094 -
2009-05-04 10:19:54 +00:00
yury
9d78ca3f19 * RELOC_SECREL32 must be relative to EXE section, not to object file section.
* Write zero to relocs in debug sections, which point to unused sections, eliminated by linker.
* It seems internal linker creates correct dwarf debug info now.

git-svn-id: trunk@13093 -
2009-05-04 09:42:51 +00:00
yury
50060dfd52 * Do not assume sizeof(pint) section alignment if no alignment is specified for the section.
git-svn-id: trunk@13092 -
2009-05-04 08:27:36 +00:00
marco
6f1f21c432 * optbase empty skeleton removed with two dependancies. Duplicate unit name caused problems.
git-svn-id: trunk@13091 -
2009-05-03 21:31:33 +00:00
yury
070fa422b5 * Partially reverted r12648. PE flags should be set in main PE header (and it is done already). LoaderFlags in optional header are obsolete.
git-svn-id: trunk@13088 -
2009-05-03 14:43:46 +00:00
Jonas Maebe
9344484ea7 * allocregbetween has to update the "initialregs" parameter, because it
can remove regallocs for the allocated register and reinstert them
    before already processed instructions, thereby preventing the
    peephole optimizer from ever seeing the allocation for this register
    (mantis #13612)

git-svn-id: trunk@13085 -
2009-05-02 22:26:24 +00:00
Jonas Maebe
5a09f58526 * only allow implicit type conversions from dynamic arrays to voidpointer
in Delphi mode, rather than to any pointer type (confused overload
    selection in mantis #13639)

git-svn-id: trunk@13079 -
2009-05-02 12:50:14 +00:00
Jonas Maebe
dd55947b4b - disabled jump tables for x86_64, because they cause various kinds of
crashes with dynamic libraries (mantis #13628 and related bugs)

git-svn-id: trunk@13073 -
2009-05-01 14:54:38 +00:00
Jonas Maebe
7885f6c892 * give a generic "type mismatch" error if copy() is called with less than
3 parameters and none of the valid cases apply (mantis #13625)

git-svn-id: trunk@13070 -
2009-05-01 11:40:02 +00:00
Jonas Maebe
844e0d04ba * to determine the alignment of arrays of orddef, enumdef and floatdef,
use the alignment of these elements rather than their size (fixes
    alignment of arrays of int64/qword/double on darwin/i386 and darwin/arm)

git-svn-id: trunk@13068 -
2009-05-01 11:15:31 +00:00
Jonas Maebe
2635212ebc * fixed warnings and removed unused "Current_moduleIndex" global variable
(patch by Alexander S. Klenin, mantis #13618)

git-svn-id: trunk@13063 -
2009-04-30 15:32:28 +00:00
Jonas Maebe
79c70c52a7 * store/restore taddnode.resultrealdef to/from the ppufiles, and also
copy/compare it when copying/comparing taddnodes (necessary for inlined
    procedures, mantis #13596)

git-svn-id: trunk@13054 -
2009-04-27 21:03:11 +00:00
Jonas Maebe
5b08047d1c * allow exlicit type conversions from class/interface to enums in Delphi
mode (mantis #11859)
  * cleaned up some superfluous "eq=te_incompatible" checks (probably from
    copy/pasting conditions from elsewhere)

git-svn-id: trunk@13050 -
2009-04-26 20:41:24 +00:00
Jonas Maebe
58f4f7829c * don't replace the vmt entries of unused published virtual methods with
references to FPC_ABSTRACTERROR when using -Owoptvmts, since these can
    also be called via rtti

git-svn-id: trunk@13045 -
2009-04-26 09:42:33 +00:00
florian
80c0f33c0e * patch by Sergei Gorelkin: fixes compilation with -dEXTDEBUG
git-svn-id: trunk@13043 -
2009-04-25 20:02:08 +00:00
Jonas Maebe
e2b8792bd3 * do not initialize global reference-counted variables in the automatic
initialization code of units/programs, because they are already
    zero and initializing them explicitly is Delphi-incompatible
    (mantis #13345)

git-svn-id: trunk@13042 -
2009-04-25 18:53:58 +00:00
Jonas Maebe
ca132e203f * treat typecast(register) the same as typecast([register]) in assembler
expressions (for Delphi compatibility, mantis #9327)

git-svn-id: trunk@13040 -
2009-04-25 15:37:38 +00:00
Jonas Maebe
dbeb3e060f * fixed internalerror(2007120903) when using -Cfsse2 in case an unsigned
32 bit subrange type with high(subrange_type) <= high(longint) is
    converted to a float

git-svn-id: trunk@13037 -
2009-04-25 11:40:02 +00:00
Jonas Maebe
045ae3ab69 o fixed r13033:
* test now tests both ansistring and widestring constants, instead of only
     ansistring
   * fixed writing of widestring constants to ppu file
   * fixed setting length of read widestring constants (don't only set maxlen)
   * handle cross-endian reading of widestring constants

git-svn-id: trunk@13034 -
2009-04-24 22:29:05 +00:00
Jonas Maebe
37a2cff8fb * fixed loading widestring constsym values from ppu files (mantis #13583)
* null-terminate loaded ansistring/resourcestring constants from ppu files

git-svn-id: trunk@13033 -
2009-04-24 21:36:01 +00:00
Jonas Maebe
8de8d4c29b * don't call FPC_CHECKPOINTER for references built from a LOC_CONSTANT
(mantis #13522)

git-svn-id: trunk@13031 -
2009-04-24 13:08:39 +00:00
Jonas Maebe
a6f20cdba9 * align the stack pointer to alignment.localalignmax, fixes crashes on
ARM EABI systems because of a missing 8 byte alignment (mantis
    #11595, #13391 and #13454)

git-svn-id: trunk@13030 -
2009-04-24 12:35:26 +00:00
Jonas Maebe
10158da60e * give an error when trying to use the offset of a non-byte-aligned field
of a bitpacked record in assembler code
  * convert the offsets of byte-aligned fields of bitpacked records from bits
    to bytes (mantis #13563)

git-svn-id: trunk@13027 -
2009-04-23 17:27:44 +00:00
Jonas Maebe
2465126f60 * also check that nested procedures don't have any nested procedures
of their own that are marked as inline, instead of only doing so
    for non-nested procedures (mantis #13553)

git-svn-id: trunk@13025 -
2009-04-22 15:12:42 +00:00
Jonas Maebe
02b14b2d5d * don't free deref info after using it, because it may be needed again
again later (in case of recompilations with circular unit references)
    (mantis #13323)

git-svn-id: trunk@13024 -
2009-04-22 14:52:27 +00:00
Jonas Maebe
a4bf91001e * fixed location_free() for locations consisting of multiple
physical registers
  * free the physical return registers at the caller side for 64 bit
    systems
  * make sure that we do not double-free registers in case a return
    value is not used (mantis #13536)

git-svn-id: trunk@13023 -
2009-04-20 18:57:49 +00:00
Jonas Maebe
626a723f8c * in {$h+} mode, always treat string constants as if they were ansistrings
when determining the result of string concatenations (mantis #13456)

git-svn-id: trunk@13004 -
2009-04-05 17:26:38 +00:00
Jonas Maebe
b2607e0d83 * refactored append_entry(), so that the code to append a single
attribute is available via the new append_attribute() method
    (to enable easily adding extra attributes)
  * write the definitions of methods as child entries of the
    objectdef, instead of in the global scope
  * only write DW_AT_calling_convention and DW_AT_external attributes
    if their value is different from the DWARF default one
  + write DW_AT_virtuality and DW_AT_vtable_elem_location attributes
    for virtual methods
  * write the debug info for the hidden "self" parameter before all
    other parameters and mark it as "artificial", because that is
    how GDB distinguishes regular methods from static methods

git-svn-id: trunk@13003 -
2009-04-05 16:12:10 +00:00
Jonas Maebe
b45482e979 + provisional DW_CC_GNU_borland_fastcall_i386 constant to identify
Borland's i386 calling convention (its value may still change)
* specify the calling convention of each procedure in the DWARF info
* don't add the function result twice or even thrice to the debug
  info, and don't add it at all to the parameter lists (even if it's
  a hidden parameter, gdb will automatically add it according to the
  ABI rules when calling the function)
-> calling "register" functions/procedures works with my experimental
   gdb patch (methods not yet tested, and probably won't work yet)

git-svn-id: trunk@12995 -
2009-04-02 22:21:27 +00:00
Jonas Maebe
40247d2d87 * give an error when the typeinfo() function is called for an enumeration
whose base is not 0, or that has jumps in its value range (manits #9551)

git-svn-id: trunk@12960 -
2009-03-22 20:54:49 +00:00
Jonas Maebe
624a7be9b1 * fixed internal error when a subscripted object is used in a property
(mantis #12756)

git-svn-id: trunk@12956 -
2009-03-22 16:21:06 +00:00
Jonas Maebe
5cf4ab7642 * always initialize/finalize global refcounted variables in units, also
when they are not used in the unit where they are defined (since they
    may be used elsewhere, discovered while analyzing mantis #13345)

git-svn-id: trunk@12954 -
2009-03-22 15:41:13 +00:00
joost
d4c2a35c75 * Use ExeSearch instead of FileSearch to find compiler executable
git-svn-id: trunk@12948 -
2009-03-22 10:03:03 +00:00
Jonas Maebe
a7e02c7948 * check validity of calling conventions specified using {$calling x}
(previously, this was only checked for calling conventions specified
     as a procedure directive)

git-svn-id: trunk@12944 -
2009-03-21 21:21:45 +00:00
Jonas Maebe
d61a09debf * assigment -> assignment in explanation of warning about uninitialized
variables

git-svn-id: trunk@12940 -
2009-03-21 16:15:20 +00:00
Jonas Maebe
36668a6ec5 * don't emit "include file search paths" for stabs since they don't exist
(and hence those directories were interpreted as source files themselves)
  + added -gostabsabsincludes option to make the compiler store absolute
    paths to include files in Stabs debugging information (since no
    search paths are used). This is not the default because it breaks
    when only the base path of an entire source tree changes (relative
    paths, which are the previous behaviour and the current default,
    work fine, but the absolute paths don't anymore; this can happen
    with shared network drives, and possibly with distros shipping
    external .dbg files)

git-svn-id: trunk@12933 -
2009-03-20 18:35:17 +00:00
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
c04e9e36f7 * set alignment for 0-byte sized entities to 1 instead of to 0
git-svn-id: trunk@12931 -
2009-03-20 16:26:06 +00:00
Jonas Maebe
c548ce30ba * replaced old DWARF CFI section notation for Darwin with new one (more
changes are required before it works for Darwin)

git-svn-id: trunk@12920 -
2009-03-19 14:22:26 +00:00
Jonas Maebe
d8aa5a1ff8 * set the node complexity of realconstn to 1 instead of the default (maximum)
git-svn-id: trunk@12919 -
2009-03-19 14:20:51 +00:00
Jonas Maebe
e9dedb7377 * disabled generation of DW_AT_low_pc/DW_AT_high_pc compilation unit
information for Win32, as it doesn't work there due to the way we
    name sections on that platform
   (http://lists.freepascal.org/lists/fpc-devel/2009-March/016591.html)

git-svn-id: trunk@12918 -
2009-03-19 10:02:09 +00:00
Jonas Maebe
41dcda600c * disabled the internal linker when using DWARF debug info (it doesn't
work correctly with DWARF)
  * only force the internal linker for STABS when generating relocatable
    output (rather than for all debugging formats)

git-svn-id: trunk@12917 -
2009-03-19 09:01:29 +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
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
c90ecac667 - disabled CFI again for Darwin, it doesn't work there yet
git-svn-id: trunk@12911 -
2009-03-17 19:03:33 +00:00
Jonas Maebe
173ca78a68 * removed superfluous "end of debug info" marker (zero-byte), about
which objdump complained

git-svn-id: trunk@12910 -
2009-03-17 18:42:00 +00:00
Jonas Maebe
c9af7d6476 * added tf_dwarf_only_local_labels for Windows (should make DWARF usable
on Windows, although there are still some warnings)

git-svn-id: trunk@12909 -
2009-03-17 17:07:17 +00:00
florian
b4953e3a50 * ignore $CONTROLLERTPYES marco on non-AVR/ARM platforms in msg files
git-svn-id: trunk@12908 -
2009-03-17 13:55:52 +00:00
florian
6e8a6790d1 + FPC_ARMEB and CPUARMEB similiar to FPC_ARMEL and CPUARMEL
git-svn-id: trunk@12907 -
2009-03-17 13:43:24 +00:00
Marc Weustink
0efd37a4c9 * enabled generation of dwarf frames for non x64 targets when dwarf debug info is requested
* renamed al_dwarf enum to al_dwarf_frame since this enum only enables frame generation
* renamed create_dwarf procedure for the same reason
* skipped check for dwarf support in assember, since we generate all dwarf info ourselves

git-svn-id: trunk@12906 -
2009-03-16 23:43:26 +00:00
Jonas Maebe
f54089a5e2 * encode the offset of absolute global variables in the symbol instead
of in the DWARF, as it's more efficient and avoids a gdb bug which
    occurs on some platforms (thanks to Jan Kratochvil for the tip,
    http://sourceware.org/ml/gdb/2009-03/msg00094.html )

git-svn-id: trunk@12905 -
2009-03-16 21:14:54 +00:00
Jonas Maebe
bfd753b7c9 - removed tf_dwarf_relative_addresses again, it causes differences
compared to the gcc-generated code (and removing it does not cause
    other differences). Partial revert of r12592.

git-svn-id: trunk@12904 -
2009-03-16 17:20:04 +00:00
Jonas Maebe
4e20c12326 * fixed compilation on x86_64 and ARM after r12891
git-svn-id: trunk@12903 -
2009-03-16 08:24:12 +00:00
Jonas Maebe
ab8b32dafb - removed PARAOUTFILE define and ifdefs
git-svn-id: trunk@12898 -
2009-03-15 12:31:02 +00:00
Jonas Maebe
a8eb1cc30b - removed FPC_DARWIN_JMP_MAIN and FPC_DARWIN_PASCALMAIN defines and ifdefs
git-svn-id: trunk@12897 -
2009-03-15 12:21:59 +00:00
Jonas Maebe
c6470a75e7 * do not disable smart linking when using DWARF debug information on Darwin,
because there it does work correctly
  * print a note if smart linking is disabled due to using DWARF

git-svn-id: trunk@12896 -
2009-03-15 12:16:45 +00:00
Jonas Maebe
cdc4933826 - removed accidentally committed change from previous commit
git-svn-id: trunk@12895 -
2009-03-15 12:07:49 +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
7e8343f6e2 * removed any use of pushleftright_pocalls for non-i386 platforms, since
they always use the same parameter pushing order
  * define the pushleftright_pocalls constant only for i386 so it cannot
    be accidentally used anymore for other platforms

git-svn-id: trunk@12891 -
2009-03-15 10:38:40 +00:00
florian
442333d05f * fixed string length which makes ObjC section names fit
git-svn-id: trunk@12889 -
2009-03-14 20:26:31 +00:00