diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-05-05 16:40:13 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-05-05 16:40:13 +0000 |
| commit | 430c23bb422ec3332a6e462fba353c1e8051fb85 (patch) | |
| tree | 12adcfe5a847d1269354eae8bd5e4f5331a5f9c6 /clang/test | |
| parent | e54c307bb4ed92a625216f477b223f193b0fcc2c (diff) | |
| download | bcm5719-llvm-430c23bb422ec3332a6e462fba353c1e8051fb85.tar.gz bcm5719-llvm-430c23bb422ec3332a6e462fba353c1e8051fb85.zip | |
Handle parens properly when initializing a char array from a string literal.
llvm-svn: 181159
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/SemaCXX/constant-expression-cxx11.cpp | 13 | ||||
| -rw-r--r-- | clang/test/SemaCXX/pascal-strings.cpp | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/constant-expression-cxx11.cpp b/clang/test/SemaCXX/constant-expression-cxx11.cpp index 1d377eb81d3..09a9cb5dd8d 100644 --- a/clang/test/SemaCXX/constant-expression-cxx11.cpp +++ b/clang/test/SemaCXX/constant-expression-cxx11.cpp @@ -414,6 +414,19 @@ struct V { }; static_assert(V().c[1] == "i"[0], ""); +namespace Parens { + constexpr unsigned char a[] = ("foo"), b[] = {"foo"}, c[] = {("foo")}, + d[4] = ("foo"), e[5] = {"foo"}, f[6] = {("foo")}; + static_assert(a[0] == 'f', ""); + static_assert(b[1] == 'o', ""); + static_assert(c[2] == 'o', ""); + static_assert(d[0] == 'f', ""); + static_assert(e[1] == 'o', ""); + static_assert(f[2] == 'o', ""); + static_assert(f[5] == 0, ""); + static_assert(f[6] == 0, ""); // expected-error {{constant expression}} expected-note {{one-past-the-end}} +} + } namespace Array { diff --git a/clang/test/SemaCXX/pascal-strings.cpp b/clang/test/SemaCXX/pascal-strings.cpp index 89194b54aa8..f4c692db58f 100644 --- a/clang/test/SemaCXX/pascal-strings.cpp +++ b/clang/test/SemaCXX/pascal-strings.cpp @@ -4,3 +4,5 @@ const wchar_t *pascalString = L"\pThis is a Pascal string"; unsigned char a[3] = "\pa"; unsigned char b[3] = "\pab"; unsigned char c[3] = "\pabc"; // expected-error {{initializer-string for char array is too long}} +unsigned char d[3] = ("\pab"); +unsigned char e[3] = ("\pabc"); // expected-error {{initializer-string for char array is too long}} |

