summaryrefslogtreecommitdiffstats
path: root/test/SemaCXX/conversion-incomplete-type.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaCXX/conversion-incomplete-type.cpp')
-rw-r--r--test/SemaCXX/conversion-incomplete-type.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/SemaCXX/conversion-incomplete-type.cpp b/test/SemaCXX/conversion-incomplete-type.cpp
new file mode 100644
index 0000000..ebedd04
--- /dev/null
+++ b/test/SemaCXX/conversion-incomplete-type.cpp
@@ -0,0 +1,23 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+
+struct string {};
+
+class StringPiece; // expected-note {{forward declaration of 'StringPiece'}} \
+ // expected-note {{forward declaration of 'StringPiece'}}
+
+struct Test {
+ void expectStringPiece(const StringPiece& blah) {}; // expected-note {{passing argument to parameter 'blah' here}}
+
+ void test(const string& s) {
+ expectStringPiece(s); // expected-error {{no viable conversion from 'const string' to incomplete type 'const StringPiece'}}
+ }
+};
+
+struct TestStatic {
+ static void expectStringPiece(const StringPiece& blah) {}; // expected-note {{passing argument to parameter 'blah' here}}
+
+ static void test(const string& s) {
+ expectStringPiece(s); // expected-error {{no viable conversion from 'const string' to incomplete type 'const StringPiece'}}
+ }
+};
+
OpenPOWER on IntegriCloud