summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2018-06-15 20:13:28 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2018-06-15 20:13:28 +0000
commit5f11e128b0aabb3188e3c09e089c284b9e401f87 (patch)
tree30eeefcfe265dae82f083074a4b49664732be34d /clang/test/Modules
parent0ea9a90b3d6b2920e96dd8bbc971c236fe048139 (diff)
downloadbcm5719-llvm-5f11e128b0aabb3188e3c09e089c284b9e401f87.tar.gz
bcm5719-llvm-5f11e128b0aabb3188e3c09e089c284b9e401f87.zip
[Modules] Improve .Private fix-its to handle 'explicit' and 'framework'
When in the context of suggestion the fix-it from .Private to _Private for private modules, trim off the 'explicit' and add 'framework' when appropriate. rdar://problem/41030554 llvm-svn: 334859
Diffstat (limited to 'clang/test/Modules')
-rw-r--r--clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap6
-rw-r--r--clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap6
-rw-r--r--clang/test/Modules/implicit-private-with-submodule.m11
3 files changed, 22 insertions, 1 deletions
diff --git a/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap b/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap
index 95eabf90a96..73d5ab7a4bb 100644
--- a/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap
+++ b/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap
@@ -2,3 +2,9 @@ framework module A {
header "a.h"
export *
}
+
+framework module B {
+}
+
+framework module C {
+}
diff --git a/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap b/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap
index 40182969f4c..9acb4899702 100644
--- a/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap
+++ b/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap
@@ -2,3 +2,9 @@ framework module A.Private {
header "aprivate.h"
export *
}
+
+explicit module B.Private {
+}
+
+explicit framework module C.Private {
+}
diff --git a/clang/test/Modules/implicit-private-with-submodule.m b/clang/test/Modules/implicit-private-with-submodule.m
index a1c5b92d860..d5f23456bf8 100644
--- a/clang/test/Modules/implicit-private-with-submodule.m
+++ b/clang/test/Modules/implicit-private-with-submodule.m
@@ -13,7 +13,16 @@
// expected-warning@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:1{{private submodule 'A.Private' in private module map, expected top-level module}}
// expected-note@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:1{{rename 'A.Private' to ensure it can be found by name}}
-// CHECK: fix-it:"{{.*}}module.private.modulemap":{1:18-1:27}:"A_Private"
+
+// expected-warning@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:6{{private submodule 'B.Private' in private module map, expected top-level module}}
+// expected-note@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:6{{rename 'B.Private' to ensure it can be found by name}}
+
+// expected-warning@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:9{{private submodule 'C.Private' in private module map, expected top-level module}}
+// expected-note@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:9{{rename 'C.Private' to ensure it can be found by name}}
+
+// CHECK: fix-it:"{{.*}}module.private.modulemap":{1:1-1:27}:"framework module A_Private"
+// CHECK: fix-it:"{{.*}}module.private.modulemap":{6:1-6:26}:"framework module B_Private"
+// CHECK: fix-it:"{{.*}}module.private.modulemap":{9:1-9:36}:"framework module C_Private"
#ifndef HEADER
#define HEADER
OpenPOWER on IntegriCloud