https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69588
Bug ID: 69588 Summary: ICE: tree check: expected ssa_name, have var_decl in unlink_stmt_vdef, at tree-ssa-operands.c:1314 Product: gcc Version: 4.9.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: moltonel at gmail dot com Target Milestone: --- Originally filed downstream at https://bugs.gentoo.org/show_bug.cgi?id=568260 I did my best to check for duplicates but this is my first foray into the gcc bugzilla and I'm a bit overwhelmed. template <class, class T> class error_info { public: typedef T value_type; error_info(value_type const &); ~error_info() throw(); }; template <class E, class Tag, class T> void operator<<(E, error_info<Tag, T>); int a; void vfork(); template <class Tag, class T> error_info<Tag, T>::error_info(value_type const &) {} template <class Tag, class T> error_info<Tag, T>::~error_info() throw() {} void Run() { error_info<int, char *>("") << error_info<int, int>(a); vfork(); } $ /usr/bin/x86_64-pc-linux-gnu-g++ -O2 -fPIC -c reduced.cpp -o reduced.o reduced.cpp: In function ‘void Run()’: reduced.cpp:17:29: warning: deprecated conversion from string constant to ‘error_info<int, char*>::value_type {aka char*}’ [-Wwrite-strings] error_info<int, char *>("") << error_info<int, int>(a); ^ reduced.cpp:19:1: internal compiler error: tree check: expected ssa_name, have var_decl in unlink_stmt_vdef, at tree-ssa-operands.c:1314 } ^