other/4957: #pragma pack(1) ... #pragma pack(4) does not restore the original alignment
ljrittle@gcc.gnu.org
ljrittle@gcc.gnu.org
Wed Mar 26 10:00:00 GMT 2003
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
More information about the Gcc-bugs
mailing list