[Bug tree-optimization/93538] equality of address of first member to address to enclosing object not folded
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Feb 2 00:18:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93538
--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
A better (well-defined) test case involves memmove:
$ cat a.c && gcc -O2 -S -Wall -fdump-tree-optimized=/dev/stdout -o/dev/stdout
a.c
struct A { char a[3]; };
void f (struct A *a)
{
void *p = a;
void *q = a->a;
__builtin_memmove (p, q, sizeof (struct A));
}
.file "a.c"
.text
;; Function f (f, funcdef_no=0, decl_uid=1932, cgraph_uid=1, symbol_order=0)
f (struct A * a)
{
void * q;
<bb 2> [local count: 1073741824]:
q_2 = &a_1(D)->a;
__builtin_memmove (a_1(D), q_2, 3); [tail call]
return;
}
.p2align 4
.globl f
.type f, @function
f:
.LFB0:
.cfi_startproc
movl $3, %edx
movq %rdi, %rsi
jmp memmove
.cfi_endproc
.LFE0:
.size f, .-f
.ident "GCC: (GNU) 10.0.1 20200131 (experimental)"
.section .note.GNU-stack,"",@progbits
More information about the Gcc-bugs
mailing list