egcs-1.1b alpha-dec-osf3.2 internal error in change_address()
Fergus Henderson
fjh@cs.mu.OZ.AU
Fri Apr 30 23:15:00 GMT 1999
On 07-Apr-1999, Richard Henderson <rth@cygnus.com> wrote:
> However, I can't replicate this failure with egcs-1.1.2 or current cvs.
> I am testing from alpha-linux, but that shouldn't matter. Can you
> replicate this moving up to the current release?
Yes. I can duplicate the bug with egcs-1.1.2.
Using egcs-1.1.2 I can also duplicate all of Hans-Peter Nilsson's
efforts with gdb.
I also tried compiling a trivial example `void foo() {}' without
optimization, and it appears that the frame pointer is not eliminated
in that function. I set a breakpoint in alpha_emit_epilogue() and
printed out the value of `frame_pointer_needed'; it was 1.
It generates the following code (note the use of $15):
bash$ cat foo.c
void foo() {
}
bash$ ./cc1 -quiet < foo.c
.verstamp 3 11
.set noreorder
.set volatile
.set noat
.file 1 "stdin"
.text
.align 5
.globl foo
.ent foo
foo:
.frame $15,16,$26,0
.mask 0x4008000,-16
$foo..ng:
subq $30,16,$30
stq $26,0($30)
stq $15,8($30)
bis $30,$30,$15
.prologue 0
$L1:
bis $15,$15,$30
ldq $26,0($30)
ldq $15,8($30)
addq $30,16,$30
ret $31,($26),1
.end foo
--
Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit
WWW: < http://www.cs.mu.oz.au/~fjh > | of excellence is a lethal habit"
PGP: finger fjh@128.250.37.3 | -- the last words of T. S. Garp.
More information about the Gcc-bugs
mailing list