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

            Bug ID: 108772
           Summary: [13 Regression] ICE in force_decl_die, at
                    dwarf2out.cc:26751 since r13-4161-g32d16fe9d7e347bc
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---

Noticed that in Firefox package:

$ cat ice.ii
namespace std {
struct _Sp_counted_base {
  virtual void *_M_get_deleter(const int &);
};
bool _S_eq(int);
struct _Sp_make_shared_tag {
  static const int &_S_ti() {
    static constexpr char __tag{};
    return reinterpret_cast<const int &>(__tag);
  }
};
struct _Impl {
  _Impl(int);
};
int _Sp_counted_ptr_inplace___a;
struct _Sp_counted_ptr_inplace : _Sp_counted_base {
  _Sp_counted_ptr_inplace() : _M_impl(_Sp_counted_ptr_inplace___a) {}
  void *_M_get_deleter(const int &__ti) {
    auto __ptr(_M_ptr());
    &__ti == &_Sp_make_shared_tag::_S_ti() || _S_eq(__ti);
    return __ptr;
  }
  int *_M_ptr();
  _Impl _M_impl;
};
struct __shared_count {
  __shared_count(int, int) { _Sp_counted_ptr_inplace(); }
};
int _M_ptr;
struct __shared_ptr {
  template <typename _Alloc>
  __shared_ptr(_Alloc __tag) : _M_refcount(_M_ptr, __tag) {}
  __shared_count _M_refcount;
};
int shared_ptr___tag;
struct shared_ptr : __shared_ptr {
  shared_ptr() : __shared_ptr(shared_ptr___tag) {}
};
void ArgEq() { shared_ptr(); }
} // namespace std

$ g++ ice.ii -flto -fPIC -shared -O1 -fimplicit-constexpr -g1
lto1: internal compiler error: in force_decl_die, at dwarf2out.cc:26770
0x672f7a force_decl_die
        /home/marxin/Programming/gcc/gcc/dwarf2out.cc:26770
0x970f8f force_decl_die
        /home/marxin/Programming/gcc/gcc/dwarf2out.cc:4940
0x970f8f get_context_die
        /home/marxin/Programming/gcc/gcc/dwarf2out.cc:26701
0x970f8f force_decl_die
        /home/marxin/Programming/gcc/gcc/dwarf2out.cc:26717
0x984b2d force_decl_die
        /home/marxin/Programming/gcc/gcc/dwarf2out.cc:26715
0x984b2d get_context_die
        /home/marxin/Programming/gcc/gcc/dwarf2out.cc:26701
0x984b2d flush_limbo_die_list
        /home/marxin/Programming/gcc/gcc/dwarf2out.cc:32079
0x988ca8 dwarf2out_finish
        /home/marxin/Programming/gcc/gcc/dwarf2out.cc:32155
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
lto-wrapper: fatal error: g++ returned 1 exit status
compilation terminated.
mold: fatal: lto-wrapper failed
collect2: error: ld returned 1 exit status

Reply via email to