[Bug debug/87916] New: [9 Regression] ICE in dwarf2out_abstract_function, at dwarf2out.c:22479 since r264943

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 7 07:58:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87916

            Bug ID: 87916
           Summary: [9 Regression] ICE in dwarf2out_abstract_function, at
                    dwarf2out.c:22479 since r264943
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: debug
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: ebotcazou at gcc dot gnu.org
  Target Milestone: ---

Following causes ICE:

$ cat turbo.ii
struct a {
  virtual ~a();
};
template <typename b> class c {
public:
  class d {
  public:
    d(c);
    b *operator->();
  };
};
int e, f;
class g {
public:
  class h {
  public:
    virtual void j(g &, int &, bool) = 0;
  };
  c<h> k();
  int *l();
  int *m();
};
int *g::l() try {
  for (c<h>::d i(k());;)
    i->j(*this, e, true);
} catch (int) {
  return 0;
}
int *g::m() try {
  for (c<h>::d i(k());;)
    i->j(*this, f, false);
} catch (int) {
  return 0;
}
struct n : a, g::h {
  void o();
  void j(g &, int &, bool) { o(); }
};

$ g++ -O2 -g turbo.ii  -c -m32 -fPIC -Wall
during IPA pass: inline
turbo.ii: In member function ‘int* g::l()’:
turbo.ii:25:9: internal compiler error: in dwarf2out_abstract_function, at
dwarf2out.c:22479
   25 |     i->j(*this, e, true);
      |     ~~~~^~~~~~~~~~~~~~~~
0x731731 dwarf2out_abstract_function
        /home/marxin/Programming/gcc/gcc/dwarf2out.c:22479
0x31fa65f expand_call_inline
        /home/marxin/Programming/gcc/gcc/tree-inline.c:4855
0x3202412 gimple_expand_calls_inline
        /home/marxin/Programming/gcc/gcc/tree-inline.c:4886
0x3202412 optimize_inline_calls(tree_node*)
        /home/marxin/Programming/gcc/gcc/tree-inline.c:5026
0x57cbd67 inline_transform(cgraph_node*)
        /home/marxin/Programming/gcc/gcc/ipa-inline-transform.c:682
0x29de91a execute_one_ipa_transform_pass
        /home/marxin/Programming/gcc/gcc/passes.c:2190
0x29de91a execute_all_ipa_transforms()
        /home/marxin/Programming/gcc/gcc/passes.c:2229
0x196c0f5 cgraph_node::expand()
        /home/marxin/Programming/gcc/gcc/cgraphunit.c:2187
0x1972724 expand_all_functions
        /home/marxin/Programming/gcc/gcc/cgraphunit.c:2332
0x1972724 symbol_table::compile()
        /home/marxin/Programming/gcc/gcc/cgraphunit.c:2683
0x197dc3a symbol_table::finalize_compilation_unit()
        /home/marxin/Programming/gcc/gcc/cgraphunit.c:2861
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.


More information about the Gcc-bugs mailing list