This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/85148] New: [6/7/8 Regression] ICE with NSDMI and this pointer


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

            Bug ID: 85148
           Summary: [6/7/8 Regression] ICE with NSDMI and this pointer
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: reichelt at gcc dot gnu.org
  Target Milestone: ---

The following valid code snippet triggers an ICE since GCC 5.1.0
(it was wrongly rejected in GCC 4.9.4):

=====================================
template<typename T> struct A
{
  T x[1]{(__PTRDIFF_TYPE__)this};
};

void foo()
{
  A<A<__PTRDIFF_TYPE__>> a{};
}
=====================================

bug.cc: In function 'void foo()':
bug.cc:8:28: internal compiler error: in replace_placeholders_r, at
cp/tree.c:3148
   A<A<__PTRDIFF_TYPE__>> a{};
                            ^
0x667871 replace_placeholders_r
        ../../gcc/gcc/cp/tree.c:3148
0x116564b walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/gcc/tree.c:11387
0x9d03b0 replace_placeholders_r
        ../../gcc/gcc/cp/tree.c:3188
0x116564b walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/gcc/tree.c:11387
0x9d03b0 replace_placeholders_r
        ../../gcc/gcc/cp/tree.c:3188
0x116564b walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/gcc/tree.c:11387
0x9d03b0 replace_placeholders_r
        ../../gcc/gcc/cp/tree.c:3188
0x116564b walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/gcc/tree.c:11387
0x9d03b0 replace_placeholders_r
        ../../gcc/gcc/cp/tree.c:3188
0x116564b walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/gcc/tree.c:11387
0x9d51d1 replace_placeholders(tree_node*, tree_node*, bool*)
        ../../gcc/gcc/cp/tree.c:3226
0x9f4bb3 store_init_value(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, int)
        ../../gcc/gcc/cp/typeck2.c:851
0x887daa check_initializer
        ../../gcc/gcc/cp/decl.c:6469
0x89ffdc cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
        ../../gcc/gcc/cp/decl.c:7127
0x93c97b cp_parser_init_declarator
        ../../gcc/gcc/cp/parser.c:19741
0x943e28 cp_parser_simple_declaration
        ../../gcc/gcc/cp/parser.c:13059
0x944c38 cp_parser_block_declaration
        ../../gcc/gcc/cp/parser.c:12884
0x945669 cp_parser_declaration_statement
        ../../gcc/gcc/cp/parser.c:12478
0x923a73 cp_parser_statement
        ../../gcc/gcc/cp/parser.c:10927
0x9249e0 cp_parser_statement_seq_opt
        ../../gcc/gcc/cp/parser.c:11276
Please submit a full bug report, [etc.]

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]