http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48421
Summary: [4.7 Regression] ICE in build_new_method_call Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org #include <functional> #include <chrono> #include <memory> #include <condition_variable> struct Impl; typedef std::shared_ptr<Impl> shared_base_type; struct base { shared_base_type ptr; }; struct Impl : base { Impl() = default; }; The c++0x code above gives me an ICE with trunk, but it goes away if I change any of the includes, or try to compile a preprocessed version (which is why I haven't attached preprocessed source) $ ~/gcc/4.x/bin/g++ -std=c++0x ice.cc -c ice.cc:14:8: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Program received signal SIGSEGV, Segmentation fault. build_new_method_call (instance=0x7ffff5954b70, fns=<value optimized out>, args=0x7fffffffdd50, conversion_path=0x7ffff5a3ae40, flags=<value optimized out>, fn_p=0x7fffffffdd58, complain=<value optimized out>) at ../../src/gcc/gcc/cp/call.c:6801 6801 basetype = TYPE_MAIN_VARIANT (TREE_TYPE (instance));