This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/50097] New: Private base class enumeration
- From: "wolfgang dot roehrl at gi-de dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 16 Aug 2011 11:47:15 +0000
- Subject: [Bug c++/50097] New: Private base class enumeration
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: wolfgang.roehrl@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