diff options
Diffstat (limited to 'clang/test/SemaCXX/constant-expression-cxx1y.cpp')
| -rw-r--r-- | clang/test/SemaCXX/constant-expression-cxx1y.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/constant-expression-cxx1y.cpp b/clang/test/SemaCXX/constant-expression-cxx1y.cpp index ee88a3b959c..ebe8e989a83 100644 --- a/clang/test/SemaCXX/constant-expression-cxx1y.cpp +++ b/clang/test/SemaCXX/constant-expression-cxx1y.cpp @@ -870,3 +870,20 @@ namespace Lifetime { } static_assert((lifetime_versus_loops(), true), ""); } + +namespace Bitfields { + struct A { + bool b : 3; + int n : 4; + unsigned u : 5; + }; + constexpr bool test() { + A a {}; + a.b += 2; + --a.n; + --a.u; + a.n = -a.n * 3; + return a.b == false && a.n == 3 && a.u == 31; + } + static_assert(test(), ""); +} |

