[gnu.g++.bug] A problem with typedef'ed enums

ojr@itk.unit.no (07/04/89)

I'm not quite sure if this is a bug, but anyway:

If I use typedefs in enum declaration the compiler has problems when
generating overloaded function symbols. The problem goes away if I use
an enum declaration of the type:

enum e1 {e11, e12};

-----------------------------------------------
Configuaration:

config.g++ sun3-os4
g++ version 1.35.1-
SUN3
SUNOS 4.0.1

-----------------------------------------------
Repeat by:
cat > test1.h <<EOF1
typedef enum { e11, e12 } e1;
EOF1
cat > test2.h << EOF2
typedef enum { e21, e22 } e2;
EOF2
cat > test1.cc << EOF3
#include "test2.h"
void p(e2);
overload func;
void func(e2 i)
{
}
EOF3
cat > test2.cc <<EOF4
#include "test1.h"
#include "test2.h"
overload func;
void func(e2);
main()
{
    func(e21);
}
EOF4
cat > doit <<EOF5
g++ -c test1.cc
g++ -c test2.cc
g++ test1.o test2.o
nm test1.o test2.o
EOF5

------------------------------------------------
Running the script gives:
sh doit
test2.o: Undefined symbol _func_E$_1 referenced from text

test1.o:
00000000 T _func_E$_0
00000000 t gcc_compiled.

test2.o:
         U _func_E$_1
00000000 T _main
00000000 t gcc_compiled.

Compilation finished at Mon Jul  3 17:56:11

Ornulf Jan Rodseth				Telephone
SINTEF Dep. of Automatic Control		(+47 7) 594351 Direct
N-7034 TRONDHEIM				(+47 7) 594375 Switchboard
NORWAY						(+47 7) 594399 Fax

ojr%regtek.unit.uninett@tor.nta.no (EAN)	ojr@itk.unit.no (ARPA)