summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/literal-operators.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-02-17 00:04:04 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-02-17 00:04:04 +0000
commitc28aee6a51a9eceb4c34269330d3f3d97e01f936 (patch)
tree4fac39109dce0a0a8835ed13ce610251a0784524 /clang/test/SemaCXX/literal-operators.cpp
parentb68464eb7825a83fa8d3cb867adfd7339a255c45 (diff)
downloadbcm5719-llvm-c28aee6a51a9eceb4c34269330d3f3d97e01f936.tar.gz
bcm5719-llvm-c28aee6a51a9eceb4c34269330d3f3d97e01f936.zip
Improve diagnostics for ill-formed literal operator declarations.
Patch by Erik Pilkington! llvm-svn: 261034
Diffstat (limited to 'clang/test/SemaCXX/literal-operators.cpp')
-rw-r--r--clang/test/SemaCXX/literal-operators.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/test/SemaCXX/literal-operators.cpp b/clang/test/SemaCXX/literal-operators.cpp
index ba571788b96..304aa7cab7f 100644
--- a/clang/test/SemaCXX/literal-operators.cpp
+++ b/clang/test/SemaCXX/literal-operators.cpp
@@ -35,13 +35,14 @@ typedef const char c;
void operator "" _good (c*);
// Check extra cv-qualifiers
-void operator "" _cv_good (volatile const char *, const size_t); // expected-error {{parameter declaration for literal operator 'operator""_cv_good' is not valid}}
+void operator "" _cv_good (volatile const char *, const size_t); // expected-error {{invalid literal operator parameter type 'const volatile char *', did you mean 'const char *'?}}
// Template declaration
template <char...> void operator "" _good ();
-// FIXME: Test some invalid decls that might crop up.
-template <typename...> void operator "" _invalid(); // expected-error {{parameter declaration for literal operator 'operator""_invalid' is not valid}}
+template <typename...> void operator "" _invalid(); // expected-error {{template parameter list for literal operator must be either 'char...' or 'typename T, T...'}}
+template <wchar_t...> void operator "" _invalid(); // expected-error {{template parameter list for literal operator must be either 'char...' or 'typename T, T...'}}
+template <unsigned long long...> void operator "" _invalid(); // expected-error {{template parameter list for literal operator must be either 'char...' or 'typename T, T...'}}
_Complex float operator""if(long double); // expected-warning {{reserved}}
_Complex float test_if_1() { return 2.0f + 1.5if; };
OpenPOWER on IntegriCloud