https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63237
Bug ID: 63237 Summary: [5 Regression] error: invalid operand in unary operation Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org markus@x4 llvm_build % < RewriteMacros.ii extern "C" unsigned long strlen(const char *); class A { int Length; public: A(const char *p1) { Length = strlen(p1); } }; class B { public: void m_fn1(int, A); }; class C { public: B &m_fn2(); }; int a; void RewriteMacrosInInput() { C b; B &c = b.m_fn2(); c.m_fn1(0, &""[a]); } markus@x4 llvm_build % g++ -c -O2 RewriteMacros.ii RewriteMacros.ii: In function ‘void RewriteMacrosInInput()’: RewriteMacros.ii:21:1: error: invalid operand in unary operation } ^ RewriteMacros.ii:21:1: error: invalid operand to unary operator (ssizetype) a.0_6 RewriteMacros.ii:6:41: note: in statement A(const char *p1) { Length = strlen(p1); } ^ _14 = (long unsigned int) -(ssizetype) a.0_6; RewriteMacros.ii:21:1: internal compiler error: verify_gimple failed } ^ 0xc04b7a verify_gimple_in_cfg(function*, bool) ../../gcc/gcc/tree-cfg.c:5003 0xb12cd2 execute_function_todo ../../gcc/gcc/passes.c:1751 0xb136e3 execute_todo ../../gcc/gcc/passes.c:1808 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.