http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54325
drtwox at tpg dot com.au changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |drtwox at tpg dot com.au --- Comment #1 from drtwox at tpg dot com.au 2012-09-07 21:34:57 UTC --- The failing example can be simplified somewhat. class base { protected: base() {} }; class derived : public base { public: derived() : base{} // <-- Note the c++11 curly brace syntax {} }; int main() { derived d1; return 0; } Output: $ g++-4.7 -std=c++11 -Wall -Wextra -pedantic curly.cpp -o curly curly.cpp: In constructor ‘derived::derived()’: curly.cpp:4:13: error: ‘base::base()’ is protected curly.cpp:19:24: error: within this context Replace g++4.7 with g++4.6 or clang++3.1 and it compiles without warnings or errors.