Re: gcc forgets to decrease esp after function call

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Andrew Haley wrote:
Vladimir Simonov writes:
> > Andrew Haley wrote:
 > > Unfortunately, this does not produce a test case.
> > > > To be clear: if you want this bug to be addressed, oy must produce a
 > > test case that someone can run.  You must also provide the expected
 >  > output.
> > Sorry for delay with answer. I union both your letters. > > Are you able to reproduce my results using
 > gcc 4.1.2/4.1.1?

I didn't look in deatil.  Once I have a test case I will do so.

 > Do you agree with my analysis?
> > Do you mean I must add "main", body of called
 > function, script to build executable and show that
 > it crashes instead of print "Hello word"?
That will do.

 >  > Well, yeah, but that would break lots of other people's prgrams too,
 >  > and we know that doesn't happen.  So I want to know what is so special
 >  > about yours.
> > If you take a look at source you'll see that it is quite complex
 > templated code.

We have lots of that too.

 > I think the difference is in its complexity.  Say, gcc 4.0.2 can't
 > compile our projects at all due to "internal compiler error'.

Well, that's an easy test case too.  But really, I wouldn't use gcc
4.0.x.

 > And we made some efforts to make gcc 4.1.1 to compile the
 > sources. Now it can compile without internal crash but produced
 > code is incorrect :(

Sure, but once I have a test case I can try a bunch of different
compilers.  And then we can figure out why the error is occurring,
etc...

Andrew.


Hi

The attached test case can be built by compile.sh.
It produces two binaries - test_bin_bad & test_bin_good.

test_bin_good prints "Hello word" before exit.
test_bin_bad crashes.

The difference is the only -O2 used while test_bin_bad build.

The symptoms are the same - incorrect esp usage in caller
after call function returning object.

We reproduced the bug in gcc 4.1.0/4.1.1/4.1.2
gcc 3.x can't compile the sources.

Regards
Vladimir

Attachment: gcc_bug.tgz
Description: GNU Zip compressed data


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux