From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17953 invoked by alias); 28 Oct 2008 18:28:18 -0000 Received: (qmail 16591 invoked by uid 48); 28 Oct 2008 18:26:57 -0000 Date: Tue, 28 Oct 2008 18:28:00 -0000 Message-ID: <20081028182657.16590.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libfortran/37839] st_parameter_dt has unwanted padding, is out of sync with compiler In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "sje at cup dot hp dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-10/txt/msg01844.txt.bz2 ------- Comment #9 from sje at cup dot hp dot com 2008-10-28 18:26 ------- Further investigation shows that it is not the size of common that is the problem. The bug is related to the new union of st_parameter_43 and st_parameter_44. Specifically, st_parameter_44 contains pos which is type GFC_IO_INT which is 8 bytes on IA64 and requires an 8 byte alignment. This causes the entire st_parameter_44 structure to require 8 byte alignment and the union that it is part of to require 8 byte alignment. This changes the layout/offset of fields in the p and q parts of the st_parameter_dt structure. The compiler definition of st_parameter_dt, created from ioparm.def, does not know anything about the union that is used in the library and just lays out the fields as if there was no *_44 structure and no union and this layout is then different then the library layout. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37839