11.3 Problems that have been solved

This section lists the bugs fixed since the last (non alpha/beta)
GPC release, together with the date (YYYYMMDD) on which they were
fixed, so you can check if some problem has already been solved in a
recent release or developer version. For new features, see
News.

20050325: check initializers of unused types (fjf898*.pas)

20050325: check identifier scopes stricter (az25.pas, fjf1059*.pas)

20050321: in --borland-pascal give only a warning, not an error, for duplicate case elements (drf6*.pas)

20050117: pow, Trim, Card, set operations (-, *, ><) and comparisons as well as string comparisons and array slices with constant arguments cannot be used in constants (fjf998*.pas, fjf1000*.pas, fjf1009*.pas)

20050117: ParamStr evaluates its argument twice (fjf963b.pas)

20050106: user-defined operators must not be applied to implicit operations (fjf991.pas and many other cases)

20041203: accessing components of a constant (EP) constructor (indexed by a constant for arrays) must yield a constant again (dave3*.pas)

20041202: GPC crashes when using two variables with identically-named fields in a single with statement (withbug.pas)

20041124: applying not to a function result in parentheses doesn't work (avo6.pas)

20041123: packed array indices containing mod don't work (avo4.pas)

20041120: GPC sometimes prints ??? instead of the actual file name in messages

20041028: function results (of record type) must not be allowed as with elements (only a warning in --delphi and --mac-pascal modes for compatibility); fields of non-lvalue with elements must not be lvalues either (fjf493*.pas)

20041022: value parameters of type String (undiscriminated) must take the capacity of the actual parameter, according to EP (waldek11*.pas)

20041021: initialized types in arrays (fjf233.pas, fjf974*.pas)

20041020: initializers are ignored in New and Initialize (fjf967[j-l].pas)

20041020: the address of global routines is not allowed in initializers (avo2*.pas)

20041015: Index and Pos cannot be used in constant expressions (fjf970*.pas)

20030604: compensate for parser read-ahead in the lexer, so compiler directives don't become effective too early and error messages refer more closely to the correct source position

20030603: bug when dividing two integers with / (fjf481.pas)

20030509: don't allow absolute in type definitions

20030502: subranges with variable limits (couper[23].pas)

20030502: Sparc with gcc-2.95.x: goto jumping out of two procedure nesting levels doesn't work (GCC bug; fixed in gcc-3) <200111170922.KAA09125@goedel.fjf.gnu.de> (fjf558[op].pas) (fixed with gcc-3 or when using --longjmp-all-nonlocal-labels)

20030502: the parser does not always recover well after a parse error <199911040915.KAA11168@humulus.daimi.au.dk> (fixed the case given in this report; if there are other cases, please report)

20030501: detect conflicts between object fields and local variables in methods

20030421: automatically close dynamically allocated files on Dispose and files declared in a statement block at the end of the statement block <6r9ir5$7v5$1@nntpd.lkg.dec.com> (fjf219[a-d].pas, fjf502.pas)

20030421: initialize local static variables in the main constructor, not in each routine call (fjf458*.pas)

20030417: modifying for-loop counters within the loop or in a subroutine is not allowed <200005240807.EAA05355@mail.bcpl.net>, <Pine.LNX.4.44.0210281004000.31943-100000@duch.mimuw.edu.pl> (az47.pas, fjf837*.pas)

20030417: possible stack overflow when using string concatenation in a loop (fjf419*.pas, fjf345e.pas, fjf460b.pas) – breaks berend3.pas (less important because strange test case, and just another instance of existing contourbug.pas)

20030416: some functions in boolean shortcuts are always called (fjf226*.pas)

20030414: label declarations must not be allowed in unit/module interfaces and module implementations (but in unit implementations, BP compatible, though we don't allow nonlocal gotos into the constructor) (fjf835*.pas)

20030122: subtraction of unsigned types with a negative result doesn't work (ml4.pas)

20021229: declaring huge enum types and exporting subranges of them is very slow (quadratic time behaviour); some bugs regarding exporting of subranges (fjf736*.pas)

20021213: Linux: crtscreen should react to SIGWINCH

20021120: Card doesn't work with set constructors; Include and Exclude should not accept set constructors (eike3*.pas)

20021105: type initializers are not type-checked until a variable of the type is declared (fjf704.pas); with gcc-2.x: bug when variables of a type with initializer are declared locally in more than one routine (couper13.pas)

20021105: packed object should not be allowed (fjf703.pas)

20021101: bug when replacing a non-virtual method by a virtual one in a descendant object type (fjf702.pas)