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