Liste des Groupes | Revenir à c arch |
On 14/09/2024 23:19, Michael S wrote:
Yes, exactly.
Contrary to your imagination - compilers have /never/ followed your
proposed semantics. The oldest gcc version I found on godbolt.org is
3.4.6 from 2006, and given:
struct Bar {
char x[8];
int y;
} bar;
int foo(int i) {
bar.y = 1234;
bar.x[i] = 42;
return bar.y;
}
It generates:
foo:
movslq %edi,%rdi
movl $1234, %eax
movl $1234, bar+8(%rip)
movb $42, bar(%rdi)
ret
That is, y is /not/ reloaded after bar.x[i] is set.
Les messages affichés proviennent d'usenet.