Bug 108207 - ICE in testcase g++.dg/other/ptrmem8.C on mingw
Summary: ICE in testcase g++.dg/other/ptrmem8.C on mingw
Status: RESOLVED DUPLICATE of bug 65568
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 13.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-invalid-code, testsuite-fail
Depends on:
Blocks:
 
Reported: 2022-12-23 10:44 UTC by nightstrike
Modified: 2022-12-24 20:32 UTC (History)
1 user (show)

See Also:
Host:
Target: x86_64-w64-mingw32
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description nightstrike 2022-12-23 10:44:48 UTC
All variants of this test fail (98, 14, 17, 20)

// Target: x86_64-w64-mingw32
// Configured with: ../configure --disable-nls --with-sysroot=/tmp/rtmingw --target=x86_64-w64-mingw32 --disable-multilib --enable-languages=c,c++,fortran,lto,objc,obj-c++,m2,rust
// Thread model: win32
// Supported LTO compression algorithms: zlib zstd
// gcc version 13.0.0 20221222 (experimental) (GCC) bbe04bade0cc3b17e62c2af3d89b899367e7d2d1


g++.dg/other/ptrmem8.C: In function 'void foo(void (A::*)())':
g++.dg/other/ptrmem8.C:9:9: internal compiler error: in build_ptrmemfunc, at cp/typeck.cc:10015


0x7f38c0 build_ptrmemfunc(tree_node*, tree_node*, int, bool, int)
        ../../gcc/cp/typeck.cc:10015
0xc643bb cp_build_addr_expr_1
        ../../gcc/cp/typeck.cc:7241
0xc64704 cp_build_addr_expr_strict
        ../../gcc/cp/typeck.cc:7269
0xc64704 build_x_unary_op(unsigned int, tree_code, cp_expr, tree_node*, int)
        ../../gcc/cp/typeck.cc:6890
0xb9b7c3 cp_parser_unary_expression
        ../../gcc/cp/parser.cc:9039
0xb688bc cp_parser_binary_expression
        ../../gcc/cp/parser.cc:10101
0xb69612 cp_parser_assignment_expression
        ../../gcc/cp/parser.cc:10444
0xb6ba73 cp_parser_expression
        ../../gcc/cp/parser.cc:10614
0xb6fa07 cp_parser_expression_statement
        ../../gcc/cp/parser.cc:12758
0xb7aced cp_parser_statement
        ../../gcc/cp/parser.cc:12538
0xb7bfdd cp_parser_statement_seq_opt
        ../../gcc/cp/parser.cc:12909
0xb7c0b7 cp_parser_compound_statement
        ../../gcc/cp/parser.cc:12861
0xb9ea55 cp_parser_function_body
        ../../gcc/cp/parser.cc:25280
0xb9ea55 cp_parser_ctor_initializer_opt_and_function_body
        ../../gcc/cp/parser.cc:25331
0xba09fe cp_parser_function_definition_after_declarator
        ../../gcc/cp/parser.cc:31942
0xba1eb0 cp_parser_function_definition_from_specifiers_and_declarator
        ../../gcc/cp/parser.cc:31859
0xba1eb0 cp_parser_init_declarator
        ../../gcc/cp/parser.cc:22734
0xba928e cp_parser_single_declaration
        ../../gcc/cp/parser.cc:32459
0xba94b4 cp_parser_template_declaration_after_parameters
        ../../gcc/cp/parser.cc:32012
0xba9d40 cp_parser_explicit_template_declaration
        ../../gcc/cp/parser.cc:32285



Preprocessed source is as you might expect, given the lack of includes:
struct A {};

template<int> void foo(void (A::* f)())
{
  A a;
  &(a.*f);
}

template<int> void bar(void (A::* f)())
{
  A *p;
  &(p->*f);
}
Comment 1 nightstrike 2022-12-23 10:51:46 UTC
Ah, Andrew, before you beat me to it...  this doesn't ICE if you pass -fno-ms-extensions, and it does ICE on Linux if you pass -fms-extensions
Comment 2 Andrew Pinski 2022-12-24 20:32:42 UTC
Dup of bug 65568.

*** This bug has been marked as a duplicate of bug 65568 ***