http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19377
--- Comment #10 from fabien at gcc dot gnu.org --- (In reply to Andrey Belevantsev from comment #9) > Another test case of the same issue (both clang and icc compile this fine): It is not the same issue as the protected keyword is not involved. (And Clang and ICC should be fixed instead, see below). > > namespace ns { > class Base { > public: > int i; > }; > class Derived : public Base { > using Base::i; > }; > } > class DerivedDerived : public ns::Derived { > using ns::Base::i; > }; > > we get > > /tmp/ns.C:4:9: error: ‘int ns::Base::i’ is inaccessible > /tmp/ns.C:10:7: error: within this context > > It is indeed rejects-valid but I cannot claim this is a regression as I > can't find the version that did that correctly. The testcase is not valid, as a using declaration shall refer to a direct base class, which is not the case in 'using ns::Base::i' (the namespace ns does not seem to be relevant here). It is invalid for a second reason, 'using Base::i' is declared (implicitly) in a private section, so inaccessible in DerivedDerived. > It's 9 years of the > original bugreport, maybe rise a priority?.. Raising the priority would not make me fix this bug more quickly. This bug is not a regression, and not a high priority in my opinion. Thought, it is in my TODO list. I gave it a try two years ago, and it was not obvious to fix. Feel free to take over if you have more free time than I have.