Node:Fixed Bugs,
Previous:Planned Features,
Up:To Do
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.
Note: New features are not listed here anymore, see News.
- 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)
- 20030430: packed array/record fields don't work in
Read
etc. (tom5.pas)
- 20030430: file parameters must not automatically be bindable in
--extended-pascal
(fjf193[c-e].pas)
- 20030423: give an error rather than a warning when casting between types of different size in {$X-}
- 20030423: simplify code generated to compute size of dynamical variables if no bitfields are involved (ok with gcc-3)
- 20030422: initialized object variables don't work (fjf445*.pas)
- 20030422: declarations of a module interface are not visible in the implementation (kevin13.pas, mod12.pas) <Pine.BSI.3.96.971110210330.7570A-100000@malasada.lava.net>
- 20030422: detect invalid array slice access with constant indices at compile-time (peter2*.pas)
- 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)
- 20030421: check parameter and result variable names in repeated forward etc. declarations <20010321204051.A611@plato> (fjf284.pas, markus8.pas, fjf850*.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 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
goto
s into the constructor) (fjf835*.pas)
- 20030321: variables declared in interfaces of modules are not initialized (capacity of strings etc.) (daj3.pas, sven14c.pas, nick1.pas)
- 20030321: subranges whose size is exactly one or two bytes are not packed in packed arrays (daj14a.pas)
- 20030321:
prior parameter's size depends on `Foo'
with const
string parameters in module interfaces (fjf667.pas)
- 20030313: operators don't always work across units (fjf803.pas)
- 20030312: overloading
<=
, >=
, <>
and some certain words doesn't work (fjf789.pas, fjf794*.pas, fjf800.pas, fjf802.pas, fjf804.pas)
- 20030311: when passing a schema variable as an untyped argument, the whole schema, including the discriminants is passed (fjf798.pas)
- 20030302: discriminant identifiers as variant record selectors
- 20030227: GPC crashes when taking the address of local variables in an initializer (nicola4*.pas)
- 20030225: the warnings about uninitialized/unused variables don't work for strings, objects, etc. (fjf779*.pas)
- 20030221: gcc-2.95.x:
configure --silent
doesn't work (passes wrong options to sub-configures, so the subsequent make fails) (GCC bug; fixed in 3.x)
- 20030215: forward referencing pointers generate debug info that appears as generic pointers
- 20030202: count of parameters in error messages should not include
Self
in methods or internal parameters for conformant/open arrays <8F990E3D9A6FD1118F3B0000F81EA1D84985CE@exchsa2.dsto.defence.gov.au>
- 20030129: check for unresolved
forward
, interface and method declarations (az32.pas, fjf758*.pas)
- 20030129: several standard conformance bugs (az{1..24,26..42,44..46}*.pas, emil23*.pas)
- 20030126: some bugs with complicated schema usage (emil22*.pas, fjf750*.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)
- 20021027: classic Pascal does not know the empty string <Pine.LNX.4.44.0210181332470.29475-100000@duch.mimuw.edu.pl> (fjf693*.pas)
- 20021027: relational and exponentiation operators have no associativity <Pine.LNX.4.44.0210210807410.18095-100000@duch.mimuw.edu.pl> (fjf692.pas, fjf566[k-m].pas)
- 20021002:
gpc -Bdir
requires a trailing dir separator
- 20021001: constructors are accepted as the argument to
Dispose
(fjf674.pas)
- 20021001: align file fields in packed records on machines with strict alignment requirements (chief38*.pas)
- 20021001: bug on machines with strict alignment requirements <199906021618.MAA06228@sten27.software.mitel.com> (richard1.pas)
- 20020930: duplicate variable declarations are allowed
- 20020929:
attribute
s of variables are ignored (fjf673.pas)
- 20020929:
volatile
for external
variables without asmname
is ignored (fjf672.pas)
- 20020926: numbers with base specifiers are allowed as labels (fjf417*.pas)
- 20020923: System:
MemAvail
/MaxAvail
can go into an endless loop
- 20020920: the number of times the preprocessor is invoked by the automake mechanism might grow exponentially with the number of units involved <02091610572303.14626@dutw54.wbmt.tudelft.nl>
- 20020918: importing
StandardOutput
etc. in the interface of a module doesn't work (sietse2*.pas)
- 20020904: comparisons between signed and unsigned integers sometimes give wrong results (eike2.pas, fjf664.pas, martin5.pas)
- 20020903:
IOSelect
fails with file handles >= 8 on some systems (e.g., Solaris) (fjf663.pas)
- 20020831: GPC creates wrong debug info for many built-in types <200208280012.g7S0CWj07637@mail.bcpl.net>
- 20020827: comparisons of
packed
subrange variables don't work right (martin4[ab].pas)
- 20020824: operators defined in units don't always work (maur11.pas)
- 20020824: object methods that contain an ISO style procedural parameter forget the implicit
with Self do
(fjf662a.pas)
- 20020615:
if Pass[i] in 'A' .. 'Z'
makes GPC crash (miklos6.pas)
- 20020603: compiling a program (not a unit or module) with
--interface-only
or --syntax-only
segfaults (waldek1.pas)
- 20020603:
--nested-comments
fails without -Wall
(waldek2.pas)
- 20020514: powerpc:
--strength-reduce
doesn't work with for
loops [kludged now]
- 20020514: guarantee complete evaluation in
{$B+}
mode (fjf552*.pas)
- 20020514: spurious warning with
for
loops using a ByteCard
counter (toby1.pas)