When inferring a module map for a framework, infer subframework
modules for each of its subframeworks.
llvm-svn: 145957
diff --git a/clang/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h b/clang/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h
new file mode 100644
index 0000000..438fc9c
--- /dev/null
+++ b/clang/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h
@@ -0,0 +1,4 @@
+#ifndef MODULE_SUBFRAMEWORK_H
+#define MODULE_SUBFRAMEWORK_H
+char *module_subframework;
+#endif
diff --git a/clang/test/Modules/auto-module-import.c b/clang/test/Modules/auto-module-import.c
index 4c71f06..373c041 100644
--- a/clang/test/Modules/auto-module-import.c
+++ b/clang/test/Modules/auto-module-import.c
@@ -29,3 +29,13 @@
void testSubframeworkOtherAgain() {
double *sfo1 = sub_framework_other;
}
+
+void testModuleSubFramework() {
+ char *msf = module_subframework;
+}
+
+#include <Module/../Frameworks/SubFramework.framework/Headers/SubFramework.h> // expected-warning{{treating #include as an import of module 'Module.SubFramework'}}
+
+void testModuleSubFrameworkAgain() {
+ char *msf = module_subframework;
+}
diff --git a/clang/test/Modules/on-demand-build.m b/clang/test/Modules/on-demand-build.m
index 2c6a759..7843014 100644
--- a/clang/test/Modules/on-demand-build.m
+++ b/clang/test/Modules/on-demand-build.m
@@ -16,7 +16,7 @@
OtherClass *other = [Module alloc]; // expected-error{{init}}
}
-#ifdef MODULE_H
-# error MODULE_H should not be hidden
+#ifdef MODULE_SUBFRAMEWORK_H
+# error MODULE_SUBFRAMEWORK_H should be hidden
#endif