[Bug c++/37119] New: sizeof simple struct consisting of bit-fields too large and unpredictable

gcc-bugzilla at contacts dot eelis dot net gcc-bugzilla@gcc.gnu.org
Wed Aug 13 21:18:00 GMT 2008


Consider:

  #include <stdint.h>
  struct X { uint32_t a:17; uint8_t b:8; bool c:1; };
  #include <iostream>
  int main() { std::cout << sizeof(X) << '\n'; }

This prints "8", while I'd really expect it to print "4". Even more
surprisingly, if b's type is changed from uint8_t to uint16_t, the output
/does/ become "4".


-- 
           Summary: sizeof simple struct consisting of bit-fields too large
                    and unpredictable
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: gcc-bugzilla at contacts dot eelis dot net
  GCC host triplet: x86_64-pc-linux


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



More information about the Gcc-bugs mailing list