http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50097
Bug #: 50097 Summary: Private base class enumeration Classification: Unclassified Product: gcc Version: 4.5.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: wolfgang.roe...@gi-de.com Hi all, I would like to post a bug report for the GNU C/C++ compiler version 4.5.2 (powerpc-rtems4.11). We use the compiler to generate code for a PowerPC processor. The compiler is invoked with the following options: ccppc -c -x c++ -ansi -Wall -Werror -g -mcpu=8540 -fverbose-asm -mbig -mfloat-gprs=double -mspe -mabi=spe -meabi -msdata -fno-common -mmultiple -mno-string -misel -mstrict-align -fgcse-sm -fno-rename-registers -fno-section-anchors -G 8 -Os -fno-exceptions -fno-rtti -I<some include paths> -D<some #define's> X.CPP -oX.O // file X.CPP class X { enum E { E1, E2 }; public: void f1 (E); }; template <typename T_> struct Y : private X { void f2 (); }; template <typename T_> void Y<T_>::f2 () { this->f1 (X::E1); } // <--- accessing private enum of X Y<int> y; void f3 () { y.f2 (); } The code compiles fine even though function Y<>::f2() accesses the private X::E1 enumerator. BTW, Comeau online rejects the code above. Kind regards W. Roehrl