[Bug c++/101209] New: ICE with trailing return type on a conversion operator
aaron at aaronballman dot com
gcc-bugzilla@gcc.gnu.org
Fri Jun 25 11:31:05 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101209
Bug ID: 101209
Summary: ICE with trailing return type on a conversion operator
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: aaron at aaronballman dot com
Target Milestone: ---
I was curious what kind of diagnostics different compilers would give me for
some nonsense code, and found that the following code causes an ICE in GCC.
struct S {
operator int() const -> double;
};
<source>:2:27: internal compiler error: in splice_late_return_type, at
cp/pt.c:29753
2 | operator int() const -> double;
| ^~~~~~
0x1d48999 internal_error(char const*, ...)
???:0
0x724013 fancy_abort(char const*, int, char const*)
???:0
0x9847fc splice_late_return_type(tree_node*, tree_node*)
???:0
0x808c53 grokdeclarator(cp_declarator const*, cp_decl_specifier_seq*,
decl_context, int, tree_node**)
???:0
0x834403 grokfield(cp_declarator const*, cp_decl_specifier_seq*, tree_node*,
bool, tree_node*, tree_node*)
???:0
0x94cadd c_parse_file()
???:0
0xacfe82 c_common_parse_file()
???:0
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.
Compiler returned: 1
This should likely give an error about using a trailing return type for a
function with a declared return type other than a placeholder type.
More information about the Gcc-bugs
mailing list