[llvm-commits] [llvm-gcc-4.2] r93388 - in /llvm-gcc-4.2/trunk/gcc/testsuite/gcc.dg: ssp-1.c ssp-2.c

Eric Christopher echristo at apple.com
Wed Jan 13 17:24:33 PST 2010


>> 
> 
> It's testing the stack-protector by clobbering its own stackframe.
> 

Yep.

> I'm about to commit some lexical-block debug stuff, and I had to change the order of declaration of variables.  That's not supposed to break anything, but...  lots of breakage.
> 

Why did you have to change the order of declaration of variables? I'd be surprised if someone wasn't relying on this behavior, even if they're not supposed to.

> For these two tiny test cases, GCC allocated the loop index in a register, even at -O0.  At -O0, LLVM put that variable on the stack.
> 
> When I disturbed the order of declaration, the loop index moved *above* the array-to-clobber, the loop clobbered its own index, and then it looped indefinitely.
> 
> (Note: my patch to change the order of declaration hasn't been committed yet.)
> 
> Making the loop index static moves it far away from the clobbering.  Bill says we can replace the loop and its index variable with a call to memset().
> 
> Do you have a strong opinion on this?


I'd say static and haul it out of the function, but I'm still concerned about the other.

-eric



More information about the llvm-commits mailing list