target/6882: useless stack adjustment code on SPARC
Dan Nicolaescu
dann@godzilla.ics.uci.edu
Fri May 31 00:46:00 GMT 2002
>Number: 6882
>Category: target
>Synopsis: useless stack adjustment code on SPARC
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri May 31 00:46:06 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Dan Nicolaescu <dann@godzilla.ics.uci.edu>
>Release: gcc-3.1
>Organization:
>Environment:
sparc-sun-solaris2.7
>Description:
For the following code:
class Complex_i {
public:
int re, im;
Complex_i (int r, int i) : re(r), im(i) {}
Complex_i () {}
};
inline Complex_i operator+ (Complex_i a, Complex_i b)
{
return Complex_i ( a.re+b.re, a.im+b.im);
}
void
foobar (void)
{
Complex_i factor (123, 428);
factor = factor + factor;
}
gcc-3.1 -O3 generates:
_Z6foobarv:
.LLFB4:
!#PROLOGUE# 0
add %sp, -144, %sp
.LLCFI2:
!#PROLOGUE# 1
nop
retl
sub %sp, -144, %sp
the stack adjustment code is useless. Is it possible not to emmit it?
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list