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

            Bug ID: 98199
           Summary: [11 Regression] ICE: Aborted (stack smashing detected)
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

AArch64 GCC ICEs on the following testcase:

struct b {
  long a;
  short d;
  int c;
  int f;
  int e;
  int g;
};
struct h {
  int a;
  int i;
  short j;
  struct b k;
  signed : 20;
  int e;
  int g;
} __attribute__((packed));
struct {
  short a;
  unsigned i;
  unsigned k;
  struct h d;
  const int : 30;
  signed e : 20;
  signed : 18;
} const l = {1, 6, 0, {}, 0};
int m() { return l.e || 0; }

since r11-5706-g277ff3406d533990e98cf1c2075b9dc9db6fa48a. I can reproduce the
issue on both x86 and aarch64 hosts. To reproduce:

$ aarch64-elf-gcc -c test.c
*** stack smashing detected ***: <unknown> terminated
test.c: In function 'm':
test.c:27:18: internal compiler error: Aborted
   27 | int m() { return l.e || 0; }
      |                  ^~~
0xdccf89 crash_signal
        /home/alecop01/toolchain/src/gcc/gcc/toplev.c:327
0x9ff4e7 native_encode_initializer(tree_node*, unsigned char*, int, int,
unsigned char*)
        /home/alecop01/toolchain/src/gcc/gcc/fold-const.c:8476
0xa7688d fold_ctor_reference(tree_node*, tree_node*, poly_int<2u, unsigned
long> const&, poly_int<2u, unsigned long> const&, tree_node*, unsigned long*)
        /home/alecop01/toolchain/src/gcc/gcc/gimple-fold.c:7952
0xa77a77 fold_const_aggregate_ref_1(tree_node*, tree_node* (*)(tree_node*))
        /home/alecop01/toolchain/src/gcc/gcc/gimple-fold.c:8057
0xa79816 fold_const_aggregate_ref(tree_node*)
        /home/alecop01/toolchain/src/gcc/gcc/gimple-fold.c:8136
0xa7989b maybe_fold_reference
        /home/alecop01/toolchain/src/gcc/gcc/gimple-fold.c:334
0xa79cb4 fold_gimple_assign
        /home/alecop01/toolchain/src/gcc/gcc/gimple-fold.c:366
0xa7fdec fold_stmt_1
        /home/alecop01/toolchain/src/gcc/gcc/gimple-fold.c:6077
0xa81c10 fold_stmt(gimple_stmt_iterator*)
        /home/alecop01/toolchain/src/gcc/gcc/gimple-fold.c:6248
0xa9b20e maybe_fold_stmt
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:3295
0xabb0f1 gimplify_modify_expr
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:5979
0xaa9b7e gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:14010
0xaaf1b7 gimplify_stmt(tree_node**, gimple**)
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:6862
0xab2cfc gimplify_and_add(tree_node*, gimple**)
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:487
0xab2cfc internal_get_tmp_var
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:640
0xab2d7a get_formal_tmp_var(tree_node*, gimple**)
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:661
0xaaef47 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:14998
0xaae654 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:14764
0xaae654 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:14764
0xaaa086 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        /home/alecop01/toolchain/src/gcc/gcc/gimplify.c:14113
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to