summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/Inputs
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2017-02-07 21:54:57 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2017-02-07 21:54:57 +0000
commit17da34d2bd42e763ad9995a01a5d8784137a476c (patch)
tree0a305b1566f5a4478097027dc5b6bf0ecca09c01 /clang/test/Modules/Inputs
parentc0d5590a3b908ce583b9e24099b5028026a93456 (diff)
downloadbcm5719-llvm-17da34d2bd42e763ad9995a01a5d8784137a476c.tar.gz
bcm5719-llvm-17da34d2bd42e763ad9995a01a5d8784137a476c.zip
[PCH] Fix a regression when PCH is used with -fmodules
Following up on r291465 after a regression in r276159. When we use -fmodule-name=X while building a PCH, modular headers in X will be textually included and the compiler knows that we are not building module X, so don't serialize such headers in the PCH as being part of a module, because at this point they are not. This was causing subtle bugs and malformed AST crashes, for instance, when using the PCH in subsequent compiler invocation with -fmodules, the HFI for a modular header would map to the PCH, which would force a module load of and unexistent module ID. rdar://problem/30171164 llvm-svn: 294361
Diffstat (limited to 'clang/test/Modules/Inputs')
-rw-r--r--clang/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch3
-rw-r--r--clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h1
-rw-r--r--clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h1
-rw-r--r--clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h1
-rw-r--r--clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.modulemap6
-rw-r--r--clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.private.modulemap5
-rw-r--r--clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h1
-rw-r--r--clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h1
8 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch b/clang/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch
new file mode 100644
index 00000000000..73a9816a3ab
--- /dev/null
+++ b/clang/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch
@@ -0,0 +1,3 @@
+#ifdef __OBJC__
+ #import <NC/NULog.h>
+#endif
diff --git a/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h
new file mode 100644
index 00000000000..3866c888282
--- /dev/null
+++ b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h
@@ -0,0 +1 @@
+#import <NC/NUGeometry.h>
diff --git a/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h
new file mode 100644
index 00000000000..1e7614c0c38
--- /dev/null
+++ b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h
@@ -0,0 +1 @@
+// NU-Visibility.h
diff --git a/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h
new file mode 100644
index 00000000000..8923e042db6
--- /dev/null
+++ b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h
@@ -0,0 +1 @@
+#import <NC/NU-Visibility.h>
diff --git a/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.modulemap b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.modulemap
new file mode 100644
index 00000000000..475b4147336
--- /dev/null
+++ b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module NC {
+ umbrella header "NC.h"
+
+ export *
+ module * { export * }
+}
diff --git a/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.private.modulemap b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.private.modulemap
new file mode 100644
index 00000000000..80488bd5d3d
--- /dev/null
+++ b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.private.modulemap
@@ -0,0 +1,5 @@
+explicit module NC.Private
+{
+ header "NULog.h"
+ header "NUAssert.h"
+}
diff --git a/clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h
new file mode 100644
index 00000000000..7bf8defa8cc
--- /dev/null
+++ b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h
@@ -0,0 +1 @@
+#import <NC/NULog.h>
diff --git a/clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h
new file mode 100644
index 00000000000..8923e042db6
--- /dev/null
+++ b/clang/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h
@@ -0,0 +1 @@
+#import <NC/NU-Visibility.h>
OpenPOWER on IntegriCloud