On Fri, Aug 30, 2013 at 03:26:59PM +0200, Paolo Carlini wrote: > Hi, > > On 08/30/2013 02:05 PM, Tim Shen wrote: > >+ const _TraitsT& _M_traits; > >+ _FlagT _M_flags; > >+ bool _M_is_non_matching; > >+ std::set<_CharT> _M_char_set; > >+ std::set<pair<_StringT, _StringT>> _M_range_set; > >+ _CharClassT _M_class_set; > another, very general comment: now that nothing is decided ABI-wise > for these features, let's pay attention to the layouts, let's make > sure that the data members are ordered in the best way to minimize > the size. For example, when I see a bool sandwiched between big > objects something seems at least weird... Let's make measurements > and optimize for 64-bit but let's double check on 32-bit too.
You could use pahole utility from dwarves for this, though not sure how far it is with support for DWARF4 and extensions recent gcc emit, so perhaps you need -gdwarf-3 -gstrict-dwarf or similar. Jakub