12.1 Known bugs in GPC
In the following sections, you can find information about GPC bugs
that are known to the developers. The list always corresponds to the
latest developer versions of GPC, usually not to the latest official
distribution.
If you encounter a bug with GPC, please check whether it is one of
the known bugs. If not, report it to the GNU Pascal mailing list.
(But always report if you solve the problem! :-)
Entries will be removed from the list as soon as the problem is
solved in the developers' current GPC version. (Exception: If we
can't reproduce the problem, but someone else can, the entry will be
removed when we hear from this person that the problem is solved.)
Problems which are announced to be solved, but for which we (or the
person who can reproduce the problem) did not get the proof (i.e., a
GPC source patch) yet, are marked `(ok)'.
A message ID (like `<42@foo.bar>') refers to a message in the
GPC mailing list (or a newsgroup, denoted with `news:') where
the topic was discussed (often a bug report). A note of the form
`(xy20001231)' refers to an internal message of the GPC
developers. A file name like `(foo42.pas)' refers to the
according program in the GPC test suite included in the GPC source
distribution.
- give a warning rather than an error (and nothing in `--borland-pascal') when assigning/passing by value an object of derived type to one of a base type (and change the VMT pointer in the destination/actual parameter), don't change the VMT pointer when assigning to a polymorphic object (chief35[ab].pas), don't allow value parameters of abstract types, handle value parameters like variables in `is'/`as'
- possible stack overflow when using string concatenation in a loop, and problem with string concatenation and `goto' (contourbug.pas, martin1.pas, fjf419.pas)
- `setlimit' is applied when it shouldn't be ((a) variable/constant declarations, (b) `set of ShortCard', (c) constant sets)
- the capacity of strings declared in interfaces of modules is not initialized (daj3.pas, sven14c.pas)
- (subrange) components of packed arrays should be packed as well (but not other types) (daj14[ab].pas)
- initializers of packed arrays don't work (emil5.pas)
- some functions in boolean shortcuts are always called (fjf226[a-\infty].pas)
- arithmetic expressions don't work as lower array/subrange bounds (fjf248.pas)
- global dynamic variables don't work (john1.pas)
- check for using, incrementing, ... unused variables <199711270257.VAA06393@mint.mint.net> (kevin2.pas), especially for strings, also for `for'-loop counters after the loop (EP 6.8.1) and modifying `for'-loop counters within the loop or in local routines <200005240807.EAA05355@mail.bcpl.net>
- types declared in a module interface are not visible in the implementation (kevin13.pas, mod12.pas)
- declaring a procedure in the implementation with the same name as an imported procedure doesn't work (chief18.pas), detect name collisions between imported EP modules (mod9.pas)
- packed array/record fields don't work in `Read' etc. (tom5.pas)
- dynamic sets don't work (->PPS)
- there are some bugs with mathematical functions; GPC fails, for example, the Paranoia test
- the compiler does not always recover well after a parse error <199911040915.KAA11168@humulus.daimi.au.dk>
- 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>
- bug on machines with strict alignment requirements <199906021618.MAA06228@sten27.software.mitel.com>
- forward referencing pointers generate debug info that appears as generic pointers; no information of `with' statements is currently given to the debugger
- check parameter names in repeated forward etc. declarations <20010321204051.A611@plato>
- check that all routines declared in an interface are implemented in the corresponding implementation
- the warnings about uninitialized/unused variables don't work for strings, sets, etc.
- Sparc with gcc-2.95.x: `goto' jumping out of two procedure nesting levels doesn't work (GCC bug; fixed in 3.0.1) <200111170922.KAA09125@goedel.fjf.gnu.de> (fjf558[op].pas) (-> `Trap' unit)
- AIX: `ReturnAddress' doesn't work after use of dynmamic variables (GCC bug)
- powerpc: `--strength-reduce' doesn't work with `for' loops (ok?)
This document was generated
by Frank Heckenbach on May, 10 2002
using texi2html