--- Comment #15 from t7 at gmail dot com 2010-09-22 12:20 ---
Hello,
Thank you so much for getting this problem fixed.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45694
--- Comment #11 from t7 at gmail dot com 2010-09-21 10:28 ---
Hi,
(In reply to comment #0)
Hi,
(i first reported this to mingw32-w64's bug tracker:
http://sourceforge.net/tracker/?func=detailaid=3067541group_id=202880atid=983354
and was forwarded here)
Kai has posted a patch
--- Comment #12 from ktietz at gcc dot gnu dot org 2010-09-21 17:58 ---
Subject: Bug 45694
Author: ktietz
Date: Tue Sep 21 17:58:32 2010
New Revision: 164489
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164489
Log:
2010-09-21 Kai Tietz kai.ti...@onevision.com
PR
--- Comment #13 from ktietz at gcc dot gnu dot org 2010-09-21 19:05 ---
Subject: Bug 45694
Author: ktietz
Date: Tue Sep 21 19:05:18 2010
New Revision: 164495
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164495
Log:
2010-09-21 Kai Tietz kai.ti...@onevision.com
PR
--- Comment #14 from ktietz at gcc dot gnu dot org 2010-09-21 19:09 ---
Issue fixed on mainline and backported to 4.5 branch
--
ktietz at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #3 from jpr at csc dot fi 2010-09-20 11:05 ---
Even simpler testcase, now in C.
#include stdio.h
#include stdlib.h
void a()
{
char s[2];
void b() {
char p[4096];
if ( strcmp(s,s)!=0 ) abort();
strcpy( p,p);
}
strcpy( s,s );
b();
}
main()
{
a();
--- Comment #4 from jpr at csc dot fi 2010-09-20 11:12 ---
For the testcase in comment #3 the ___chkstk call is also
generated with -O0 (and trying to use %r10 across the call...)
Juha
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45694
--- Comment #5 from jpr at csc dot fi 2010-09-20 11:36 ---
And still reduced testcase, fails at -O0.
void main()
{
char s;
void b() {
char p[4096];
if ( s!='s' ) abort();
}
s='s';
b();
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45694
--- Comment #6 from t7 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
--- Comment #7 from jpr at csc dot fi 2010-09-20 11:46 ---
Hi,
yes the stack size is relevant here, because otherwise gcc does not
call ___chkstk(), which seems to be the trouble here. 4K stack usage
is not very big IMHO.
-Juha
(In reply to comment #6)
(In reply to comment #3)
Even
--- Comment #8 from t7 at gmail dot com 2010-09-20 11:59 ---
(In reply to comment #7)
Hi,
yes the stack size is relevant here, because otherwise gcc does not
call ___chkstk(), which seems to be the trouble here. 4K stack usage
is not very big IMHO.
I went deeper... and found out
--- Comment #9 from ktietz at gcc dot gnu dot org 2010-09-20 12:07 ---
(In reply to comment #8)
This issue is caused by the fact that __chkstk clobbers r10 (see its
constrains), which is used here as argument-register for this nested function.
So something is broken here about
--- Comment #10 from t7 at gmail dot com 2010-09-21 05:57 ---
(In reply to comment #9)
(In reply to comment #8)
This issue is caused by the fact that __chkstk clobbers r10 (see its
constrains), which is used here as argument-register for this nested function.
So something is
13 matches
Mail list logo