------- Comment #5 from hjl dot tools at gmail dot com 2009-08-31 22:25 ------- (In reply to comment #4) > HJ, this doesn't make sense. > > Either we can assume 16-byte stack alignment, or we can't. Which is it? >
On ia32, except for MacOS, we don't enforce 16-byte stack alignment. We get 4-byte incoming stack alignment via object files: 1. Compiled with older gcc. 2. Compiled with gcc 3.x and earlier 4.x using -Os. 3. Compiled with gcc using -mpreferred-stack-boundary=2 4. From assembly code with 4 byte stack alignment. 5. Compiled with other compilers, which generate 4 byte stack alignment. It usually won't cause segfault until vectorizer is enabled. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41156