Commit Graph

11375 Commits

Author SHA1 Message Date
giulio2
58eb923ff5 Allow negative offset in segment:offset declarations, if the resulting
address is valid (fixes webtbs/tw1622.pp on go32v2).

git-svn-id: trunk@14100 -
2009-11-07 14:38:13 +00:00
paul
e520a2b941 compiler: for-in loop: fix temporary array range type
git-svn-id: trunk@14095 -
2009-11-07 10:56:54 +00:00
paul
cc8f91f2d0 compiler: allow enumeration of multidimensional arrays with implicit array conversion + test
git-svn-id: trunk@14093 -
2009-11-07 06:21:07 +00:00
pierre
d12c36ee32 * add to missing CPUs
git-svn-id: trunk@14090 -
2009-11-07 00:23:04 +00:00
paul
aa357a5f3b compiler: fix error message positions for the for-in loop errors
git-svn-id: trunk@14088 -
2009-11-06 17:52:42 +00:00
paul
e511555d64 compiler: fix position information of the for-in loop (needs for correct debug info)
git-svn-id: trunk@14087 -
2009-11-06 17:42:55 +00:00
pierre
b9a8592a11 * fix problem when svn is not found and add phony revision rule
git-svn-id: trunk@14085 -
2009-11-06 16:46:48 +00:00
pierre
fec158cfdf * Remove FORCE for revision.inc target, correct rule
git-svn-id: trunk@14084 -
2009-11-06 15:10:56 +00:00
pierre
a977607e49 + revision.inc rule added
git-svn-id: trunk@14083 -
2009-11-06 14:47:32 +00:00
pierre
3f28cfafe2 * Only update revision.inc if it is already present
git-svn-id: trunk@14079 -
2009-11-06 11:13:42 +00:00
pierre
2295a9f23b * add -dREVINC even when REVSTR is already set, needed for cycle
git-svn-id: trunk@14077 -
2009-11-06 10:34:24 +00:00
pierre
b6d0a93599 * Fix REVSTR for windows OS
git-svn-id: trunk@14076 -
2009-11-06 10:18:07 +00:00
pierre
9bd672b3e4 * Use SRCEXEEXT for svnversion as EXEEXT is for target and not defined in prerules
git-svn-id: trunk@14075 -
2009-11-06 09:35:16 +00:00
pierre
a0159a9740 * Adapt script to DJGPP 2.04
git-svn-id: trunk@14073 -
2009-11-06 00:13:42 +00:00
Jonas Maebe
c1cdf1e087 * merged objc branch:
+ basic support for Objective-Pascal: objcclass, objcprotocol,
      objcselector on all Darwin platforms (ppc32/64, i386, x86_64, ARM),
      see http://wiki.freepascal.org/FPC_PasCocoa and
      http://wiki.freepascal.org/FPC_PasCocoa/Differences for some dialect
      details. Use {$modeswitch objectivec1} to activate
    + Cocoa, iPhone/UIKit and WebKit interfaces for use with the new
      syntax mode

git-svn-id: trunk@14068 -
2009-11-05 16:48:28 +00:00
paul
5c660680b7 compiler: don't allow for-in loop for the enums with jumps. test should fail.
git-svn-id: trunk@14067 -
2009-11-05 15:37:07 +00:00
paul
eee6658a46 revert occasionally committed pp.lpi
git-svn-id: trunk@14064 -
2009-11-05 03:34:06 +00:00
Jonas Maebe
a60869fe64 + support for Objective-C classes/protols/options
git-svn-id: branches/objc@14050 -
2009-11-04 16:45:14 +00:00
Jonas Maebe
102a2a4796 * changed "optional" field (which denotes whether an objc protocol method is
required or optional) into a procoption flag
  * reordered some procdef fields to have less wasted space due to alignment

git-svn-id: branches/objc@14049 -
2009-11-04 16:29:39 +00:00
Jonas Maebe
559e284bd0 * merged r13762-14047 from trunk
git-svn-id: branches/objc@14048 -
2009-11-04 15:50:26 +00:00
paul
cfa89b009f compiler: check that method marked by 'enumerator MoveNext' have no required arguments. correct error message.
git-svn-id: trunk@14045 -
2009-11-04 13:33:57 +00:00
paul
2f0cde4625 compiler:
- don't find MoveNext functions with the required arguments
  - add some test from Alexander S. Klenin
