summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-06-17 20:16:32 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-06-17 20:16:32 +0000
commit35c1df5cb6da27be25a4d75ac811f0b4e3cbeb54 (patch)
tree3756f93f470e958ff4501f2abb3464bc122d14fd /clang/test
parentdfe2d359c5e5517a7cbbe83009cc23518f4ff65a (diff)
downloadbcm5719-llvm-35c1df5cb6da27be25a4d75ac811f0b4e3cbeb54.tar.gz
bcm5719-llvm-35c1df5cb6da27be25a4d75ac811f0b4e3cbeb54.zip
[modules] Improve diagnostic for a template-id that's invalid because a default
argument is not visible. llvm-svn: 239934
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Modules/submodules-merge-defs.cpp10
-rw-r--r--clang/test/Modules/template-default-args.cpp12
2 files changed, 16 insertions, 6 deletions
diff --git a/clang/test/Modules/submodules-merge-defs.cpp b/clang/test/Modules/submodules-merge-defs.cpp
index 0dd8680b5ff..a11ae46aefc 100644
--- a/clang/test/Modules/submodules-merge-defs.cpp
+++ b/clang/test/Modules/submodules-merge-defs.cpp
@@ -48,7 +48,15 @@ int pre_ff = F<int>().f(); // expected-error +{{must be imported}}
int pre_fg = F<int>().g<int>(); // expected-error +{{must be imported}}
// expected-note@defs.h:26 +{{here}}
-J<> pre_j; // expected-error {{must be imported}} expected-error {{too few}}
+J<> pre_j; // expected-error {{declaration of 'J' must be imported}}
+#ifdef IMPORT_USE_2
+// FIXME-error-re@-2 {{default argument of 'J' must be imported from one of {{.*}}stuff.use{{.*}}stuff.use-2}}
+// expected-error@-3 {{default argument of 'J' must be imported from module 'stuff.use'}}
+#elif EARLY_INDIRECT_INCLUDE
+// expected-error@-5 {{default argument of 'J' must be imported from module 'merged-defs'}}
+#else
+// expected-error@-7 {{default argument of 'J' must be imported from module 'stuff.use'}}
+#endif
// expected-note@defs.h:49 +{{here}}
// Make definitions from second module visible.
diff --git a/clang/test/Modules/template-default-args.cpp b/clang/test/Modules/template-default-args.cpp
index b25b8f6eca0..9b2865421f2 100644
--- a/clang/test/Modules/template-default-args.cpp
+++ b/clang/test/Modules/template-default-args.cpp
@@ -1,12 +1,12 @@
// RUN: rm -rf %t
-// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs/template-default-args -std=c++11 %s
+// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -fno-modules-error-recovery -I %S/Inputs/template-default-args -std=c++11 %s
template<typename T> struct A;
template<typename T> struct B;
template<typename T> struct C;
template<typename T = int> struct D;
template<typename T = int> struct E {};
-template<typename T> struct H {}; // expected-note {{here}}
+template<typename T> struct H {};
#include "b.h"
@@ -16,7 +16,7 @@ template<typename T = int> struct B;
template<typename T = int> struct C;
template<typename T> struct D {};
template<typename T> struct F {};
-template<typename T> struct G {}; // expected-note {{here}}
+template<typename T> struct G {};
#include "c.h"
@@ -26,5 +26,7 @@ extern C<> c;
D<> d;
E<> e;
F<> f;
-G<> g; // expected-error {{too few}}
-H<> h; // expected-error {{too few}}
+G<> g; // expected-error {{default argument of 'G' must be imported from module 'X.A' before it is required}}
+// expected-note@a.h:6 {{default argument declared here}}
+H<> h; // expected-error {{default argument of 'H' must be imported from module 'X.A' before it is required}}
+// expected-note@a.h:7 {{default argument declared here}}
OpenPOWER on IntegriCloud