https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108479
Bug ID: 108479
Summary: Internal compiler error: in type_memfn_rqual, at
cp/typeck.cc:10994
Product: gcc
Version: 12.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: etienne.doms at gmail dot com
Target Milestone: ---
Created attachment 54316
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54316&action=edit
Preprocessed source
Hello,
I was just playing on my lunch time and something blew up:
> [smod@syslt041-arch playground]$ g++ bug.cpp -std=c++20 -freport-bug
> bug.cpp: In instantiation of ‘class Foo >’:
> bug.cpp:34:30: required from here
> bug.cpp:5:7: internal compiler error: in type_memfn_rqual, at
> cp/typeck.cc:10994
> 5 | class Foo
> | ^~~
> 0x19e2ee8 internal_error(char const*, ...)
> ???:0
> 0x65443c fancy_abort(char const*, int, char const*)
> ???:0
> 0x69df2f finish_struct_1(tree_node*)
> ???:0
> 0x7ed3c7 instantiate_class_template(tree_node*)
> ???:0
> 0x83d035 complete_type(tree_node*)
> ???:0
> 0x6fcc40 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
> tree_node*, tree_node*, tree_node**)
> ???:0
> 0x7c7d9c c_parse_file()
> ???:0
> 0x8dd47d c_common_parse_file()
> ???:0
> Please submit a full bug report, with preprocessed source.
Got this on a up-to-date g++ 12.2.1 on ArchLinux:
> [smod@syslt041-arch playground]$ g++ -v
> Using built-in specs.
> COLLECT_GCC=g++
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.1/lto-wrapper
> Target: x86_64-pc-linux-gnu
> Configured with: /build/gcc/src/gcc/configure
> --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap
> --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib -->
> mandir=/usr/share/man --infodir=/usr/share/info
> --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto
> --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit
> --enable-cet=auto --enable-checking=release --enable-clocale=gnu
> --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function
> --enable-gnu-unique-object --enable-libstdcxx-backtrace
> --enable-link-serialization=1 --enable-linker-build-id --enable-lto
> --enable-multilib --enable-plugin --enable-shared --enable-threads=posix
> --disable-libssp --disable-libstdcxx-pch --disable-werror
> Thread model: posix
> Supported LTO compression algorithms: zlib zstd
> gcc version 12.2.1 20230111 (GCC)
See attachment generated by "-freport-bug", as requested.
Probably related to #96745, but does not look identical to me.
Note that I was not trying to do something specific, I was reading about this
new shiny concept of "prospective destructor" and tried to instantiate my
template class with "T = decltype(std::cout)", I was expecting something like
"nope, no suitable dtor" but got this instead.
Cheers,
Etienne