summaryrefslogtreecommitdiffstats
path: root/clang/test/FixIt/fixit-cxx0x.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-03-08 23:06:02 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-03-08 23:06:02 +0000
commit7d182a7909881f5555db0f519843681a7252f79d (patch)
tree852efa4a708a02a27e955c24f47b933075495f99 /clang/test/FixIt/fixit-cxx0x.cpp
parentf7fc1d48595d946929908c2fb3658450b2a2cebe (diff)
downloadbcm5719-llvm-7d182a7909881f5555db0f519843681a7252f79d.tar.gz
bcm5719-llvm-7d182a7909881f5555db0f519843681a7252f79d.zip
Fix a couple of issues with literal-operator-id parsing, and provide recovery
for a few kinds of error. Specifically: Since we're after translation phase 6, the "" token might be formed by multiple source-level string literals. Checking the token width is not a correct way of detecting empty string literals, due to escaped newlines. Diagnose and recover from a missing space between "" and suffix, and from string literals other than "", which are followed by a suffix. llvm-svn: 152348
Diffstat (limited to 'clang/test/FixIt/fixit-cxx0x.cpp')
-rw-r--r--clang/test/FixIt/fixit-cxx0x.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/FixIt/fixit-cxx0x.cpp b/clang/test/FixIt/fixit-cxx0x.cpp
index 2bf9b20326e..dcd9f74a108 100644
--- a/clang/test/FixIt/fixit-cxx0x.cpp
+++ b/clang/test/FixIt/fixit-cxx0x.cpp
@@ -65,3 +65,15 @@ void S2::f(int i) {
const char *p = "foo"bar; // expected-error {{requires a space between}}
#define ord - '0'
int k = '4'ord; // expected-error {{requires a space between}}
+
+void operator""_x(char); // expected-error {{requires a space}}
+void operator"x" _y(char); // expected-error {{must be '""'}}
+void operator L"" _z(char); // expected-error {{encoding prefix}}
+void operator "x" "y" U"z" ""_whoops "z" "y"(char); // expected-error {{must be '""'}}
+
+void f() {
+ 'a'_x;
+ 'b'_y;
+ 'c'_z;
+ 'd'_whoops;
+}
OpenPOWER on IntegriCloud