This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/30826] alignment error when optimizing with inlining
- From: "sje at cup dot hp dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Feb 2007 23:26:10 -0000
- Subject: [Bug target/30826] alignment error when optimizing with inlining
- References: <bug-30826-9385@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from sje at cup dot hp dot com 2007-02-16 23:26 -------
It looks like GCC is running afoul of the IA64 Runtime standard. In section
8.6 (return values) it says that aggregates larger than 256 bytes (mallinfo is
320 bytes), the caller must allocate a buffer and pass a pointer to that buffer
to the callee. It also says that the buffer must be 16 byte aligned. GCC is
passing a pointer to the local mi variable. That local variable is only
required to have 4 byte alignment because that is the maximum alignment of any
of its fields.
The inlining is incidental in that it is what results in mi being 4 (but not 8)
byte aligned and thus causing the segfault.
There is another bug (PR15087) about GCC not obeying the IA64 runtime alignment
requrements in other cases.
--
sje at cup dot hp dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |sje at cup dot hp dot com
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2007-02-16 23:26:10
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30826