http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60713

            Bug ID: 60713
           Summary: [4.8/4.9 regression] ICE in iterative_hash_expr
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ppluzhnikov at google dot com

Google ref: b/13644122

Reproduces with current trunk (r208944):

g++ -c -std=c++11 t.cc && echo ok
ok

g++ -c -std=c++11 t.cc -O2

t.cc: In member function ‘void x6::x7()’:
t.cc:20:7: internal compiler error: in iterative_hash_expr, at tree.c:7475
     });
       ^
0xd78b9f iterative_hash_expr(tree_node const*, unsigned int)
    ../../gcc/tree.c:7475
0xd78a22 iterative_hash_expr(tree_node const*, unsigned int)
    ../../gcc/tree.c:7508
0xd7886b iterative_hash_expr(tree_node const*, unsigned int)
    ../../gcc/tree.c:7448
0x9abf3c gimplify_hasher::hash(gimple_temp_hash_elt const*)
    ../../gcc/gimplify.c:8908
0x9abf3c hash_table<gimplify_hasher,
xcallocator>::find_slot(gimple_temp_hash_elt const*, insert_option)
    ../../gcc/hash-table.h:505
0x9abf3c lookup_tmp_var
    ../../gcc/gimplify.c:488
0x9abf3c internal_get_tmp_var
    ../../gcc/gimplify.c:523
0x9a4bf1 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
    ../../gcc/gimplify.c:8358
0x9af968 gimplify_call_expr
    ../../gcc/gimplify.c:2375
0x9a5047 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
    ../../gcc/gimplify.c:7431
0x9a9996 gimplify_stmt(tree_node**, gimple_statement_base**)
    ../../gcc/gimplify.c:5353
0x9a50d2 gimplify_cleanup_point_expr
    ../../gcc/gimplify.c:5129
0x9a50d2 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
    ../../gcc/gimplify.c:7823
0x9a9996 gimplify_stmt(tree_node**, gimple_statement_base**)
    ../../gcc/gimplify.c:5353
0x9ab1f9 gimplify_body(tree_node*, bool)
    ../../gcc/gimplify.c:8567
0x9ab7d6 gimplify_function_tree(tree_node*)
    ../../gcc/gimplify.c:8720
0x8393a7 analyze_function
    ../../gcc/cgraphunit.c:649
0x83a65b analyze_functions
    ../../gcc/cgraphunit.c:1017
0x83bd55 finalize_compilation_unit()
    ../../gcc/cgraphunit.c:2320
0x63541e cp_write_global_declarations()
    ../../gcc/cp/decl2.c:4610
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.

/// cut here 
template < class x0, class x1, class x2, class x3, class x4 >
int *x5 (x0 *, x2 (x1::*)(x3, x4));

class x6
{
    void x7 ();
    struct x8
    {
        int *x9;
    };
    void x10 (x8);
    void x11 (int *, int *);
};

void
x6::x7 ()
{
    x10 ({
        x5 (this, &x6::x11)
    });
}

Reply via email to