https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64896
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- markus@x4 tmp % cat SVGAllInOne.ii class A { int m_x, m_y; }; class B { A m_location; int m_size; }; class C { public: virtual B m_fn1 () const; }; class D { B m_fn2 () const; int m_fn3 () const; C *m_fn4 () const; }; int D::m_fn3 () const { m_fn4 ()->m_fn1 (); } B D::m_fn2 () const { return B (); } class F : C { B m_fn1 () const { return B (); } }; markus@x4 tmp % /var/tmp/gcc_test/usr/local/bin/g++ -c -O2 SVGAllInOne.ii SVGAllInOne.ii: In member function ‘B D::m_fn2() const’: SVGAllInOne.ii:27:1: internal compiler error: in expand_expr_addr_expr_1, at expr.c:7735 D::m_fn2 () const ^ 0x9c3db7 expand_expr_addr_expr_1 ../../gcc/gcc/expr.c:7735 0x9b81b9 expand_expr_addr_expr ../../gcc/gcc/expr.c:7849 0x9b81b9 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/gcc/expr.c:10723 0x9b8910 expand_expr ../../gcc/gcc/expr.h:254 0x9b8910 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/gcc/expr.c:9903 0x9cbb46 expand_expr ../../gcc/gcc/expr.h:254 0x9cbb46 expand_assignment(tree_node*, tree_node*, bool) ../../gcc/gcc/expr.c:5085 0x8cd8fe expand_gimple_stmt_1 ../../gcc/gcc/cfgexpand.c:3385 0x8cd8fe expand_gimple_stmt ../../gcc/gcc/cfgexpand.c:3481 0x8d4697 expand_gimple_basic_block ../../gcc/gcc/cfgexpand.c:5397 0x8d5eb7 execute ../../gcc/gcc/cfgexpand.c:6006 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.