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

            Bug ID: 96108
           Summary: Different behavior in DSE pass
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: 499537630 at qq dot com
  Target Milestone: ---

There are different behavior in DSE pass between gcc10 and gcc7.3. BUT I do not
known the correctness of dse_classify_store.

In gcc7.3, we could get DSE_STORE_DEAD when we get DSE_STORE_MABEY_PARTIAL_DEAD
with gcc10.


$ cat tauth.c 
struct aa;
static inline struct aa* get_aa(void) {
  struct aa* a;
  return a;
}
struct aa {
  int b;
};
void test()
{
  get_aa()->b &= 0xfff0;
}

$(7.3)aarch64_be-linux-gnu-gcc -S tauth.c -O2  -o - 
        .arch armv8-a
        .file   "tauth.c"
        .text
        .align  2
        .p2align 3,,7
        .global test
        .type   test, %function
test:
.LFB1:
        .cfi_startproc
        ret
        .cfi_endproc
.LFE1:
        .size   test, .-test
        .ident  "GCC: 7.3.0"
        .section        .note.GNU-stack,"",@progbits

$(10.1)aarch64_be-linux-gnu-gcc -S tauth.c -O2 -o -
        .arch armv8-a
        .file   "tauth.c"
        .text
        .align  2
        .p2align 4,,11
        .global test
        .type   test, %function
test:
.LFB1:
        .cfi_startproc
        mov     x0, 0
        ldr     w1, [x0]
        and     w1, w1, 65520
        str     w1, [x0]
        ret
        .cfi_endproc
.LFE1:
        .size   test, .-test
        .ident  "GCC:  10.1.0"
        .section        .note.GNU-stack,"",@progbits

Reply via email to