summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules
diff options
context:
space:
mode:
authorBen Langmuir <blangmuir@apple.com>2015-07-13 19:48:52 +0000
committerBen Langmuir <blangmuir@apple.com>2015-07-13 19:48:52 +0000
commit75a7e435813d28751f9555a11dd171e389be2d1e (patch)
treee5c43a3eac4f582f77c666ac2915d5fb47943974 /clang/test/Modules
parent7ddd501b71499461be24ac02ef26cca92e7aa19a (diff)
downloadbcm5719-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.map11
-rw-r--r--clang/test/Modules/requires.m4
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'}}
OpenPOWER on IntegriCloud