diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGenCXX/const-init-cxx11.cpp | 3 | ||||
-rw-r--r-- | test/CodeGenCXX/static-init.cpp | 2 | ||||
-rw-r--r-- | test/SemaCXX/constant-expression-cxx11.cpp | 4 |
3 files changed, 9 insertions, 0 deletions
diff --git a/test/CodeGenCXX/const-init-cxx11.cpp b/test/CodeGenCXX/const-init-cxx11.cpp index c745deebf0..62a345a495 100644 --- a/test/CodeGenCXX/const-init-cxx11.cpp +++ b/test/CodeGenCXX/const-init-cxx11.cpp @@ -92,6 +92,9 @@ namespace Array { // CHECK: @_ZN5Array1cE = constant [6 x [4 x i8]] [{{.*}} c"foo\00", [4 x i8] c"a\00\00\00", [4 x i8] c"bar\00", [4 x i8] c"xyz\00", [4 x i8] c"b\00\00\00", [4 x i8] c"123\00"] extern constexpr char c[6][4] = { "foo", "a", { "bar" }, { 'x', 'y', 'z' }, { "b" }, '1', '2', '3' }; + // CHECK: @_ZN5Array2ucE = constant [4 x i8] c"foo\00" + extern constexpr unsigned char uc[] = { "foo" }; + struct C { constexpr C() : n(5) {} int n, m = 3 * n + 1; }; // CHECK: @_ZN5Array5ctorsE = constant [3 x {{.*}}] [{{.*}} { i32 5, i32 16 }, {{.*}} { i32 5, i32 16 }, {{.*}} { i32 5, i32 16 }] extern const C ctors[3]; diff --git a/test/CodeGenCXX/static-init.cpp b/test/CodeGenCXX/static-init.cpp index ed659de5e0..74278f7128 100644 --- a/test/CodeGenCXX/static-init.cpp +++ b/test/CodeGenCXX/static-init.cpp @@ -2,6 +2,7 @@ // CHECK: @_ZZ1hvE1i = internal global i32 0, align 4 // CHECK: @base_req = global [4 x i8] c"foo\00", align 1 +// CHECK: @base_req_uchar = global [4 x i8] c"bar\00", align 1 // CHECK: @_ZZN5test31BC1EvE1u = internal global { i8, [3 x i8] } { i8 97, [3 x i8] undef }, align 4 // CHECK: @_ZZN5test1L6getvarEiE3var = internal constant [4 x i32] [i32 1, i32 0, i32 2, i32 4], align 16 @@ -64,6 +65,7 @@ namespace test1 { // Make sure we emit the initializer correctly for the following: char base_req[] = { "foo" }; +unsigned char base_req_uchar[] = { "bar" }; namespace union_static_local { // CHECK: define internal void @_ZZN18union_static_local4testEvEN1c4mainEv diff --git a/test/SemaCXX/constant-expression-cxx11.cpp b/test/SemaCXX/constant-expression-cxx11.cpp index 41d214a636..9f80e7169b 100644 --- a/test/SemaCXX/constant-expression-cxx11.cpp +++ b/test/SemaCXX/constant-expression-cxx11.cpp @@ -615,6 +615,10 @@ static_assert(agg1.arr[4] == 0, ""); static_assert(agg1.arr[5] == 0, ""); // expected-error {{constant expression}} expected-note {{read of dereferenced one-past-the-end}} static_assert(agg1.p == nullptr, ""); +static constexpr const unsigned char uc[] = { "foo" }; +static_assert(uc[0] == 'f', ""); +static_assert(uc[3] == 0, ""); + namespace SimpleDerivedClass { struct B { |