[Bug c++/17287] Different class layout generated by g++ 3.3, 3.4 and 4.0.

mmitchel at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Oct 12 05:54:00 GMT 2004


------- Additional Comments From mmitchel at gcc dot gnu dot org  2004-10-12 05:54 -------
G++ 3.3 used a slightly different C++ ABI from G++ 3.4 and G++ 3.5 (which has
now been renamed G++ 4.0).  You can get the 3.3 C++ ABI in G++ 3.4/4.0 by using
-fabi-version=1.  So, that explains the 3.3 vs. 3.4 difference.

You're comparing G++ 3.4 for powerpc-suse-linux with G++ 4.0 for
powerpc-apple-darwin.  Darwin does not use the same structure layout rules as
GNU/Linux, so that is not a fair comparision.  However, I do not think that is
making a difference in this case.  The SuSE layout (12 bytes) is correct.

The G++ 4.0 results you display cannot be replicated with the mainline compiler
when compiling for powerpc-apple-darwin.  You are using a very old version of
G++ 3.5 which was apparently distributed directly by Apple.  You might want to
contact Apple directly about this issue.

Since the FSF version of G++ uses the correct 12-byte layout on
powerpc-apple-darwin, I have closed this PR.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17287



More information about the Gcc-bugs mailing list