http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59622

--- Comment #4 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Further reduced:

markus@x4 tmp % cat test.ii
namespace {
class A {
public:
  virtual int *m_fn1();
  int *m_fn2() { return m_fn1(); }
};
A a;
int b = *a.m_fn2();
}

markus@x4 tmp % g++ -O2 -c /var/tmp/test.ii
/var/tmp/test.ii: In member function ‘int* {anonymous}::A::m_fn2()’:
/var/tmp/test.ii:5:8: error: LHS in noreturn call
   int *m_fn2() { return m_fn1(); }
        ^
D.2269 = __builtin_unreachable (this);
/var/tmp/test.ii:5:8: internal compiler error: verify_gimple failed
0xb74c4f verify_gimple_in_seq(gimple_statement_base*)
        ../../gcc/gcc/tree-cfg.c:4521
0x99ffe1 gimplify_body(tree_node*, bool)
        ../../gcc/gcc/gimplify.c:8599
0x9a0399 gimplify_function_tree(tree_node*)
        ../../gcc/gcc/gimplify.c:8684
0x82eb97 analyze_function
        ../../gcc/gcc/cgraphunit.c:649
0x82fe4b analyze_functions
        ../../gcc/gcc/cgraphunit.c:1017
0x831475 finalize_compilation_unit()
        ../../gcc/gcc/cgraphunit.c:2271
0x62a57e cp_write_global_declarations()
        ../../gcc/gcc/cp/decl2.c:4431
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.

markus@x4 tmp % clang++ -c /var/tmp/test.ii
/var/tmp/test.ii:4:16: warning: function '<anonymous namespace>::A::m_fn1' has
internal linkage but is not defined [-Wundefined-internal]
  virtual int *m_fn1();
               ^
/var/tmp/test.ii:5:25: note: used here
  int *m_fn2() { return m_fn1(); }
                        ^
1 warning generated.
markus@x4 tmp %

Reply via email to