If a header is explicitly included in module A, and excluded from an umbrella
directory in module B, don't include it in module B!
llvm-svn: 205762
diff --git a/clang/test/Modules/Inputs/exclude-header/module.map b/clang/test/Modules/Inputs/exclude-header/module.map
new file mode 100644
index 0000000..2aa1024
--- /dev/null
+++ b/clang/test/Modules/Inputs/exclude-header/module.map
@@ -0,0 +1,3 @@
+module x { umbrella "x" exclude header "x/bad.h" exclude header "y/b.h" module * {} }
+module y { umbrella "y" module * {} }
+module bad { header "x/bad.h" }
diff --git a/clang/test/Modules/Inputs/exclude-header/x/a.h b/clang/test/Modules/Inputs/exclude-header/x/a.h
new file mode 100644
index 0000000..389d285
--- /dev/null
+++ b/clang/test/Modules/Inputs/exclude-header/x/a.h
@@ -0,0 +1 @@
+typedef int a;
diff --git a/clang/test/Modules/Inputs/exclude-header/x/bad.h b/clang/test/Modules/Inputs/exclude-header/x/bad.h
new file mode 100644
index 0000000..179ef26
--- /dev/null
+++ b/clang/test/Modules/Inputs/exclude-header/x/bad.h
@@ -0,0 +1 @@
+#error bad
diff --git a/clang/test/Modules/Inputs/exclude-header/y/b.h b/clang/test/Modules/Inputs/exclude-header/y/b.h
new file mode 100644
index 0000000..a16836a
--- /dev/null
+++ b/clang/test/Modules/Inputs/exclude-header/y/b.h
@@ -0,0 +1 @@
+typedef int b;