From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22870 invoked by alias); 26 Mar 2003 09:55:36 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 21371 invoked by uid 48); 26 Mar 2003 09:55:05 -0000 Date: Wed, 26 Mar 2003 09:55:00 -0000 Message-ID: <20030326095505.21370.qmail@sources.redhat.com> To: gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, igusarov@akella.com, ljrittle@gcc.gnu.org, nobody@gcc.gnu.org From: ljrittle@gcc.gnu.org Reply-To: ljrittle@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, igusarov@akella.com, ljrittle@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: other/4957: #pragma pack(1) ... #pragma pack(4) does not restore the original alignment X-SW-Source: 2003-03/txt/msg01777.txt.bz2 List-Id: Synopsis: #pragma pack(1) ... #pragma pack(4) does not restore the original alignment Responsible-Changed-From-To: unassigned->ljrittle Responsible-Changed-By: ljrittle Responsible-Changed-When: Wed Mar 26 09:55:05 2003 Responsible-Changed-Why: Mine (only because posted from FreeBSD user). State-Changed-From-To: open->closed State-Changed-By: ljrittle State-Changed-When: Wed Mar 26 09:55:05 2003 State-Changed-Why: I am closing this report for the following reasons (please open a new report, if you like after considering this feedback and overcoming the issues I found). (a) I can confirm that g++ 3.2.2 compiles your posted *.i the same way. (b) g++ mainline can't even compile your posted *.i without error due to radical improvements in the template parser. (c) you did a great job describing the large test case (and I'm sorry if no one ever responded to you when you first posted it), however it is still not clear to me that various one-definition rule (ODR) issues are properly considered. Even though you aren't linking the code together, ODR applies for things like this. Someone that is motivated would have to sort out the test case. I attempted to build a small self-contained test case based on your findings. However: all my examples worked both with g++ 3.2 and mainline. This is why I believe your case might violate ODR. OTOH, it is also possible that your issue was related to template instantiation context botches. Since that part of the compiler is now completely revamped, your code would have to be tested against it and as I noted, your preprocessed code attachment no longer compiles. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4957