Commit Graph

11022 Commits

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

git-svn-id: trunk@12870 -
2009-03-08 18:40:32 +00:00
Jonas Maebe
da461c5154 * fixed calling static class methods from inside other static class methods
git-svn-id: trunk@12866 -
2009-03-08 12:38:02 +00:00
Jonas Maebe
0af39c77d9 * counterpart of r12844 for storing elements to a bitpacked array:
do not access any data after the array in that case either
  * adapted tparray7 so it checks this on unix platforms

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

git-svn-id: trunk@12844 -
2009-03-01 13:33:34 +00:00
Jonas Maebe
273e1f54c9 * fixed parsing of typed constant bitpacked arrays where the element's
packed bit size is divisible by 8, but its packed byte size is not a
    power of 2

git-svn-id: trunk@12843 -
2009-03-01 13:13:04 +00:00
yury
afa7ade545 * Replace ? and @ in external names only if the external is imported from DLL on Windows.
Also @ character is allowed in symbol names by GNU AS for x86.

git-svn-id: trunk@12842 -
2009-03-01 12:24:53 +00:00
yury
1658ca9919 * Initialize controllertype field to eliminate warning.
git-svn-id: trunk@12841 -
2009-03-01 11:46:16 +00:00
yury
b3b538e215 * Removed unused local vars.
git-svn-id: trunk@12840 -
2009-03-01 11:44:15 +00:00
Tomas Hajny
29f0a1096c * add reference to the bug tracker rather than just an e-mail address
git-svn-id: trunk@12833 -
2009-02-28 23:13:36 +00:00
florian
f49f148e01 + commented why wrappers for cdecl'd methods use subl/call/subl/ret instead of subl/jmp
git-svn-id: trunk@12829 -
2009-02-28 20:37:01 +00:00
florian
67d1604c49 * handle interface methods with cdecl modifier correctly, second and final part to resolve #10684
git-svn-id: trunk@12828 -
2009-02-28 20:28:33 +00:00
florian
cc622779c9 * set size of nil constants casted to method pointers correctly, first part of resolving #10684
git-svn-id: trunk@12827 -
2009-02-28 20:01:58 +00:00
Jonas Maebe
fd070544db - disabled installation of SIGINT signal handler for Darwin, because
raising an exception inside a signal handler is inherently unsafe
    and often causes actual crashes on darwin (mantis #9930).
  - removed an unused global typed constant (in_const_evaluation)
  - removed {$ifdef havelinuxrtl10} code

git-svn-id: trunk@12826 -
2009-02-28 18:07:21 +00:00
Jonas Maebe
4bf254bc32 * added .txt extensions to all README, TODO and COPYING files
(mantis #12358)

git-svn-id: trunk@12825 -
2009-02-28 17:34:08 +00:00
Jonas Maebe
e36352bf9e * store path information for source files in stabs debug info
(mantis #13248)

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

git-svn-id: trunk@12810 -
2009-02-27 17:05:41 +00:00
florian
f97730f73f * use labelCanBeSkipped as used by i386 in generic optimizer code too
git-svn-id: trunk@12807 -
2009-02-27 13:03:12 +00:00
florian
91dcb722a2 + optimization of sequential ands
git-svn-id: trunk@12806 -
2009-02-27 12:59:08 +00:00
florian
20db8dc978 * handle case tables correctly when inserting pc relative data
git-svn-id: trunk@12805 -
2009-02-27 12:58:18 +00:00
Jonas Maebe
eb40758e9c * updated target list (arm-darwin)
+ added support for ibresources, ibwpofile, ibmainname, iblinkotherframeworks
  * fixed reading of tobjectdef since we started storing the vmt entries as
    part of the objectdef, and since the addition of df_copied_def and 
    po_dispid
  * fixed/completed various copies of enums in symconst/globtype
  + added note to "uses" clause about why we don't just use those units
    (to save people from making the same mistake as me, realising it, and
     having to change everything back)

git-svn-id: trunk@12803 -
2009-02-26 22:50:22 +00:00
florian
eaba28bbf1 * less code commented
git-svn-id: trunk@12792 -
2009-02-25 19:41:30 +00:00
florian
cb9a0f2196 * msg files updated after last commit
git-svn-id: trunk@12790 -
2009-02-25 15:44:54 +00:00
florian
d511f8d84e * year of copyright updated
git-svn-id: trunk@12789 -
2009-02-25 15:44:20 +00:00
florian
694f563079 * fixed assembler tables for sse4 instructions, resolves #13186
git-svn-id: trunk@12787 -
2009-02-24 20:07:11 +00:00
florian
1bc505b622 * replaced PATHSEP by / for instruction and register table generation
git-svn-id: trunk@12786 -
2009-02-24 19:57:40 +00:00
florian
6911b70dc4 + write/read alignment to ppu for explicit parameter locations
git-svn-id: trunk@12765 -
2009-02-21 22:59:58 +00:00
Jonas Maebe
3dd32daa03 * always create a temp for MacPas objects in with-expressions (mantis
#13210)

git-svn-id: trunk@12753 -
2009-02-19 22:43:59 +00:00
Jonas Maebe
e58d8d6b92 * set maximum alignment of shortstrings to 2 in MacPas mode
(mantis #13187)

git-svn-id: trunk@12745 -
2009-02-16 18:57:26 +00:00
Jonas Maebe
976aa04378 * fixed ppc/ppc64 compilation after r12719
git-svn-id: trunk@12730 -
2009-02-09 09:47:02 +00:00
ivost
0438667eed * fixed bug #5800
* const s: string = icorbainterface; is possible now
* as operator is working now with corba interfaces
* supports helper function is working now with corba interfaces

git-svn-id: trunk@12729 -
2009-02-09 00:35:09 +00:00
Tomas Hajny
54f3d28ce8 * prefix for import libraries now configurable rather than hardcoded, plus fixed issue with name of OS/2 import libraries
git-svn-id: trunk@12727 -
2009-02-09 00:01:15 +00:00
Jonas Maebe
549f1ecc1b * when using overloaded functions in Delphi mode without the "overload"
directive, state that "overload" is missing rather than that
    overloading is disabled (mantis #10081)

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

git-svn-id: trunk@12719 -
2009-02-08 13:00:24 +00:00
Jonas Maebe
73a394bca6 * fixed class cast error
git-svn-id: trunk@12718 -
2009-02-08 12:59:31 +00:00
Jonas Maebe
a4cc881693 * fixed compilation after addition of support for weak symbols
git-svn-id: trunk@12716 -
2009-02-08 10:21:17 +00:00
Jonas Maebe
9b790edd4f * fixed parsing of "var x: <type> absolute <value>;" on 64 bit platforms
(tests/tbs/tb0350)

git-svn-id: trunk@12715 -
2009-02-08 09:00:49 +00:00
Tomas Hajny
7bb670800d * -Ratt removed from default fp.cfg - it is not necessary and makes troubles under sparc
git-svn-id: trunk@12714 -
2009-02-08 01:00:02 +00:00
Jonas Maebe
31756489a2 * now range check error also fixed for 64 bit targets
git-svn-id: trunk@12712 -
2009-02-07 23:03:29 +00:00
Jonas Maebe
4e1859e108 * fixed spilling of "mov $64bitconst,%reg" on x86_64
git-svn-id: trunk@12711 -
2009-02-07 22:57:59 +00:00
Jonas Maebe
0a14c8824e * fixed invalid class typecasts in rol/ror handling
git-svn-id: trunk@12703 -
2009-02-07 21:21:43 +00:00
Jonas Maebe
1c82b105fa * fixed (harmless) range check error
git-svn-id: trunk@12701 -
2009-02-07 20:43:18 +00:00
Jonas Maebe
c4310a6f08 * replaced invalid {$STACKSIZE } directive with {$MINSTACKSIZE }
git-svn-id: trunk@12697 -
2009-02-06 20:04:11 +00:00
Jonas Maebe
ae45a80d46 * allow the usage of symbolic constants to specify the "stored" attribute
of properties (mantis #10492). Not really clean (and Delphi supports
    full expressions, e.g. also "(const1=const2)"), but cannot do better
    without rewriting the complete symlist parsing to use parse trees instead
    of parser tokens as input

git-svn-id: trunk@12696 -
2009-02-06 19:54:29 +00:00
ivost
0f519439b5 * reverted r12690 and r12691
* but extended ptconst so that a com interface maybe assigned to a TGuid const

git-svn-id: trunk@12692 -
2009-02-06 02:56:13 +00:00
ivost
c61a0784cb * assign an Interface to TGuid was not possible (const Guid: TGuid = IUnknown)
git-svn-id: trunk@12690 -
2009-02-06 01:01:59 +00:00
yury
89d466a3dc * Fixed writing debug link for external symbols file. Bug #13041.
git-svn-id: trunk@12686 -
2009-02-05 11:44:52 +00:00
florian
acb06dac1b + Wp<Controllertype> support for arm and avr
git-svn-id: trunk@12664 -
2009-02-02 20:16:25 +00:00
florian
9869a2b29d * set stacksize in the main program, it makes no sense to set it in fpcdefs.inc and parse it a zillion times
* use maxstacksize to set stacksize on windows

git-svn-id: trunk@12649 -
2009-02-01 18:29:58 +00:00