diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-10-20 08:41:10 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-10-20 08:41:10 +0000 |
commit | aa9a8ce5d31975900c7243b1508f5111baddacbe (patch) | |
tree | b5dc1c3c04995e24e0407b68276d1ba79b37d989 /test | |
parent | 444d384a969ce05ae534bf8be3174e308dc8c58b (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.cpp | 5 | ||||
-rw-r--r-- | test/FixIt/fixit-cxx0x.cpp | 2 | ||||
-rw-r--r-- | test/Parser/cxx11-user-defined-literals.cpp | 3 |
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}} |