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

            Bug ID: 80270
           Summary: ICE in extract_bit_field_1 at gcc/expmed.c:1798
           Product: gcc
           Version: 4.8.5
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: aivchenk at gmail dot com
  Target Milestone: ---

> cat struct_hard_reg.c 

#include <stdio.h>

typedef int v8 __attribute__((vector_size(8)));
struct S1 {
  v8 s1f;
};
struct S2 {
  struct S1 s2f1;
  v8 s2f2;
};

void fn1() {
  int __trans_tmp_2, i = 3;
  register struct S2 b asm("xmm0");
  __trans_tmp_2 = b.s2f1.s1f[i];
  printf("%d", __trans_tmp_2);
}

> gcc ./struct_hard_reg.c  -O1

./new_bug.c: In function ‘fn1’:
./new_bug.c:17:3: internal compiler error: Segmentation fault
   printf("%d", __trans_tmp_2);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
0xe92cda crash_signal
        ../../gcc/gcc/toplev.c:337
0xa3284a extract_bit_field_1
        ../../gcc/gcc/expmed.c:1798
0xa32e01 extract_bit_field(rtx_def*, unsigned long, unsigned long, int,
rtx_def*, machine_mode, machine_mode, bool)
        ../../gcc/gcc/expmed.c:1932
0xa63501 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        ../../gcc/gcc/expr.c:10702
0xa5821f expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
        ../../gcc/gcc/expr.c:8072
0xa5f27e expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        ../../gcc/gcc/expr.c:9775
0xa5821f expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
        ../../gcc/gcc/expr.c:8072
0x8d448f expand_normal
        ../../gcc/gcc/expr.h:282
0x8d647d precompute_register_parameters
        ../../gcc/gcc/calls.c:956

Reply via email to