summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Modules/Inputs/module.map6
-rw-r--r--clang/test/Modules/Inputs/recursive1.h1
-rw-r--r--clang/test/Modules/Inputs/recursive2.h1
-rw-r--r--clang/test/Modules/recursive.c11
-rw-r--r--clang/test/Modules/submodules.cpp4
5 files changed, 20 insertions, 3 deletions
diff --git a/clang/test/Modules/Inputs/module.map b/clang/test/Modules/Inputs/module.map
index 362a175f607..67b3a5a0ebe 100644
--- a/clang/test/Modules/Inputs/module.map
+++ b/clang/test/Modules/Inputs/module.map
@@ -290,3 +290,9 @@ module recursive_visibility_b {
module recursive_visibility_c {
header "recursive_visibility_c.h"
}
+module recursive1 {
+ header "recursive1.h"
+}
+module recursive2 {
+ header "recursive2.h"
+}
diff --git a/clang/test/Modules/Inputs/recursive1.h b/clang/test/Modules/Inputs/recursive1.h
new file mode 100644
index 00000000000..8cb59173972
--- /dev/null
+++ b/clang/test/Modules/Inputs/recursive1.h
@@ -0,0 +1 @@
+#include "recursive2.h"
diff --git a/clang/test/Modules/Inputs/recursive2.h b/clang/test/Modules/Inputs/recursive2.h
new file mode 100644
index 00000000000..d9480aa1e14
--- /dev/null
+++ b/clang/test/Modules/Inputs/recursive2.h
@@ -0,0 +1 @@
+#include "recursive1.h"
diff --git a/clang/test/Modules/recursive.c b/clang/test/Modules/recursive.c
new file mode 100644
index 00000000000..668ba38dffa
--- /dev/null
+++ b/clang/test/Modules/recursive.c
@@ -0,0 +1,11 @@
+// RUN: rm -rf %t
+// RUN: not %clang_cc1 -fmodules -x objective-c -fmodules-cache-path=%t -I %S/Inputs %s 2>&1 | FileCheck %s
+#include "recursive1.h"
+
+// FIXME: rm -rf %t
+// FIXME: not %clang_cc1 -fmodules -x objective-c -fmodules-cache-path=%t -emit-module -fmodule-name=recursive1 %S/Inputs/module.map 2>&1 | FileCheck %s
+
+// CHECK: While building module 'recursive1'{{( imported from .*/recursive.c:3)?}}:
+// CHECK-NEXT: While building module 'recursive2' imported from {{.*}}Inputs/recursive1.h:1:
+// CHECK-NEXT: In file included from <module-includes>:1:
+// CHECK-NEXT: recursive2.h:1:10: fatal error: cyclic dependency in module 'recursive1': recursive1 -> recursive2 -> recursive1
diff --git a/clang/test/Modules/submodules.cpp b/clang/test/Modules/submodules.cpp
index 12bf87f6307..a18138c7099 100644
--- a/clang/test/Modules/submodules.cpp
+++ b/clang/test/Modules/submodules.cpp
@@ -31,9 +31,7 @@ hash_map<int, float> ints_to_floats2;
extern MyTypeA import_self_test_a; // expected-error {{must be imported from module 'import_self.a'}}
// expected-note@import-self-a.h:1 {{here}}
extern MyTypeC import_self_test_c;
-// FIXME: This should be valid; import_self.b re-exports import_self.d.
-extern MyTypeD import_self_test_d; // expected-error {{must be imported from module 'import_self.d'}}
-// expected-note@import-self-d.h:1 {{here}}
+extern MyTypeD import_self_test_d;
// expected-error@Inputs/submodules/module.map:15{{header 'missing.h' not found}}
@import missing_headers.missing;
OpenPOWER on IntegriCloud