// RUN: %clang_cc1 -std=c++11 -verify %s

using size_t = decltype(sizeof(int));
void operator "" wibble(const char *); // expected-warning {{user-defined literal suffixes not starting with '_' are reserved; no literal will invoke this operator}}
void operator "" wibble(const char *, size_t); // expected-warning {{user-defined literal suffixes not starting with '_' are reserved; no literal will invoke this operator}}

template<typename T>
void f() {
  // A program containing a reserved ud-suffix is ill-formed.
  123wibble; // expected-error {{invalid suffix 'wibble'}}
  123.0wibble; // expected-error {{invalid suffix 'wibble'}}
  const char *p = ""wibble; // expected-error {{invalid suffix on literal; C++11 requires a space between literal and identifier}} expected-error {{expected ';'}}
  const char *q = R"x("hello")x"wibble; // expected-error {{invalid suffix on literal; C++11 requires a space between literal and identifier}} expected-error {{expected ';'}}
}

// RUN: %clang_cc1 -std=c++11 -verify %s

using size_t = decltype(sizeof(int));
void operator "" wibble(const char *); // expected-warning {{user-defined literal suffixes not starting with '_' are reserved; no literal will invoke this operator}}
void operator "" wibble(const char *, size_t); // expected-warning {{user-defined literal suffixes not starting with '_' are reserved; no literal will invoke this operator}}

template<typename T>
void f() {
  // A program containing a reserved ud-suffix is ill-formed.
  // FIXME: Reject these for the right reason.
  123wibble; // expected-error {{suffix 'wibble'}}
  123.0wibble; // expected-error {{suffix 'wibble'}}
  const char *p = ""wibble; // expected-error {{invalid suffix on literal; C++11 requires a space between literal and identifier}} expected-error {{expected ';'}}
  const char *q = R"x("hello")x"wibble; // expected-error {{invalid suffix on literal; C++11 requires a space between literal and identifier}} expected-error {{expected ';'}}
}

--- 
+++ 
@@ -7,9 +7,8 @@
 template<typename T>
 void f() {
   // A program containing a reserved ud-suffix is ill-formed.
-  // FIXME: Reject these for the right reason.
-  123wibble; // expected-error {{suffix 'wibble'}}
-  123.0wibble; // expected-error {{suffix 'wibble'}}
+  123wibble; // expected-error {{invalid suffix 'wibble'}}
+  123.0wibble; // expected-error {{invalid suffix 'wibble'}}
   const char *p = ""wibble; // expected-error {{invalid suffix on literal; C++11 requires a space between literal and identifier}} expected-error {{expected ';'}}
   const char *q = R"x("hello")x"wibble; // expected-error {{invalid suffix on literal; C++11 requires a space between literal and identifier}} expected-error {{expected ';'}}
 }
Remove a test FIXME for a case which is already fixed.


git-svn-id: ffe668792ed300d6c2daa1f6eba2e0aa28d7ec6c@152349 91177308-0d34-0410-b5e6-96231b3b80d8
