aaron.ballman added a comment. Precommit CI is currently crashing on the newly introduced test case.
================ Comment at: clang/test/AST/Interp/bitfields.cpp:36 + // TODO: +=, -=, etc. operators. +} ---------------- shafik wrote: > This is an interesting test case: > > ``` > struct A {int c:3;}; > > constexpr int f() { > A a1{3}; > return a1.c++; > } > > void g() { > constexpr int x = f(); > } > ``` > > We are overflowing the bit-field value but it is implementation defined what > the value is 😱 CC @aaron.ballman > > Might be worth checking the result of conditional operator and comma etc are > bit-fields when they are supposed to be and therefore sizeof fails for those > cases. Yeah, the bit-field overflow case is http://eel.is/c++draft/expr.ass#4 -- we don't document what we do in this case (so this is a good opportunity to improve our docs), but we appear to treat it the same as overflow for a non-bit-field integer type: https://godbolt.org/z/4Ta7KoP58 CHANGES SINCE LAST ACTION https://reviews.llvm.org/D155270/new/ https://reviews.llvm.org/D155270 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits