diff options
| author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2017-02-07 21:54:57 +0000 |
|---|---|---|
| committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2017-02-07 21:54:57 +0000 |
| commit | 17da34d2bd42e763ad9995a01a5d8784137a476c (patch) | |
| tree | 0a305b1566f5a4478097027dc5b6bf0ecca09c01 /clang/test/Modules/Inputs | |
| parent | c0d5590a3b908ce583b9e24099b5028026a93456 (diff) | |
| download | bcm5719-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')
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> |