(issue #0014990)

git-svn-id: trunk@14044 -
2009-11-04 13:21:10 +00:00
paul
5f7bc2d3b5 compiler:
- don't allow operator enumerator with non object/class/interface result type
  - add some test from Alexander S. Klenin
(issue #0014990)

git-svn-id: trunk@14043 -
2009-11-04 12:59:05 +00:00
paul
61ec5e1417 compiler:
- fix for-in loop for empty sets
  - add some test from Alexander S. Klenin
(issue #0014990)

git-svn-id: trunk@14042 -
2009-11-04 12:25:01 +00:00
paul
5752be310d compiler:
- fix for-in loop for string const array
  - add some test from Alexander S. Klenin
(issue #0014990)

git-svn-id: trunk@14041 -
2009-11-04 12:07:42 +00:00
marco
ac5552cec0 * German msg files from KMS, mantis 14966
git-svn-id: trunk@14009 -
2009-11-02 20:15:14 +00:00
paul
aa5a5e79ce merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994:
rtl: add enumerators to the basic classes
tests: add enumerators test which compiles and work both by fpc and dcc
compiler: 
  + start for-in loop implementation: implement for-in loop for types (enumerations and ranges), strings, arrays and sets. todo: perform type checking, optimize array and string loops - use temp for expression, implement for-in loop for classes
test:
  + add a simple test for the 'for-in' loop
compiler: fix string for-in loop. now it uses a temp variable to store string expression result
complier: fix for-in array loop. use a temp variable for the loop expression only if loop is not an open array loop
complier: continue enumerator implementation:
  + add operator enumerator which give an ability to add enumerator for an existent type (for example to override builtin string enumerator)
  + add class enumerator support via delphi compatible GetEnumerator method + enumerator class/object template (function MoveNext: Boolean; property Current)
  + tests
compiler: fix for-in loop for arrays. delphi does not copy arrays to a temp variable and it is possible to change array during loop. + test
compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class
compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class
compiler: enumerator directive support:
  + allow to mark methods and properties by 'enumerator MoveNext' and 'enumerator Current' modifiers. Parser checks return types and duplicates.
  + prefer *marked* by enumerator directive methods and properties than GetEnumerator and Current builtin symbols
  + increase ppu version
  + test
rtl: add IEnumerator and IEnumerable interfaces declarations
tests: for-in loop tests:
  + add small comment at the top of test program
compiler: allow 'enumerator MoveNext' for the interface function declaration + test
compiler: move all for-in loop helpers to the nflw unit
compiler: don't allow the compiler to choose the non-valid enumerator operator for the for-in loop

git-svn-id: trunk@14008 -
2009-11-02 03:24:48 +00:00
Jonas Maebe
8d65471fe2 * give a proper error when trying to use val() on a boolean (mantis #14777)
* don't allow a boolean or (wide)char to be used as the "error" parameter
    for val()

git-svn-id: trunk@14006 -
2009-11-01 17:18:40 +00:00
paul
dfef902c53 rtl: introduce new TObject methods: UnitName, GetHashCode, Equals, ToString added for compatibility with delphi 2009.
+ changes in compiler, utils, packages to resolve identifier conflicts with the new TObject methods (like changing of UnitName arguments to AUnitName, adding Classes. before the toString, etc). (issue #0014931)

git-svn-id: trunk@14005 -
2009-11-01 16:22:47 +00:00
paul
dfdfec0201 compiler: don't write zero ClassInfo pointer even if class does not have published methods rtti (issue #14930)
git-svn-id: trunk@14004 -
2009-11-01 16:01:23 +00:00
Jonas Maebe
3e624d990d * only allow one "message" modifier per method declaration (mantis #14946)
git-svn-id: trunk@14001 -
2009-11-01 15:23:57 +00:00
paul
a901cd3e91 compiler: don't select non-valid assignment operator (have more than 1 argument) since this cause an internal error (bug #0014962)
git-svn-id: trunk@13998 -
2009-11-01 14:41:33 +00:00
paul
e784ec1079 merge revisions 13898-13899:
- compiler: allow message after the *deprecated* keyword
 - compiler: raise an internal error if deprecated message is trying to set to a non clear string pointer

git-svn-id: trunk@13997 -
2009-11-01 14:06:30 +00:00
Jonas Maebe
d61eb3528f * make strict string var checking ({$v+}) the default in TP and Delphi modes
(mantis #14929)

git-svn-id: trunk@13966 -
2009-10-29 15:52:14 +00:00
Jonas Maebe
643cbaf3b6 * made internalerror unique
git-svn-id: trunk@13964 -
2009-10-29 15:35:00 +00:00
Jonas Maebe
dd937bd32d * don't crash when looking for a local/parasym while current_procinfo is
nil, such as while parsing a property definition (mantis #14849)

git-svn-id: trunk@13958 -
2009-10-26 13:48:58 +00:00
florian
292b36205a -- Zusammenführen von r13892 in ».«:
A    tests/test/tsymlibrary1.pp
U    compiler/msgtxt.inc
U    compiler/msgidx.inc
U    compiler/htypechk.pas
U    compiler/msg/errore.msg

git-svn-id: trunk@13953 -
2009-10-25 08:58:22 +00:00
florian
ea00759588 + final modifier support for methods by Paul Ishenin
-- Zusammenführen von r13887 in ».«:
A    tests/test/tfinal1.pp
U    compiler/msgtxt.inc
U    compiler/msgidx.inc
U    compiler/pdecsub.pas
U    compiler/tokens.pas
U    compiler/symconst.pas
U    compiler/msg/errore.msg
U    compiler/utils/ppudump.pp
-- Zusammenführen von r13890 in ».«:
G    compiler/msgtxt.inc
G    compiler/msgidx.inc
U    compiler/nobj.pas
G    compiler/msg/errore.msg
-- Zusammenführen von r13891 in ».«:
A    tests/test/tfinal2.pp

git-svn-id: trunk@13938 -
2009-10-24 11:48:52 +00:00
Jonas Maebe
fffa66e2f9 * only allow implicit conversions from 0 to NIL in Delphi mode, rather than
from any ordinal constant, and give a warning for this one allowed
    conversion like Kylix does (mantis #14713)
  * this required calling simplify from typecheckpass in ttypeconvnode for
    cord_to_pointer, because this simplification prevents the type checking
    from happening (but the typecheck itself also does that simplification)

git-svn-id: trunk@13919 -
2009-10-22 19:49:08 +00:00
Jonas Maebe
7e0a5aec4c * allowed open "packed" arrays (same as regular open arrays, for
compatibility with some other Pascal compilers) (mantis #14812)

git-svn-id: trunk@13918 -
2009-10-22 19:48:35 +00:00
Jonas Maebe
2723c55403 * fixed DWARF info for some methods after r13833: reset the debuginfo for
procdefs after writing it, so that it can be written multiple times in
    different units. It was only written once now, namely the first time it
    was used. If this occurred before the implementation had been parsed, then
    no info about low/high pc was written for this procdef.
  * checking whether procstarttai is assigned is not a good way to determine
    whether or not a procdef is defined in the current unit (it can also be
    set if we are in the middle of parsing a uses clause, since all procdefs
    are only reset afterwards). Check whether the parent static/globalsymtable
    "iscurrentunit" instead.

git-svn-id: trunk@13912 -
2009-10-19 20:03:37 +00:00
florian
eb433d1bdd * merged sealed and abstract support by Paul Ishenin
-- Zusammenführen von r13884 in ».«:
U    compiler/msgtxt.inc
U    compiler/msgidx.inc
U    compiler/pdecsub.pas
U    compiler/pdecobj.pas
U    compiler/tokens.pas
U    compiler/ppu.pas
U    compiler/symconst.pas
U    compiler/msg/errore.msg
U    compiler/utils/ppudump.pp
-- Zusammenführen von r13885 in ».«:
A    tests/test/tsealed1.pp
A    tests/test/tabstract1.pp
A    tests/test/tsealed2.pp
-- Zusammenführen von r13893 in ».«:
A    tests/test/tsealed3.pp
A    tests/test/tsealed4.pp

git-svn-id: trunk@13908 -
2009-10-18 20:05:29 +00:00
sergei
2fe34085b1 * Missing percent in russian messages, Mantis 14772
git-svn-id: trunk@13834 -
2009-10-10 14:25:06 +00:00
Jonas Maebe
dce9b3849b * fixed mantis #14729:
o add accessibility info for fields and methods (public/protected/private)
    o write method type info for methods not implemented in the current module
      (for tf_dwarf_only_local_labels systems)

git-svn-id: trunk@13833 -
2009-10-10 10:53:18 +00:00
florian
b8a83fd997 * allow reintroduce for objects, resolves #14743
git-svn-id: trunk@13832 -
2009-10-10 10:14:49 +00:00
florian
44aed2af60 o patch by Michael Denisenko, resolves #14734:
* fixes memory leaks in case of string code
  * replace usage of strcmp
  * improved tests

git-svn-id: trunk@13830 -
2009-10-09 20:40:22 +00:00
florian
00049897b3 + support & to escape keywords being a solution for #14553
git-svn-id: trunk@13825 -
2009-10-09 16:06:36 +00:00
sergei
5e6bc7d36c * Also updated errorr.msg, cp866 encoding is needed for Windows console.
git-svn-id: trunk@13815 -
2009-10-07 17:43:44 +00:00
sergei
337d0b1b21 Updated Russian message file, and changed cp1251 encoding to UTF-8.
git-svn-id: trunk@13814 -
2009-10-07 17:36:27 +00:00
Jonas Maebe
da58a01ce6 * fixed stabs debug information for parameters copied into local variables
(fixes displaying value shortstring parameters on SPARC, as reported on
     fpc-devel mailing list on 20091005 by Mark Morgan Lloyd)

git-svn-id: trunk@13813 -
2009-10-06 13:51:16 +00:00