🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #5911

Bug (or a feature?) with alignment of nested structures

#5911
From: Michal Prussak
Date: Mon, 27 Jan 1997 00:00
47 lines
2700 bytes
I have discovered a problem with alignment of nested structures with 
gcc 2.7.2 on Solaris 2.3. In the program below, the structure
TestStruct1 is placed on a 2-byte instead of 4-byte boundary and
I get a Bus Error:

% gcc -v -g test2.c -o test2
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/specs
gcc version 2.7.2
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=7 -Dsun -Dsparc -Dunix -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun__ -D__sparc__ -D__unix__ -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun -D__sparc -D__unix -Asystem(unix) -Asystem(svr4) -Acpu(sparc) -Amachine(sparc) -g test2.c /tmp/cca004j7.i
GNU CPP version 2.7.2 (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/local/sparc-sun-solaris2.3/include
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/cc1 /tmp/cca004j7.i -quiet -dumpbase test2.c -g -version -o /tmp/cca004j7.s
GNU C version 2.7.2 (sparc) compiled by GNU C version 2.7.2.
 /usr/ccs/bin/as -V -Qy -s -o /tmp/cca004j71.o /tmp/cca004j7.s
/usr/ccs/bin/as: SC3.0 early access 01 Sep 1993
 /usr/ccs/bin/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o test2 /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/crt1.o /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/crti.o /usr/ccs/lib/values-Xa.o /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/crtbegin.o -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2 -L/usr/ccs/bin -L/usr/ccs/lib -L/usr/local/lib /tmp/cca004j71.o -lgcc -lc -lgcc /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/crtend.o /usr/local/lib/gcc-lib/sparc-sun-solaris2.3/2.7.2/crtn.o
ld: Software Generation Utilities (SGU) SunOS/ELF (LK-1.4 (S/I))
% a.out
Bus error (core dumped)
% 

------------------------------test2.c-------------------------------
#include <malloc.h>

struct TestStruct1 {
	char *ptr1;
};

struct TestStruct2 {
	short     x;
	struct TestStruct1 *ptr;
};

main() 
{
	struct TestStruct2 x;

	x.ptr = (struct TestStruct1 *) malloc(4);
	x.ptr[0].ptr1 = 0;
}
Technical Details
Message-ID: <5cjbtg$nun@bogus.cts.com>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 113d02,45936f45d66d6491,start
X-Google-Attributes: gid113d02,public
From: mpp@miteksys.com (Michal Prussak)
Subject: Bug (or a feature?) with alignment of nested structures
Date: 1997/01/27
Message-ID: <5cjbtg$nun@bogus.cts.com>
X-Deja-AN: 212814006
sender: bug-gcc-request@prep.ai.mit.edu
organization: Mitek Systems, Inc.
x-gateway: relay7.UU.NET from bug-gcc to gnu.gcc.bug; Mon, 27 Jan 1997 18:55:01 EST
newsgroups: gnu.gcc.bug