diff options
author | Ben Langmuir <blangmuir@apple.com> | 2015-07-13 19:48:52 +0000 |
---|---|---|
committer | Ben Langmuir <blangmuir@apple.com> | 2015-07-13 19:48:52 +0000 |
commit | 75a7e435813d28751f9555a11dd171e389be2d1e (patch) | |
tree | e5c43a3eac4f582f77c666ac2915d5fb47943974 /clang/test/Modules | |
parent | 7ddd501b71499461be24ac02ef26cca92e7aa19a (diff) | |
download | bcm5719-llvm-75a7e435813d28751f9555a11dd171e389be2d1e.tar.gz bcm5719-llvm-75a7e435813d28751f9555a11dd171e389be2d1e.zip |
[Modules] Allow missing header before a missing requirement
And make the module unavailable without breaking any parent modules.
If there's a missing requirement after we've already seen a missing
header, still update the IsMissingRequiement bit correctly. Also,
diagnose missing requirements before missing headers, since the
existence of the header is moot if there are missing requirements.
llvm-svn: 242055
Diffstat (limited to 'clang/test/Modules')
-rw-r--r-- | clang/test/Modules/Inputs/module.map | 11 | ||||
-rw-r--r-- | clang/test/Modules/requires.m | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/module.map b/clang/test/Modules/Inputs/module.map index ffaa53e18e2..904c65c2dbf 100644 --- a/clang/test/Modules/Inputs/module.map +++ b/clang/test/Modules/Inputs/module.map @@ -336,3 +336,14 @@ module ImportNameInDir { header "ImportNameInDir.h" export * } + +module RequiresWithMissingHeader { + module HeaderBefore { + header "RequiresWithMissingHeader-Missing1.h" + requires missing + } + module HeaderAfter { + requires missing + header "RequiresWithMissingHeader-Missing2.h" + } +} diff --git a/clang/test/Modules/requires.m b/clang/test/Modules/requires.m index 155c6aec5dc..1a013727108 100644 --- a/clang/test/Modules/requires.m +++ b/clang/test/Modules/requires.m @@ -6,3 +6,7 @@ @import DependsOnModule.NotObjC; // expected-error{{module 'DependsOnModule.NotObjC' is incompatible with feature 'objc'}} @import DependsOnModule.CustomReq1; // OK @import DependsOnModule.CustomReq2; // expected-error{{module 'DependsOnModule.CustomReq2' requires feature 'custom_req2'}} + +@import RequiresWithMissingHeader; // OK +@import RequiresWithMissingHeader.HeaderBefore; // expected-error{{module 'RequiresWithMissingHeader.HeaderBefore' requires feature 'missing'}} +@import RequiresWithMissingHeader.HeaderAfter; // expected-error{{module 'RequiresWithMissingHeader.HeaderAfter' requires feature 'missing'}} |