

0·
3 months agoThat’s literally what I’m saying; It’s fine as long as there wasn’t any unwritten data in the cache when the machine crashes/suddenly loses power. RAID controllers have a battery backed write cache for this reason, because traditional RAID5/6 has the same issue.
Interesting feature, I had no idea. I just verified this with gcc and indeed the return register is always set to 0 before returning unless otherwise specified.
spoiler
int main(void) { int foo = 10; }
produces:
push %rbp mov %rsp,%rbp movl $0xa,-0x4(%rbp) # Move 10 to stack variable mov $0x0,%eax # Return 0 pop %rbp ret
int main(void) { int foo = 10; return foo; }
produces:
push %rbp mov %rsp,%rbp movl $0xa,-0x4(%rbp) # Move 10 to stack variable mov -0x4(%rbp),%eax # Return foo pop %rbp ret