GPC Question (or bug)
Thu, 22 May 1997 16:20:54 -0400 (EDT)
I've ran into a problem compiling separate UNITS using
"borland-pascal" style syntax. Essentially individual
elements in an ENUM declared in an INTERFACE are not
"recognized" by gpc-2.0:
testunit1.pas:
UNIT TestUnit1;
INTERFACE
TYPE
Wood = (Oak, Pine, Beech, Teak);
Fruit = (Apples, Peaches, Lemons);
CONST
Oranges = Teak;
PROCEDURE CheckFruit ( FruitType : Fruit );
IMPLEMENTATION
PROCEDURE CheckFruit ( FruitType : Fruit );
BEGIN
CASE FruitType OF
Apples : Writeln ('Apples');
Peaches : Writeln ('Peaches');
Lemons : Writeln ('Lemons');
END;
END;
END.
compiles with no errors.
testunit2.pas:
UNIT TestUnit2;
INTERFACE
USES TestUnit1;
PROCEDURE UseFruit;
IMPLEMENTATION
PROCEDURE UseFruit;
BEGIN
CheckFruit (Apples);
CheckFruit (Peaches);
CheckFruit (Lemons);
CheckFruit (Oranges);
END;
END.
yields:
testunit2.pas: In function `Usefruit':
testunit2.pas:13: undeclared identifier `Apples' (first use this
function)
testunit2.pas:13: (Each undeclared identifier is reported only
once
testunit2.pas:13: for each function it appears in.)
testunit2.pas:14: undeclared identifier `Peaches' (first use this
function)
testunit2.pas:15: undeclared identifier `Lemons' (first use this
function)
It's interesting that "Oranges" is recognized since it is a
const. I assume no "type cast" error is reported since full
pascal type/range checking is not as yet implemented.
Does anyone know of a fix or work-around for this? We're trying
to port some code still in production and are stuck with a 10
year old compiler from Silicon Valley Software (now defunct).
Thanks;
Phil
-------------------------------------------------------------------------
Philip A. Robertson Gilbarco Inc. F-78
Phone (910) 547-5164 7300 W. Friendly Ave
Fax (910) 292-8871 Greensboro, NC 27410
-------------------------------------------------------------------------
Phil Robertson (phil_robertson@gilbarco.com)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es