https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57335
--- Comment #4 from Paolo Carlini <paolo.carlini at oracle dot com> --- The code in cxx_eval_bit_field_ref needs some work, doesn't handle CONSTRUCTORs inside CONSTRUCTORs. This is a reduced testcase: struct BitsOrderCheck { struct Data { const unsigned char set:1; constexpr Data() : set{1} {} }; constexpr bool IsLsbBottom() const { return 1 == data_.set; } const Data data_; }; static_assert(BitsOrderCheck().IsLsbBottom(), "blah");