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

            Bug ID: 83713
           Summary: [6/7/8 Regression] ICE in do_narrow at
                    gcc/convert.c:474
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: rguenth at gcc dot gnu.org
  Target Milestone: ---

Starting from r246756 we ICE on:

$ cat Buffer.ii
class a
{
  char b;
  void c ();
};
void
a::c ()
{
  &b + ((long long) &b & 0);
}

$ g++ Buffer.ii -O2 -m32 -c
Buffer.ii: In member function ‘void a::c()’:
Buffer.ii:9:27: internal compiler error: tree check: expected boolean_type or
enumeral_type or integer_type, have pointer_type in do_narrow, at convert.c:474
   &b + ((long long) &b & 0);
                           ^
0x5f56dc tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/tree.c:9347
0x9aa268 any_integral_type_check(tree_node*, char const*, int, char const*)
        ../../gcc/tree.h:3374
0x5e2f50 do_narrow
        ../../gcc/convert.c:474
0x9a892f convert_to_integer_1
        ../../gcc/convert.c:887
0x690b59 ocp_convert(tree_node*, tree_node*, int, int, int)
        ../../gcc/cp/cvt.c:814
0x8968bc pointer_int_sum(unsigned int, tree_code, tree_node*, tree_node*, bool)
        ../../gcc/c-family/c-common.c:3147
0x86b192 cp_pointer_int_sum
        ../../gcc/cp/typeck.c:5445
0x86b192 cp_build_binary_op(unsigned int, tree_code, tree_node*, tree_node*,
int)
        ../../gcc/cp/typeck.c:4421
0x636aee build_new_op_1
        ../../gcc/cp/call.c:6002
0x63757e build_new_op(unsigned int, tree_code, int, tree_node*, tree_node*,
tree_node*, tree_node**, int)
        ../../gcc/cp/call.c:6046
0x85a822 build_x_binary_op(unsigned int, tree_code, tree_node*, tree_code,
tree_node*, tree_code, tree_node**, int)
        ../../gcc/cp/typeck.c:4024
0x7616ce cp_parser_binary_expression
        ../../gcc/cp/parser.c:9284
0x762ee4 cp_parser_assignment_expression
        ../../gcc/cp/parser.c:9417
0x7636c8 cp_parser_expression
        ../../gcc/cp/parser.c:9586
0x765698 cp_parser_expression_statement
        ../../gcc/cp/parser.c:11042
0x76b86f cp_parser_statement
        ../../gcc/cp/parser.c:10858
0x76d0c0 cp_parser_statement_seq_opt
        ../../gcc/cp/parser.c:11185
0x76d197 cp_parser_compound_statement
        ../../gcc/cp/parser.c:11139
0x785d20 cp_parser_function_body
        ../../gcc/cp/parser.c:21679
0x785d20 cp_parser_ctor_initializer_opt_and_function_body
        ../../gcc/cp/parser.c:21716

Reply via email to