[Bug target/28731] New: Local variables not aligned to 4 byte boundary causes bus error due to unaligned access
raj dot khem at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Aug 15 05:41:00 GMT 2006
The following example core dumps on target when compiled with GCC 4.1.2
prelease and also with GCC 4.1.1
int main()
{
char k[255];
time((long*)k);
return 0;
}
The local variable is not tail aligned I think. This was aligned in gcc 3.4.3
Here is a diff of the two assembly files.
--- test.s 2006-08-14 21:12:59.000000000 -0700
+++ test-4.0.s 2006-08-14 21:08:30.000000000 -0700
@@ -5,16 +5,15 @@
.type main, #function
.proc 04
main:
- !#PROLOGUE# 0
save %sp, -368, %sp
- !#PROLOGUE# 1
- add %fp, -272, %g1
+ add %fp, -271, %g1
mov %g1, %o0
call time, 0
nop
mov 0, %g1
mov %g1, %i0
- ret
restore
+ jmp %o7+8
+ nop
.size main, .-main
- .ident "GCC: (GNU) 3.4.3 (MontaVista 3.4.3-25.0.96.0600605
2006-05-06)"
+ .ident "GCC: (GNU) 4.1.2 20060725 (prerelease) (MontaVista 4.1.0-2)"
--
Summary: Local variables not aligned to 4 byte boundary causes
bus error due to unaligned access
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: raj dot khem at gmail dot com
GCC build triplet: sparc-sun-solaris2.7
GCC host triplet: sparc-sun-solaris2.7
GCC target triplet: sparc-sun-solaris2.7
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28731
More information about the Gcc-bugs
mailing list