aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-10-20 08:41:10 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-10-20 08:41:10 +0000
commitaa9a8ce5d31975900c7243b1508f5111baddacbe (patch)
treeb5dc1c3c04995e24e0407b68276d1ba79b37d989 /test
parent444d384a969ce05ae534bf8be3174e308dc8c58b (diff)
DR1473: Do not require a space between operator"" and the ud-suffix in a
literal-operator-id. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166373 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CXX/over/over.oper/over.literal/p8.cpp5
-rw-r--r--test/FixIt/fixit-cxx0x.cpp2
-rw-r--r--test/Parser/cxx11-user-defined-literals.cpp3
3 files changed, 4 insertions, 6 deletions
diff --git a/test/CXX/over/over.oper/over.literal/p8.cpp b/test/CXX/over/over.oper/over.literal/p8.cpp
index 3f76082d10..6f636104e4 100644
--- a/test/CXX/over/over.oper/over.literal/p8.cpp
+++ b/test/CXX/over/over.oper/over.literal/p8.cpp
@@ -9,11 +9,10 @@ void operator "" _km(long double); // ok
string operator "" _i18n(const char*, std::size_t); // ok
// FIXME: This should be accepted once we support UCNs
template<char...> int operator "" \u03C0(); // ok, UCN for lowercase pi // expected-error {{expected identifier}}
-float operator ""E(const char *); // expected-error {{C++11 requires a space between literal and identifier}} expected-warning {{reserved}}
+float operator ""E(const char *); // expected-error {{invalid suffix on literal}} expected-warning {{reserved}}
float operator " " B(const char *); // expected-error {{must be '""'}} expected-warning {{reserved}}
string operator "" 5X(const char *, std::size_t); // expected-error {{expected identifier}}
double operator "" _miles(double); // expected-error {{parameter}}
template<char...> int operator "" j(const char*); // expected-error {{parameter}}
-// FIXME: Accept this as an extension, with a fix-it to add the space
-float operator ""_E(const char *); // expected-error {{C++11 requires a space between the "" and the user-defined suffix in a literal operator}}
+float operator ""_E(const char *);
diff --git a/test/FixIt/fixit-cxx0x.cpp b/test/FixIt/fixit-cxx0x.cpp
index 0c837b4beb..a173ce4bc2 100644
--- a/test/FixIt/fixit-cxx0x.cpp
+++ b/test/FixIt/fixit-cxx0x.cpp
@@ -66,13 +66,11 @@ 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;
diff --git a/test/Parser/cxx11-user-defined-literals.cpp b/test/Parser/cxx11-user-defined-literals.cpp
index 49fea01eef..613c0b9ec6 100644
--- a/test/Parser/cxx11-user-defined-literals.cpp
+++ b/test/Parser/cxx11-user-defined-literals.cpp
@@ -102,9 +102,10 @@ void operator R"xyzzy()xyzzy" _foo(long double); // ok
void operator"" "" R"()" "" _foo(const char *); // ok
+void operator ""_no_space(const char *); // ok
+
// Ensure we diagnose the bad cases.
void operator "\0" _non_empty(const char *); // expected-error {{must be '""'}}
-void operator ""_no_space(const char *); // expected-error {{C++11 requires a space}}
void operator L"" _not_char(const char *); // expected-error {{cannot have an encoding prefix}}
void operator "" ""
U"" // expected-error {{cannot have an encoding prefix}}