summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/conversion-function.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2014-12-19 02:07:47 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2014-12-19 02:07:47 +0000
commita865a1683aeaaeedfb47e0a2d1cb539d513118e5 (patch)
treec5c289a3df40cabb219afa3bca08f137cf12bb18 /clang/test/SemaCXX/conversion-function.cpp
parentaeb50b38053db6b1697447c89b96d3e86c9e7136 (diff)
downloadbcm5719-llvm-a865a1683aeaaeedfb47e0a2d1cb539d513118e5.tar.gz
bcm5719-llvm-a865a1683aeaaeedfb47e0a2d1cb539d513118e5.zip
PR21969: Improve diagnostics for a conversion function that has any pieces of a
declared return type (including a trailing-return-type in C++14). llvm-svn: 224561
Diffstat (limited to 'clang/test/SemaCXX/conversion-function.cpp')
-rw-r--r--clang/test/SemaCXX/conversion-function.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/clang/test/SemaCXX/conversion-function.cpp b/clang/test/SemaCXX/conversion-function.cpp
index ede23a2767e..077e4d9f3cc 100644
--- a/clang/test/SemaCXX/conversion-function.cpp
+++ b/clang/test/SemaCXX/conversion-function.cpp
@@ -172,12 +172,10 @@ namespace source_locations {
namespace crazy_declarators {
struct A {
- (&operator bool())(); // expected-error {{must use a typedef to declare a conversion to 'bool (&)()'}}
-
- // FIXME: This diagnostic is misleading (the correct spelling
- // would be 'operator int*'), but it's a corner case of a
- // rarely-used syntax extension.
- *operator int(); // expected-error {{must use a typedef to declare a conversion to 'int *'}}
+ (&operator bool())(); // expected-error {{use a typedef to declare a conversion to 'bool (&)()'}}
+ *operator int(); // expected-error {{put the complete type after 'operator'}}
+ // No suggestion of using a typedef here; that's not possible.
+ template<typename T> (&operator T())(); // expected-error-re {{cannot specify any part of a return type in the declaration of a conversion function{{$}}}}
};
}
OpenPOWER on IntegriCloud