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

            Bug ID: 117084
           Summary: ICE: in coerce_delete_type, at cp/decl2.cc:2122
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: iamanonymous.cs at gmail dot com
  Target Milestone: ---
            Target: x86_64

*******************************************************************************
The compiler produces an internal error during coerce_delete_type when
compiling the provided code with the specified options. 
The issue can also be reproduced on Compiler Explorer.

*******************************************************************************
OS and Platform:
# uname -a
Linux ubuntu 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023
x86_64 x86_64 x86_64 GNU/Linux
*******************************************************************************
# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/root/gdbtest/gcc/gcc-241009/libexec/gcc/x86_64-pc-linux-gnu/15.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/root/gdbtest/gcc/gcc-241009
--enable-languages=c,c++ --disable-multilib --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 15.0.0 20241009 (experimental) (GCC)  
*******************************************************************************
Program:
# cat bugreport_0_2.cpp

struct A
{
  A ();
  void *operator new (__SIZE_TYPE__, int = 0);
  template <typename T> void operator delete (void *, T);
};

template <> void A::operator delete<int> (void *, int);

A *p = new A;

*******************************************************************************
Command Lines:
# g++ bugreport_0_2.cpp -Os -ffast-math -fno-trapping-math
-fmerge-all-constants -fira-loop-pressure
bugreport_0_2.cpp:8:54: internal compiler error: in coerce_delete_type, at
cp/decl2.cc:2122
    8 | template <> void A::operator delete<int> (void *, int);
      |                                                      ^
0x2920dae internal_error(char const*, ...)
        ../../gcc/gcc/diagnostic-global-context.cc:517
0xabdf35 fancy_abort(char const*, int, char const*)
        ../../gcc/gcc/diagnostic.cc:1617
0xbbe3af coerce_delete_type(tree_node*, unsigned int)
        ../../gcc/gcc/cp/decl2.cc:2122
0xb8aa7c grok_op_properties(tree_node*, bool)
        ../../gcc/gcc/cp/decl.cc:16196
0xb9a862 grokfndecl
        ../../gcc/gcc/cp/decl.cc:11065
0xba15ec grokdeclarator(cp_declarator const*, cp_decl_specifier_seq*,
decl_context, int, tree_node**)
        ../../gcc/gcc/cp/decl.cc:15278
0xba652c start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
        ../../gcc/gcc/cp/decl.cc:5950
0xcc3f07 cp_parser_init_declarator
        ../../gcc/gcc/cp/parser.cc:23776
0xccc67c cp_parser_single_declaration
        ../../gcc/gcc/cp/parser.cc:33570
0xccd480 cp_parser_explicit_specialization
        ../../gcc/gcc/cp/parser.cc:20207
0xcd69b6 cp_parser_declaration
        ../../gcc/gcc/cp/parser.cc:15751
0xcd72fa cp_parser_toplevel_declaration
        ../../gcc/gcc/cp/parser.cc:15859
0xcd72fa cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.cc:5321
0xcd72fa c_parse_file()
        ../../gcc/gcc/cp/parser.cc:51995
0xe321f1 c_common_parse_file()
        ../../gcc/gcc/c-family/c-opts.cc:1349
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.

*******************************************************************************

Also ICE on trunk, compiler explorer:https://godbolt.org/z/aPnd1zrbP

*******************************************************************************
  • [Bug c++/117084] New: ICE: i... iamanonymous.cs at gmail dot com via Gcc-bugs

Reply via email to