This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
optimization/10280: __builtin_frame_address() broken in ia64 optimizer
- From: ahs3 at fc dot hp dot com
- To: gcc-gnats at gcc dot gnu dot org
- Cc: bobm at fc dot hp dot com
- Date: 31 Mar 2003 18:24:54 -0000
- Subject: optimization/10280: __builtin_frame_address() broken in ia64 optimizer
- Reply-to: ahs3 at fc dot hp dot com
>Number: 10280
>Category: optimization
>Synopsis: __builtin_frame_address() broken in ia64 optimizer
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Mar 31 18:26:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: Al Stone
>Release: gcc-2.96 or gcc 3.2.3
>Organization:
>Environment:
Red Hat Advanced Server, or Debian GNU/Linux, on an ia64 processor.
>Description:
It appears that __builting_frame_address() is broken in the presence of the optimizer on ia64; this was found when compiling Linux kernel code that caused a stack overflow. When one looks at the assembler generated, it appears very odd that the alloc increases the register stack by 80 entries.
>How-To-Repeat:
Compile without -O and the sample works properly; compile with -O and it fails.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-csrc; name="bug.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug.c"
LyogVGhpcyBwcm9ncmFtIGlsbHVzdHJhdGVzIGFuIElBNjQgZ2NjIC1PIHByb2JsZW0gd2l0aAog
KiBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcy4gIEJlc2lkZXMgdGhlIGZ1bmN0aW9uIHJldHVybmlu
ZwogKiBhIHdyb25nIHJlc3VsdCwgdGhlIHN5bXB0b20gdGhhdCBsZWQgdG8gZGlzY292ZXJ5IHdh
cyB0aGF0IHRoZQogKiBhbGxvYyBzdGF0ZW1lbnQgZ2VuZXJhdGVkIGZvciByb3V0aW5lcyB0aGF0
IHVzZQogKiBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyBhbGxvY2F0ZXMgYW4gdW51c3VhbGx5IGxh
cmdlIG51bWJlciBvZgogKiByZWdpc3RlcnMsIGxlYWRpbmcgdG8ga2VybmVsIHN0YWNrIG92ZXJm
bG93IGluIGtlcm5lbCBtb2R1bGVzIHRoYXQKICogdXNlZCB0aGUgZnVuY3Rpb24gaW4gYSBERUJV
RyBtYWNyby4KICoKICogQ29tcGlsZSB3aXRoIGdjYyAtTy4gIFJ1biB0byBzZWUgd3JvbmcgcmVz
dWx0LiAgQ29tcGlsZSBnY2MgLU8gLVMuCiAqIEV4YW1pbmUgYXNzZW1ibHkgb3V0cHV0IHRvIHNl
ZSByZWdpc3RlciBhbGxvY2F0aW9uIHByb2JsZW0uCiAqIEZvciBleGFtcGxlOiBhbGxvYyByMTYg
PSBhci5wZnMsIDAsIDgwLCA0LCAwCiAqCiAqIEJvYiBNb250Z29tZXJ5LCBIUCwgMjcgTWFyIDIw
MDMuCiAqLwoKI2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGZvbzModm9pZCkKewoJaW50IGFbMjBd
OwoJcHJpbnRmKCJmb28zOiAlcCAlcCAlcFxuIiwgJmFbMF0sICZhWzE5XSwKCQkJKCh1bnNpZ25l
ZCBsb25nKV9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzKDApKSk7Cn0KCnZvaWQgZm9vMih2b2lkKQp7
CglpbnQgYVsyMF07CglwcmludGYoImZvbzI6ICVwICVwICVwXG4iLCAmYVswXSwgJmFbMTldLAoJ
CQkoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX2ZyYW1lX2FkZHJlc3MoMCkpKTsKCWZvbzMoKTsK
fQoKdm9pZCBmb28xKHZvaWQpCnsKCWludCBhWzIwXTsKCXByaW50ZigiZm9vMTogJXAgJXAgJXBc
biIsICZhWzBdLCAmYVsxOV0sCgkJCSgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fZnJhbWVfYWRk
cmVzcygwKSkpOwoJZm9vMigpOwp9CgptYWluKCkKewoJZm9vMSgpOwp9Cgo=