------- Comment #6 from t66667 at gmail dot com 2010-09-20 11:41 ------- (In reply to comment #3) > Even simpler testcase, now in C. > > > #include <stdio.h> > #include <stdlib.h> > > void a() > { > char s[2]; > > void b() { > char p[4096]; You deliberately use a very large storage for a very little data. And it fails on m64 and not m32 which is rather weird and odd. So I went to the bottom of this number which appears to be 3920. 3920 = ok Any number beyond 3920 fails on m64 wtf? I have no idea what is going on. It just seems to me interesting to test out your case... Yes O0 fails also... who knows... > > if ( strcmp(s,"s")!=0 ) abort(); > strcpy( p,"p"); > } > > strcpy( s,"s" ); > b(); > } > > main() > { > a(); > } >
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45694