[Bug c++/10781] wrong class size and alignment with static class member

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Jan 11 19:07:00 GMT 2004


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-01-11 19:07 -------
The problem still happens on powerpc-darwin on powerpc64-linux.

The problem is that ROUND_TYPE_ALIGN does not take in effect that the fields can be 
static:

#undef  ROUND_TYPE_ALIGN
#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED)           \
  ((TARGET_ALTIVEC && TREE_CODE (STRUCT) == VECTOR_TYPE)        \
   ? MAX (MAX ((COMPUTED), (SPECIFIED)), 128)                   \
   : (TARGET_64BIT                                              \
      && (TREE_CODE (STRUCT) == RECORD_TYPE                     \
          || TREE_CODE (STRUCT) == UNION_TYPE                   \
          || TREE_CODE (STRUCT) == QUAL_UNION_TYPE)             \
      && TYPE_FIELDS (STRUCT) != 0                              \
      && TARGET_ALIGN_NATURAL == 0                              \
      && DECL_MODE (TYPE_FIELDS (STRUCT)) == DFmode)            \
   ? MAX (MAX ((COMPUTED), (SPECIFIED)), 64)                    \
   : MAX ((COMPUTED), (SPECIFIED)))

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |critical
             Status|WAITING                     |NEW
   Last reconfirmed|2003-08-16 03:18:21         |2004-01-11 19:07:40
               date|                            |
   Target Milestone|---                         |3.4.0


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



More information about the Gcc-bugs mailing list