https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66957

            Bug ID: 66957
           Summary: irregular "is protected within this context" error
           Product: gcc
           Version: 5.1.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dreamcooled at gmail dot com
  Target Milestone: ---

Created attachment 36023
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36023&action=edit
The code which produces the bug

In the attachment you find code which I'm trying to compile with g++.

I have a archlinux system and I have g++ version 5.1.0 from the offical repo of
my system.

I'm trying to compile the attached code by invoking 
`g++ classtest.cpp`. 

gcc fires the error:
classtest.cpp: In constructor ‘DerivedB::DerivedB()’:
classtest.cpp:9:5: error: ‘int BaseClass::x’ is protected
 int BaseClass::x;
     ^
classtest.cpp:22:32: error: within this context
         std::cout << DerivedA::x;
                                ^
What I'm trying to achieve is completely legal according to the c++ standard
([class.access.base]/p5 ).

More information, discussion, and a lot of people who agree that this is indeed
a gcc bug, can be found in the associated stackoverflow question:
http://stackoverflow.com/questions/31389470/g-compilation-error-is-protected-from-within-this-context-while-clang-do

Reply via email to