Author: Timm Bäder Date: 2023-10-19T11:46:43+02:00 New Revision: 2b97fe2e5158d3803c6d45a38e72c9cd308e2daf
URL: https://github.com/llvm/llvm-project/commit/2b97fe2e5158d3803c6d45a38e72c9cd308e2daf DIFF: https://github.com/llvm/llvm-project/commit/2b97fe2e5158d3803c6d45a38e72c9cd308e2daf.diff LOG: [clang][Interp][NFC] Add more tests for bitfield initializers Added: Modified: clang/test/AST/Interp/bitfields.cpp Removed: ################################################################################ diff --git a/clang/test/AST/Interp/bitfields.cpp b/clang/test/AST/Interp/bitfields.cpp index 9a144e2f0d9610e..d3a8a083063ab47 100644 --- a/clang/test/AST/Interp/bitfields.cpp +++ b/clang/test/AST/Interp/bitfields.cpp @@ -1,5 +1,7 @@ // RUN: %clang_cc1 -fexperimental-new-constant-interpreter -Wno-bitfield-constant-conversion -verify %s // RUN: %clang_cc1 -verify=ref -Wno-bitfield-constant-conversion %s +// RUN: %clang_cc1 -std=c++20 -fexperimental-new-constant-interpreter -Wno-bitfield-constant-conversion -verify %s +// RUN: %clang_cc1 -std=c++20 -verify=ref -Wno-bitfield-constant-conversion %s // expected-no-diagnostics // ref-no-diagnostics @@ -31,6 +33,27 @@ namespace Basic { return a.a = 10; } static_assert(storeA2() == 2, ""); + +#if __cplusplus >= 202002 + struct Init1 { + unsigned a : 2 = 1; + }; + constexpr Init1 I1{}; + static_assert(I1.a == 1, ""); + + struct Init2 { + unsigned a : 2 = 100; + }; + constexpr Init2 I2{}; + static_assert(I2.a == 0, ""); +#endif + + struct Init3 { + unsigned a : 2; + constexpr Init3() : a(100) {} + }; + constexpr Init3 I3{}; + static_assert(I3.a == 0, ""); } namespace Overflow { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits