diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 11:06:01 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 11:06:01 +0000 |
| commit | 486754660bb926339aefcf012a3f848592babb8b (patch) | |
| tree | ecdbc446c9876f4f120f701c243373cd3cb43db3 /test/Modules/Inputs | |
| parent | 55e6d896ad333f07bb3b1ba487df214fc268a4ab (diff) | |
Vendor import of clang trunk r338150:vendor/clang/clang-trunk-r338150
Diffstat (limited to 'test/Modules/Inputs')
113 files changed, 632 insertions, 1 deletions
diff --git a/test/Modules/Inputs/DebugCXX.h b/test/Modules/Inputs/DebugCXX.h index 1ccf8d302f13..8f83c0bc69db 100644 --- a/test/Modules/Inputs/DebugCXX.h +++ b/test/Modules/Inputs/DebugCXX.h @@ -1,4 +1,7 @@ /* -*- C++ -*- */ + +#include "dummy.h" + namespace DebugCXX { // Records. struct Struct { diff --git a/test/Modules/Inputs/DependsOnModule.framework/module.map b/test/Modules/Inputs/DependsOnModule.framework/module.map index 4d468f2a8c01..948a1efd743a 100644 --- a/test/Modules/Inputs/DependsOnModule.framework/module.map +++ b/test/Modules/Inputs/DependsOnModule.framework/module.map @@ -37,4 +37,22 @@ framework module DependsOnModule { export * } } + explicit module CXX11 { + requires cplusplus11 + } + explicit module CXX14 { + requires cplusplus14 + } + explicit module CXX17 { + requires cplusplus17 + } + explicit module C99 { + requires c99 + } + explicit module C11 { + requires c11 + } + explicit module C17 { + requires c17 + } } diff --git a/test/Modules/Inputs/at-import-in-framework-header/A.framework/Headers/A.h b/test/Modules/Inputs/at-import-in-framework-header/A.framework/Headers/A.h new file mode 100644 index 000000000000..6949a872fc99 --- /dev/null +++ b/test/Modules/Inputs/at-import-in-framework-header/A.framework/Headers/A.h @@ -0,0 +1,2 @@ +@import B; +int foo(); diff --git a/test/Modules/Inputs/at-import-in-framework-header/A.framework/Modules/module.modulemap b/test/Modules/Inputs/at-import-in-framework-header/A.framework/Modules/module.modulemap new file mode 100644 index 000000000000..126cf26ec9c7 --- /dev/null +++ b/test/Modules/Inputs/at-import-in-framework-header/A.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +// at-import-in-framework-header/A.framework/Modules/module.modulemap +framework module A { + header "A.h" +} diff --git a/test/Modules/Inputs/at-import-in-framework-header/module.modulemap b/test/Modules/Inputs/at-import-in-framework-header/module.modulemap new file mode 100644 index 000000000000..a38d66863e95 --- /dev/null +++ b/test/Modules/Inputs/at-import-in-framework-header/module.modulemap @@ -0,0 +1,2 @@ +// at-import-in-framework-header/module.modulemap +module B {} diff --git a/test/Modules/Inputs/autoload-subdirectory/a.h b/test/Modules/Inputs/autoload-subdirectory/a.h new file mode 100644 index 000000000000..8be94312e3ef --- /dev/null +++ b/test/Modules/Inputs/autoload-subdirectory/a.h @@ -0,0 +1,9 @@ +#include "b.h" + +class foo { + int x, y; + +public: + foo(){}; + ~foo(){}; +}; diff --git a/test/Modules/Inputs/autoload-subdirectory/b.h b/test/Modules/Inputs/autoload-subdirectory/b.h new file mode 100644 index 000000000000..bfde5bf79f81 --- /dev/null +++ b/test/Modules/Inputs/autoload-subdirectory/b.h @@ -0,0 +1 @@ +class bar {}; diff --git a/test/Modules/Inputs/autoload-subdirectory/c.h b/test/Modules/Inputs/autoload-subdirectory/c.h new file mode 100644 index 000000000000..e5a45250f9f8 --- /dev/null +++ b/test/Modules/Inputs/autoload-subdirectory/c.h @@ -0,0 +1,7 @@ +class nyan { + bool x, y; + +public: + nyan(){}; + ~nyan(){}; +}; diff --git a/test/Modules/Inputs/autoload-subdirectory/include/module.modulemap b/test/Modules/Inputs/autoload-subdirectory/include/module.modulemap new file mode 100644 index 000000000000..880ae38b97a0 --- /dev/null +++ b/test/Modules/Inputs/autoload-subdirectory/include/module.modulemap @@ -0,0 +1,3 @@ +module a { header "a.h" } +module b { header "b.h" } +module c { header "c.h" } diff --git a/test/Modules/Inputs/autoload-subdirectory/module.modulemap b/test/Modules/Inputs/autoload-subdirectory/module.modulemap new file mode 100644 index 000000000000..880ae38b97a0 --- /dev/null +++ b/test/Modules/Inputs/autoload-subdirectory/module.modulemap @@ -0,0 +1,3 @@ +module a { header "a.h" } +module b { header "b.h" } +module c { header "c.h" } diff --git a/test/Modules/Inputs/bad-private-include/Bad.framework/Headers/Bad.h b/test/Modules/Inputs/bad-private-include/Bad.framework/Headers/Bad.h new file mode 100644 index 000000000000..eea054917048 --- /dev/null +++ b/test/Modules/Inputs/bad-private-include/Bad.framework/Headers/Bad.h @@ -0,0 +1 @@ +#import <Bad/Shared.h>
\ No newline at end of file diff --git a/test/Modules/Inputs/bad-private-include/Bad.framework/Modules/module.modulemap b/test/Modules/Inputs/bad-private-include/Bad.framework/Modules/module.modulemap new file mode 100644 index 000000000000..11612dc8cb31 --- /dev/null +++ b/test/Modules/Inputs/bad-private-include/Bad.framework/Modules/module.modulemap @@ -0,0 +1,5 @@ +framework module Bad { + umbrella header "Bad.h" + export * + module * { export * } +} diff --git a/test/Modules/Inputs/bad-private-include/Bad.framework/Modules/module.private.modulemap b/test/Modules/Inputs/bad-private-include/Bad.framework/Modules/module.private.modulemap new file mode 100644 index 000000000000..043139dc55d1 --- /dev/null +++ b/test/Modules/Inputs/bad-private-include/Bad.framework/Modules/module.private.modulemap @@ -0,0 +1,5 @@ +framework module Bad_Private { + umbrella header "BadPrivate.h" + export * + module * { export * } +} diff --git a/test/Modules/Inputs/bad-private-include/Bad.framework/PrivateHeaders/BadPrivate.h b/test/Modules/Inputs/bad-private-include/Bad.framework/PrivateHeaders/BadPrivate.h new file mode 100644 index 000000000000..eea054917048 --- /dev/null +++ b/test/Modules/Inputs/bad-private-include/Bad.framework/PrivateHeaders/BadPrivate.h @@ -0,0 +1 @@ +#import <Bad/Shared.h>
\ No newline at end of file diff --git a/test/Modules/Inputs/bad-private-include/Bad.framework/PrivateHeaders/Shared.h b/test/Modules/Inputs/bad-private-include/Bad.framework/PrivateHeaders/Shared.h new file mode 100644 index 000000000000..4f1defddefba --- /dev/null +++ b/test/Modules/Inputs/bad-private-include/Bad.framework/PrivateHeaders/Shared.h @@ -0,0 +1,3 @@ +struct SomeDecl { + int x; +}; diff --git a/test/Modules/Inputs/class-extension/a-private.h b/test/Modules/Inputs/class-extension/a-private.h new file mode 100644 index 000000000000..e35402ac18ad --- /dev/null +++ b/test/Modules/Inputs/class-extension/a-private.h @@ -0,0 +1,5 @@ +#import "a.h" +#import "a-proto.h" + +@interface A () <AProto> +@end diff --git a/test/Modules/Inputs/class-extension/a-proto.h b/test/Modules/Inputs/class-extension/a-proto.h new file mode 100644 index 000000000000..32043ec2498f --- /dev/null +++ b/test/Modules/Inputs/class-extension/a-proto.h @@ -0,0 +1,7 @@ +@protocol NSObject +@end + +@protocol AProto <NSObject> +@property (nonatomic, readwrite, assign) int p0; +@property (nonatomic, readwrite, assign) int p1; +@end diff --git a/test/Modules/Inputs/class-extension/a.h b/test/Modules/Inputs/class-extension/a.h new file mode 100644 index 000000000000..28c409c33774 --- /dev/null +++ b/test/Modules/Inputs/class-extension/a.h @@ -0,0 +1,5 @@ +@interface NSObject +@end + +@interface A : NSObject +@end diff --git a/test/Modules/Inputs/class-extension/module.modulemap b/test/Modules/Inputs/class-extension/module.modulemap new file mode 100644 index 000000000000..5c30bc57e46c --- /dev/null +++ b/test/Modules/Inputs/class-extension/module.modulemap @@ -0,0 +1,11 @@ + +module A { + header "a.h" + header "a-proto.h" + export * +} + +module AP { + header "a-private.h" + export * +} diff --git a/test/Modules/Inputs/declare-use/h.h b/test/Modules/Inputs/declare-use/h.h index 379e50180ca1..8984727c565e 100644 --- a/test/Modules/Inputs/declare-use/h.h +++ b/test/Modules/Inputs/declare-use/h.h @@ -1,7 +1,7 @@ #ifndef H_H #define H_H #include "c.h" -#include "d.h" // expected-error {{does not depend on a module exporting}} +#include "d.h" // expected-error {{module XH does not depend on a module exporting}} #include "h1.h" const int h1 = aux_h*c*7*d; #endif diff --git a/test/Modules/Inputs/diag_flags.h b/test/Modules/Inputs/diag_flags.h index 3b85c84c6cfd..55eeab196a31 100644 --- a/test/Modules/Inputs/diag_flags.h +++ b/test/Modules/Inputs/diag_flags.h @@ -1 +1,4 @@ +#define pragma _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"") _Pragma("clang diagnostic pop") +pragma + struct Padded { char x; int y; }; diff --git a/test/Modules/Inputs/double-quotes/A.framework/Headers/A.h b/test/Modules/Inputs/double-quotes/A.framework/Headers/A.h new file mode 100644 index 000000000000..17ceb83bb9ca --- /dev/null +++ b/test/Modules/Inputs/double-quotes/A.framework/Headers/A.h @@ -0,0 +1,6 @@ +#include "A0.h" +#include "B.h" + +#include "X.h" + +int foo(); diff --git a/test/Modules/Inputs/double-quotes/A.framework/Headers/A0.h b/test/Modules/Inputs/double-quotes/A.framework/Headers/A0.h new file mode 100644 index 000000000000..79c6b8893ba4 --- /dev/null +++ b/test/Modules/Inputs/double-quotes/A.framework/Headers/A0.h @@ -0,0 +1 @@ +// double-quotes/A.framework/Headers/A0.h diff --git a/test/Modules/Inputs/double-quotes/A.framework/Modules/module.modulemap b/test/Modules/Inputs/double-quotes/A.framework/Modules/module.modulemap new file mode 100644 index 000000000000..09a887a8f489 --- /dev/null +++ b/test/Modules/Inputs/double-quotes/A.framework/Modules/module.modulemap @@ -0,0 +1,5 @@ +// double-quotes/A.framework/Modules/module.modulemap +framework module A { + header "A.h" + header "A0.h" +} diff --git a/test/Modules/Inputs/double-quotes/B.h b/test/Modules/Inputs/double-quotes/B.h new file mode 100644 index 000000000000..724faaef807d --- /dev/null +++ b/test/Modules/Inputs/double-quotes/B.h @@ -0,0 +1 @@ +// double-quotes/B.h diff --git a/test/Modules/Inputs/double-quotes/X.framework/Headers/X.h b/test/Modules/Inputs/double-quotes/X.framework/Headers/X.h new file mode 100644 index 000000000000..0185751299c7 --- /dev/null +++ b/test/Modules/Inputs/double-quotes/X.framework/Headers/X.h @@ -0,0 +1 @@ +// double-quotes/X.framework/Headers/X.h diff --git a/test/Modules/Inputs/double-quotes/X.framework/Modules/module.modulemap b/test/Modules/Inputs/double-quotes/X.framework/Modules/module.modulemap new file mode 100644 index 000000000000..95524704c683 --- /dev/null +++ b/test/Modules/Inputs/double-quotes/X.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +// double-quotes/X.framework/Modules/module.modulemap +framework module X { + header "X.h" +} diff --git a/test/Modules/Inputs/double-quotes/a.hmap.json b/test/Modules/Inputs/double-quotes/a.hmap.json new file mode 100644 index 000000000000..bdd383ce4150 --- /dev/null +++ b/test/Modules/Inputs/double-quotes/a.hmap.json @@ -0,0 +1,6 @@ +{ + "mappings" : + { + "A.h" : "A/A.h" + } +} diff --git a/test/Modules/Inputs/double-quotes/flat-header-path/Z.h b/test/Modules/Inputs/double-quotes/flat-header-path/Z.h new file mode 100644 index 000000000000..db96b64962c1 --- /dev/null +++ b/test/Modules/Inputs/double-quotes/flat-header-path/Z.h @@ -0,0 +1 @@ +#import "B.h" // Included from Z.h & A.h diff --git a/test/Modules/Inputs/double-quotes/flat-header-path/Z.modulemap b/test/Modules/Inputs/double-quotes/flat-header-path/Z.modulemap new file mode 100644 index 000000000000..34441b07018c --- /dev/null +++ b/test/Modules/Inputs/double-quotes/flat-header-path/Z.modulemap @@ -0,0 +1,4 @@ +// double-quotes/flat-header-path/Z.modulemap +framework module Z { + header "Z.h" +} diff --git a/test/Modules/Inputs/double-quotes/x.hmap.json b/test/Modules/Inputs/double-quotes/x.hmap.json new file mode 100644 index 000000000000..2b6a05956469 --- /dev/null +++ b/test/Modules/Inputs/double-quotes/x.hmap.json @@ -0,0 +1,7 @@ + +{ + "mappings" : + { + "X.h" : "X/X.h" + } +} diff --git a/test/Modules/Inputs/double-quotes/z.yaml b/test/Modules/Inputs/double-quotes/z.yaml new file mode 100644 index 000000000000..242f821346e6 --- /dev/null +++ b/test/Modules/Inputs/double-quotes/z.yaml @@ -0,0 +1,28 @@ +{ + 'version': 0, + 'case-sensitive': 'false', + 'roots': [ + { + 'type': 'directory', + 'name': "TEST_DIR/Z.framework/Headers", + 'contents': [ + { + 'type': 'file', + 'name': "Z.h", + 'external-contents': "TEST_DIR/flat-header-path/Z.h" + } + ] + }, + { + 'type': 'directory', + 'name': "TEST_DIR/Z.framework/Modules", + 'contents': [ + { + 'type': 'file', + 'name': "module.modulemap", + 'external-contents': "TEST_DIR/flat-header-path/Z.modulemap" + } + ] + } + ] +} diff --git a/test/Modules/Inputs/exportas-link/OtherKit.framework/Headers/OtherKit.h b/test/Modules/Inputs/exportas-link/OtherKit.framework/Headers/OtherKit.h new file mode 100644 index 000000000000..f62c082d64df --- /dev/null +++ b/test/Modules/Inputs/exportas-link/OtherKit.framework/Headers/OtherKit.h @@ -0,0 +1,7 @@ +// Umbrella header for OtherKit. +#import <SomeKitCore/SomeKitCore.h> + +#ifdef F +#import <SomeKit/SomeKit.h> +#endif + diff --git a/test/Modules/Inputs/exportas-link/OtherKit.framework/Modules/module.modulemap b/test/Modules/Inputs/exportas-link/OtherKit.framework/Modules/module.modulemap new file mode 100644 index 000000000000..1ce735121809 --- /dev/null +++ b/test/Modules/Inputs/exportas-link/OtherKit.framework/Modules/module.modulemap @@ -0,0 +1,5 @@ + +framework module OtherKit { + header "OtherKit.h" + export * +} diff --git a/test/Modules/Inputs/exportas-link/SomeKit.framework/Headers/SKWidget.h b/test/Modules/Inputs/exportas-link/SomeKit.framework/Headers/SKWidget.h new file mode 100644 index 000000000000..60473720f91b --- /dev/null +++ b/test/Modules/Inputs/exportas-link/SomeKit.framework/Headers/SKWidget.h @@ -0,0 +1,2 @@ +// Delegate to SomeKitCore. +#import <SomeKitCore/SKWidget.h> diff --git a/test/Modules/Inputs/exportas-link/SomeKit.framework/Headers/SomeKit.h b/test/Modules/Inputs/exportas-link/SomeKit.framework/Headers/SomeKit.h new file mode 100644 index 000000000000..15e96a7554cc --- /dev/null +++ b/test/Modules/Inputs/exportas-link/SomeKit.framework/Headers/SomeKit.h @@ -0,0 +1,6 @@ +// Umbrella header for SomeKit. +// +// Note that this file's content must not end up to coincidentally be identical +// to any other file in the test which can easily happen given the reduced +// test. +#import <SomeKit/SKWidget.h> diff --git a/test/Modules/Inputs/exportas-link/SomeKit.framework/Modules/module.modulemap b/test/Modules/Inputs/exportas-link/SomeKit.framework/Modules/module.modulemap new file mode 100644 index 000000000000..ae4b276d47b3 --- /dev/null +++ b/test/Modules/Inputs/exportas-link/SomeKit.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module SomeKit { + umbrella header "SomeKit.h" + module * { + export * + } +} diff --git a/test/Modules/Inputs/exportas-link/SomeKit.framework/SomeKit.tbd b/test/Modules/Inputs/exportas-link/SomeKit.framework/SomeKit.tbd new file mode 100644 index 000000000000..ab95795b98e7 --- /dev/null +++ b/test/Modules/Inputs/exportas-link/SomeKit.framework/SomeKit.tbd @@ -0,0 +1 @@ +dummy tbd file diff --git a/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Headers/SKWidget.h b/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Headers/SKWidget.h new file mode 100644 index 000000000000..1fb010cb39aa --- /dev/null +++ b/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Headers/SKWidget.h @@ -0,0 +1,4 @@ +@interface SKWidget +- (void)someObjCMethod; +@end + diff --git a/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Headers/SomeKitCore.h b/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Headers/SomeKitCore.h new file mode 100644 index 000000000000..f18aa97d4218 --- /dev/null +++ b/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Headers/SomeKitCore.h @@ -0,0 +1,6 @@ +// Umbrella header for SomeKitCore. +// +// Note that this file's content must not end up to coincidentally be identical +// to any other file in the test which can easily happen given the reduced +// test. +#import <SomeKitCore/SKWidget.h> diff --git a/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Modules/module.modulemap b/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Modules/module.modulemap new file mode 100644 index 000000000000..30f9770c97c6 --- /dev/null +++ b/test/Modules/Inputs/exportas-link/SomeKitCore.framework/Modules/module.modulemap @@ -0,0 +1,7 @@ +framework module SomeKitCore { + umbrella header "SomeKitCore.h" + export_as SomeKit + module * { + export * + } +} diff --git a/test/Modules/Inputs/exportas-link/SomeKitCore.framework/SomeKitCore.tbd b/test/Modules/Inputs/exportas-link/SomeKitCore.framework/SomeKitCore.tbd new file mode 100644 index 000000000000..ab95795b98e7 --- /dev/null +++ b/test/Modules/Inputs/exportas-link/SomeKitCore.framework/SomeKitCore.tbd @@ -0,0 +1 @@ +dummy tbd file diff --git a/test/Modules/Inputs/framework-public-includes-private/A.framework/Headers/A.h b/test/Modules/Inputs/framework-public-includes-private/A.framework/Headers/A.h new file mode 100644 index 000000000000..03bd90b4945a --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/A.framework/Headers/A.h @@ -0,0 +1,4 @@ +#include <A/APriv.h> +#include "APriv2.h" +#include <Z/Z.h> +int foo(); diff --git a/test/Modules/Inputs/framework-public-includes-private/A.framework/Modules/module.modulemap b/test/Modules/Inputs/framework-public-includes-private/A.framework/Modules/module.modulemap new file mode 100644 index 000000000000..09639b2b50bb --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/A.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +// framework-public-includes-private/A.framework/Modules/module.modulemap +framework module A { + header "A.h" +} diff --git a/test/Modules/Inputs/framework-public-includes-private/A.framework/Modules/module.private.modulemap b/test/Modules/Inputs/framework-public-includes-private/A.framework/Modules/module.private.modulemap new file mode 100644 index 000000000000..8ede0b0d6ee3 --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/A.framework/Modules/module.private.modulemap @@ -0,0 +1,4 @@ +// framework-public-includes-private/A.framework/Modules/module.private.modulemap +framework module A_Private { + header "APriv.h" +} diff --git a/test/Modules/Inputs/framework-public-includes-private/A.framework/PrivateHeaders/APriv.h b/test/Modules/Inputs/framework-public-includes-private/A.framework/PrivateHeaders/APriv.h new file mode 100644 index 000000000000..34cc847512f5 --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/A.framework/PrivateHeaders/APriv.h @@ -0,0 +1 @@ +// framework-public-includes-private/A.framework/PrivateHeaders/APriv.h diff --git a/test/Modules/Inputs/framework-public-includes-private/A.framework/PrivateHeaders/APriv2.h b/test/Modules/Inputs/framework-public-includes-private/A.framework/PrivateHeaders/APriv2.h new file mode 100644 index 000000000000..8ffeb4183740 --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/A.framework/PrivateHeaders/APriv2.h @@ -0,0 +1 @@ +// framework-public-includes-private/A.framework/PrivateHeaders/APriv2.h diff --git a/test/Modules/Inputs/framework-public-includes-private/a.hmap.json b/test/Modules/Inputs/framework-public-includes-private/a.hmap.json new file mode 100644 index 000000000000..42aed4551c17 --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/a.hmap.json @@ -0,0 +1,8 @@ + +{ + "mappings" : + { + "A.h" : "A/A.h", + "APriv2.h" : "A/APriv2.h" + } +} diff --git a/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.h b/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.h new file mode 100644 index 000000000000..157c6daa76eb --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.h @@ -0,0 +1,2 @@ +// framework-public-includes-private/flat-header-path/Z.h +#import "ZPriv.h" diff --git a/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.modulemap b/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.modulemap new file mode 100644 index 000000000000..0a1a9710c4fa --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.modulemap @@ -0,0 +1,4 @@ +// framework-public-includes-private/flat-header-path/Z.modulemap +framework module Z { + header "Z.h" +} diff --git a/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.private.modulemap b/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.private.modulemap new file mode 100644 index 000000000000..f409af8a15af --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/flat-header-path/Z.private.modulemap @@ -0,0 +1,4 @@ +// framework-public-includes-private/flat-header-path/Z.private.modulemap +framework module Z_Private { + header "ZPriv.h" +} diff --git a/test/Modules/Inputs/framework-public-includes-private/flat-header-path/ZPriv.h b/test/Modules/Inputs/framework-public-includes-private/flat-header-path/ZPriv.h new file mode 100644 index 000000000000..08532fedbfa4 --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/flat-header-path/ZPriv.h @@ -0,0 +1 @@ +// framework-public-includes-private/flat-header-path/ZPriv.h diff --git a/test/Modules/Inputs/framework-public-includes-private/z.hmap.json b/test/Modules/Inputs/framework-public-includes-private/z.hmap.json new file mode 100644 index 000000000000..206b25ec738e --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/z.hmap.json @@ -0,0 +1,7 @@ + +{ + "mappings" : + { + "ZPriv.h" : "Z/ZPriv.h" + } +} diff --git a/test/Modules/Inputs/framework-public-includes-private/z.yaml b/test/Modules/Inputs/framework-public-includes-private/z.yaml new file mode 100644 index 000000000000..5793c1ff1f19 --- /dev/null +++ b/test/Modules/Inputs/framework-public-includes-private/z.yaml @@ -0,0 +1,45 @@ +{ + 'version': 0, + 'case-sensitive': 'false', + 'use-external-names' : 'false', + 'roots': [ + { + 'type': 'directory', + 'name': "TEST_DIR/Z.framework/Headers", + 'contents': [ + { + 'type': 'file', + 'name': "Z.h", + 'external-contents': "TEST_DIR/flat-header-path/Z.h" + } + ] + }, + { + 'type': 'directory', + 'name': "TEST_DIR/Z.framework/PrivateHeaders", + 'contents': [ + { + 'type': 'file', + 'name': "ZPriv.h", + 'external-contents': "TEST_DIR/flat-header-path/ZPriv.h" + } + ] + }, + { + 'type': 'directory', + 'name': "TEST_DIR/Z.framework/Modules", + 'contents': [ + { + 'type': 'file', + 'name': "module.modulemap", + 'external-contents': "TEST_DIR/flat-header-path/Z.modulemap" + }, + { + 'type': 'file', + 'name': "module.private.modulemap", + 'external-contents': "TEST_DIR/flat-header-path/Z.private.modulemap" + } + ] + } + ] +} diff --git a/test/Modules/Inputs/implicit-private-canonical/A.framework/Modules/module.modulemap b/test/Modules/Inputs/implicit-private-canonical/A.framework/Modules/module.modulemap index 95eabf90a968..e8455fb730d1 100644 --- a/test/Modules/Inputs/implicit-private-canonical/A.framework/Modules/module.modulemap +++ b/test/Modules/Inputs/implicit-private-canonical/A.framework/Modules/module.modulemap @@ -1,4 +1,7 @@ framework module A { header "a.h" + + module Pirate {} + export * } diff --git a/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap b/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap index 95eabf90a968..73d5ab7a4bbe 100644 --- a/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap +++ b/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/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap b/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap index 40182969f4c7..9acb48997021 100644 --- a/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap +++ b/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/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Headers/Foo.h b/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Headers/Foo.h new file mode 100644 index 000000000000..547f1bc6b086 --- /dev/null +++ b/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Headers/Foo.h @@ -0,0 +1 @@ +// Inputs/incomplete-framework-module/Foo.framework/Headers/Foo.h diff --git a/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Headers/FooB.h b/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Headers/FooB.h new file mode 100644 index 000000000000..eda7c1707000 --- /dev/null +++ b/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Headers/FooB.h @@ -0,0 +1 @@ +// FooB.h diff --git a/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Modules/module.modulemap b/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Modules/module.modulemap new file mode 100644 index 000000000000..d928a53efcdf --- /dev/null +++ b/test/Modules/Inputs/incomplete-framework-module/Foo.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +module Foo { + umbrella header "Foo.h" + header "FooB.h" +} diff --git a/test/Modules/Inputs/module.map b/test/Modules/Inputs/module.map index 4788daa43166..3f128c0bb0e0 100644 --- a/test/Modules/Inputs/module.map +++ b/test/Modules/Inputs/module.map @@ -380,6 +380,11 @@ module TargetFeatures { module x86_32 { requires x86_32 } module x86_64 { requires x86_64 } } + module riscv { + requires riscv + module riscv32 { requires riscv32 } + module riscv64 { requires riscv64 } + } } module DebugSubmodules { @@ -460,3 +465,13 @@ module innerstructredef { header "innerstructredef.h" } } + +module template_nontrivial0 { + header "template-nontrivial0.h" + export * +} + +module template_nontrivial1 { + header "template-nontrivial1.h" + export * +} diff --git a/test/Modules/Inputs/non-ambiguous-enum/A.framework/Headers/a.h b/test/Modules/Inputs/non-ambiguous-enum/A.framework/Headers/a.h new file mode 100644 index 000000000000..060bc4997385 --- /dev/null +++ b/test/Modules/Inputs/non-ambiguous-enum/A.framework/Headers/a.h @@ -0,0 +1 @@ +#include <A/a0.h> diff --git a/test/Modules/Inputs/non-ambiguous-enum/A.framework/Headers/a0.h b/test/Modules/Inputs/non-ambiguous-enum/A.framework/Headers/a0.h new file mode 100644 index 000000000000..2e4d0912119e --- /dev/null +++ b/test/Modules/Inputs/non-ambiguous-enum/A.framework/Headers/a0.h @@ -0,0 +1 @@ +#include <B/b.h> diff --git a/test/Modules/Inputs/non-ambiguous-enum/A.framework/Modules/module.modulemap b/test/Modules/Inputs/non-ambiguous-enum/A.framework/Modules/module.modulemap new file mode 100644 index 000000000000..e14f8f02053a --- /dev/null +++ b/test/Modules/Inputs/non-ambiguous-enum/A.framework/Modules/module.modulemap @@ -0,0 +1,5 @@ + +framework module A { + header "a.h" + export * +} diff --git a/test/Modules/Inputs/non-ambiguous-enum/B.framework/Headers/b.h b/test/Modules/Inputs/non-ambiguous-enum/B.framework/Headers/b.h new file mode 100644 index 000000000000..def44e3a6340 --- /dev/null +++ b/test/Modules/Inputs/non-ambiguous-enum/B.framework/Headers/b.h @@ -0,0 +1,6 @@ +typedef long NSInteger; +typedef enum __attribute__((flag_enum,enum_extensibility(open))) MyObjCEnum : NSInteger MyObjCEnum; + +enum MyObjCEnum : NSInteger { + MyEnumCst = 1, +} __attribute__((availability(ios,introduced=11.0))) __attribute__((availability(tvos,unavailable))) ; diff --git a/test/Modules/Inputs/odr_hash-Friend/Bad.h b/test/Modules/Inputs/odr_hash-Friend/Bad.h new file mode 100644 index 000000000000..c0a6d1f9889f --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Friend/Bad.h @@ -0,0 +1,17 @@ +template <class T> +struct iterator { + void Compare(const iterator &x) { return; } + friend void Check(iterator) { return; } +}; + +template <class T = int> struct Box { + iterator<T> I; + + void test() { + Check(I); + I.Compare(I); + } +}; + +// Force instantiation of Box<int> +Box<> B; diff --git a/test/Modules/Inputs/odr_hash-Friend/Box.h b/test/Modules/Inputs/odr_hash-Friend/Box.h new file mode 100644 index 000000000000..01ab90d601c2 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Friend/Box.h @@ -0,0 +1,14 @@ +template <class T> +struct iterator { + void Compare(const iterator &x) { } + friend void Check(iterator) {} +}; + +template <class T = int> struct Box { + iterator<T> I; + + void test() { + Check(I); + I.Compare(I); + } +}; diff --git a/test/Modules/Inputs/odr_hash-Friend/Good.h b/test/Modules/Inputs/odr_hash-Friend/Good.h new file mode 100644 index 000000000000..4c38392eb6ed --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Friend/Good.h @@ -0,0 +1,17 @@ +template <class T> +struct iterator { + void Compare(const iterator &x) { } + friend void Check(iterator) {} +}; + +template <class T = int> struct Box { + iterator<T> I; + + void test() { + Check(I); + I.Compare(I); + } +}; + +// Force instantiation of Box<int> +Box<> B; diff --git a/test/Modules/Inputs/odr_hash-Friend/M1.h b/test/Modules/Inputs/odr_hash-Friend/M1.h new file mode 100644 index 000000000000..202ad06c3488 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Friend/M1.h @@ -0,0 +1,6 @@ +#include "Box.h" + +void Peek() { + Box<> Gift; + Gift.test(); +} diff --git a/test/Modules/Inputs/odr_hash-Friend/M2.h b/test/Modules/Inputs/odr_hash-Friend/M2.h new file mode 100644 index 000000000000..69f08a957ede --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Friend/M2.h @@ -0,0 +1,5 @@ +#include "Box.h" +void x() { + Box<> Unused; + //Unused.test(); +} diff --git a/test/Modules/Inputs/odr_hash-Friend/M3.h b/test/Modules/Inputs/odr_hash-Friend/M3.h new file mode 100644 index 000000000000..ab457e0c08f2 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Friend/M3.h @@ -0,0 +1,7 @@ +#include "Box.h" +#include "M2.h" + +void Party() { + Box<> Present; + Present.test(); +} diff --git a/test/Modules/Inputs/odr_hash-Friend/module.modulemap b/test/Modules/Inputs/odr_hash-Friend/module.modulemap new file mode 100644 index 000000000000..449d51e7f709 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Friend/module.modulemap @@ -0,0 +1,23 @@ +module Box { + header "Box.h" +} + +module Module1 { + header "M1.h" +} + +module Module2 { + header "M2.h" +} + +module Module3 { + header "M3.h" +} + +module Good { + header "Good.h" +} + +module Bad { + header "Bad.h" +} diff --git a/test/Modules/Inputs/odr_hash-Unresolved/Module2/include.h b/test/Modules/Inputs/odr_hash-Unresolved/Module2/include.h new file mode 100644 index 000000000000..fa7c017228e7 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/Module2/include.h @@ -0,0 +1,3 @@ +// include.h +#include "Sub1/Z.h" + diff --git a/test/Modules/Inputs/odr_hash-Unresolved/Module2/not-include.h b/test/Modules/Inputs/odr_hash-Unresolved/Module2/not-include.h new file mode 100644 index 000000000000..98cd1ef26fce --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/Module2/not-include.h @@ -0,0 +1,5 @@ +// not-include.h + +#include "function.h" +#include "class.h" + diff --git a/test/Modules/Inputs/odr_hash-Unresolved/Sub1/X.h b/test/Modules/Inputs/odr_hash-Unresolved/Sub1/X.h new file mode 100644 index 000000000000..f610e665e5cb --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/Sub1/X.h @@ -0,0 +1,3 @@ +// X.h +#include "Sub1/Z.h" + diff --git a/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Y.h b/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Y.h new file mode 100644 index 000000000000..f41ddd639e76 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Y.h @@ -0,0 +1,4 @@ +// Y.h +#include "Sub1/Z.h" +#include "class.h" + diff --git a/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Z.h b/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Z.h new file mode 100644 index 000000000000..b6bdc140f997 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/Sub1/Z.h @@ -0,0 +1,4 @@ +// Z.h +#include "Sub2/A.h" +#include "Sub2/B.h" + diff --git a/test/Modules/Inputs/odr_hash-Unresolved/Sub2/A.h b/test/Modules/Inputs/odr_hash-Unresolved/Sub2/A.h new file mode 100644 index 000000000000..a65b370beae3 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/Sub2/A.h @@ -0,0 +1,3 @@ +// A.h +#include "function.h" + diff --git a/test/Modules/Inputs/odr_hash-Unresolved/Sub2/B.h b/test/Modules/Inputs/odr_hash-Unresolved/Sub2/B.h new file mode 100644 index 000000000000..fa89f216b6ce --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/Sub2/B.h @@ -0,0 +1,3 @@ +// B.h +#include "function.h" + diff --git a/test/Modules/Inputs/odr_hash-Unresolved/class.h b/test/Modules/Inputs/odr_hash-Unresolved/class.h new file mode 100644 index 000000000000..fe3a7116f9bf --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/class.h @@ -0,0 +1,11 @@ +#ifndef Class +#define Class +template <class T> +class S { + int Field; + void run() { + int x; + A::Check(&Field, 1); + } +}; +#endif diff --git a/test/Modules/Inputs/odr_hash-Unresolved/function.h b/test/Modules/Inputs/odr_hash-Unresolved/function.h new file mode 100644 index 000000000000..de75b2c92ef6 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/function.h @@ -0,0 +1,6 @@ +#ifndef Function +#define Function +namespace A { +static void Check(int*, int) {} +} +#endif diff --git a/test/Modules/Inputs/odr_hash-Unresolved/module.modulemap b/test/Modules/Inputs/odr_hash-Unresolved/module.modulemap new file mode 100644 index 000000000000..ac7fc43cae63 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-Unresolved/module.modulemap @@ -0,0 +1,21 @@ +module Module1 { + module Sub1 { + umbrella "Sub1" + module * { export * } + } + + module Sub2 { + umbrella "Sub2" + module * { export * } + } +} + +module Module2 { + umbrella "Module2" + module * { export * } +} + +module Other { + textual header "function.h" + textual header "class.h" +} diff --git a/test/Modules/Inputs/odr_hash-elaborated-types/first.h b/test/Modules/Inputs/odr_hash-elaborated-types/first.h new file mode 100644 index 000000000000..d2c4a033a161 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-elaborated-types/first.h @@ -0,0 +1,6 @@ +#ifndef FIRST +#define FIRST + +#include "textual_time.h" + +#endif diff --git a/test/Modules/Inputs/odr_hash-elaborated-types/module.modulemap b/test/Modules/Inputs/odr_hash-elaborated-types/module.modulemap new file mode 100644 index 000000000000..94cb4c111918 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-elaborated-types/module.modulemap @@ -0,0 +1,5 @@ +module M { + module first { header "first.h" export *} + module second { header "second.h" export *} + export * +} diff --git a/test/Modules/Inputs/odr_hash-elaborated-types/second.h b/test/Modules/Inputs/odr_hash-elaborated-types/second.h new file mode 100644 index 000000000000..577cf1134579 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-elaborated-types/second.h @@ -0,0 +1,6 @@ +#ifndef SECOND +#define SECOND + +#include "textual_stat.h" + +#endif diff --git a/test/Modules/Inputs/odr_hash-elaborated-types/textual_stat.h b/test/Modules/Inputs/odr_hash-elaborated-types/textual_stat.h new file mode 100644 index 000000000000..5dad510f9eb9 --- /dev/null +++ b/test/Modules/Inputs/odr_hash-elaborated-types/textual_stat.h @@ -0,0 +1,11 @@ +#ifndef _SYS_STAT_H +#define _SYS_STAT_H + +#include "textual_time.h" + +struct stat { + struct timespec st_atim; + struct timespec st_mtim; +}; + +#endif diff --git a/test/Modules/Inputs/odr_hash-elaborated-types/textual_time.h b/test/Modules/Inputs/odr_hash-elaborated-types/textual_time.h new file mode 100644 index 000000000000..2a2a89c5a7eb --- /dev/null +++ b/test/Modules/Inputs/odr_hash-elaborated-types/textual_time.h @@ -0,0 +1,6 @@ +#ifndef _TIME_H +#define _TIME_H + +struct timespec { }; + +#endif diff --git a/test/Modules/Inputs/protocol-redefinition/Base.framework/Headers/Base.h b/test/Modules/Inputs/protocol-redefinition/Base.framework/Headers/Base.h new file mode 100644 index 000000000000..e3fe33c1bdb9 --- /dev/null +++ b/test/Modules/Inputs/protocol-redefinition/Base.framework/Headers/Base.h @@ -0,0 +1,3 @@ +@protocol Foo +- (void)someMethodOnFoo; +@end diff --git a/test/Modules/Inputs/protocol-redefinition/Base.framework/Modules/module.modulemap b/test/Modules/Inputs/protocol-redefinition/Base.framework/Modules/module.modulemap new file mode 100644 index 000000000000..0366bb4f0390 --- /dev/null +++ b/test/Modules/Inputs/protocol-redefinition/Base.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +framework module Base { + header "Base.h" + export * +}
\ No newline at end of file diff --git a/test/Modules/Inputs/protocol-redefinition/Kit.framework/Headers/Kit.h b/test/Modules/Inputs/protocol-redefinition/Kit.framework/Headers/Kit.h new file mode 100644 index 000000000000..93384c294f13 --- /dev/null +++ b/test/Modules/Inputs/protocol-redefinition/Kit.framework/Headers/Kit.h @@ -0,0 +1,6 @@ +#import <Base/Base.h> + +// REDECLARATION +@protocol Foo +- (void)someMethodOnFoo; +@end diff --git a/test/Modules/Inputs/protocol-redefinition/Kit.framework/Modules/module.modulemap b/test/Modules/Inputs/protocol-redefinition/Kit.framework/Modules/module.modulemap new file mode 100644 index 000000000000..2b790f449654 --- /dev/null +++ b/test/Modules/Inputs/protocol-redefinition/Kit.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +framework module Kit { + header "Kit.h" + export * +}
\ No newline at end of file diff --git a/test/Modules/Inputs/self-referencing-lambda/a.h b/test/Modules/Inputs/self-referencing-lambda/a.h new file mode 100644 index 000000000000..756fe18de629 --- /dev/null +++ b/test/Modules/Inputs/self-referencing-lambda/a.h @@ -0,0 +1,4 @@ +void f() { + int x = 0; + auto q = [xm = x]{}; +} diff --git a/test/Modules/Inputs/self-referencing-lambda/module.modulemap b/test/Modules/Inputs/self-referencing-lambda/module.modulemap new file mode 100644 index 000000000000..812ca9de82d3 --- /dev/null +++ b/test/Modules/Inputs/self-referencing-lambda/module.modulemap @@ -0,0 +1,4 @@ +module "a.h" { + header "a.h" + export * +} diff --git a/test/Modules/Inputs/shadow/A1/A.h b/test/Modules/Inputs/shadow/A1/A.h new file mode 100644 index 000000000000..f07c681c2aa5 --- /dev/null +++ b/test/Modules/Inputs/shadow/A1/A.h @@ -0,0 +1 @@ +#define A1_A_h diff --git a/test/Modules/Inputs/shadow/A1/module.modulemap b/test/Modules/Inputs/shadow/A1/module.modulemap new file mode 100644 index 000000000000..9439a431b1db --- /dev/null +++ b/test/Modules/Inputs/shadow/A1/module.modulemap @@ -0,0 +1,5 @@ +module A { + header "A.h" +} + +module A1 {} diff --git a/test/Modules/Inputs/shadow/A2/A.h b/test/Modules/Inputs/shadow/A2/A.h new file mode 100644 index 000000000000..9880ed010f56 --- /dev/null +++ b/test/Modules/Inputs/shadow/A2/A.h @@ -0,0 +1 @@ +#define A2_A_h diff --git a/test/Modules/Inputs/shadow/A2/module.modulemap b/test/Modules/Inputs/shadow/A2/module.modulemap new file mode 100644 index 000000000000..935d89bb425e --- /dev/null +++ b/test/Modules/Inputs/shadow/A2/module.modulemap @@ -0,0 +1,5 @@ +module A { + header "A.h" +} + +module A2 {} diff --git a/test/Modules/Inputs/shadowed-submodule/A1/Foo.h b/test/Modules/Inputs/shadowed-submodule/A1/Foo.h new file mode 100644 index 000000000000..57775d1a29dd --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/A1/Foo.h @@ -0,0 +1 @@ +#include <stdarg.h> // expected-error {{could not build module 'A'}} diff --git a/test/Modules/Inputs/shadowed-submodule/A1/module.modulemap b/test/Modules/Inputs/shadowed-submodule/A1/module.modulemap new file mode 100644 index 000000000000..7afbc4713617 --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/A1/module.modulemap @@ -0,0 +1,14 @@ +module A [system] { // expected-note {{previous definition is here}} + module sub { + header "sys/A.h" + } + module sub2 { + header "sys/A2.h" + } + module stdarg { + header "stdarg.h" + export * + } +} + +module A2 {} diff --git a/test/Modules/Inputs/shadowed-submodule/A1/sys/A.h b/test/Modules/Inputs/shadowed-submodule/A1/sys/A.h new file mode 100644 index 000000000000..4fc3e8ea9e63 --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/A1/sys/A.h @@ -0,0 +1 @@ +#include <sys/A2.h> diff --git a/test/Modules/Inputs/shadowed-submodule/A1/sys/A2.h b/test/Modules/Inputs/shadowed-submodule/A1/sys/A2.h new file mode 100644 index 000000000000..e9b6a44cfe21 --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/A1/sys/A2.h @@ -0,0 +1 @@ +// nothing diff --git a/test/Modules/Inputs/shadowed-submodule/A2/Foo.h b/test/Modules/Inputs/shadowed-submodule/A2/Foo.h new file mode 100644 index 000000000000..38ade6d9f505 --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/A2/Foo.h @@ -0,0 +1 @@ +#include <stdarg.h> diff --git a/test/Modules/Inputs/shadowed-submodule/A2/module.modulemap b/test/Modules/Inputs/shadowed-submodule/A2/module.modulemap new file mode 100644 index 000000000000..c4e44b074aa1 --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/A2/module.modulemap @@ -0,0 +1,14 @@ +module A [system] { + module sub { + header "sys/A.h" + } + module sub2 { // expected-error {{build a shadowed submodule 'A.sub2'}} + header "sys/A2.h" + } + module stdarg { + header "stdarg.h" + export * + } +} + +module A2 {} diff --git a/test/Modules/Inputs/shadowed-submodule/A2/sys/A.h b/test/Modules/Inputs/shadowed-submodule/A2/sys/A.h new file mode 100644 index 000000000000..4fc3e8ea9e63 --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/A2/sys/A.h @@ -0,0 +1 @@ +#include <sys/A2.h> diff --git a/test/Modules/Inputs/shadowed-submodule/A2/sys/A2.h b/test/Modules/Inputs/shadowed-submodule/A2/sys/A2.h new file mode 100644 index 000000000000..e9b6a44cfe21 --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/A2/sys/A2.h @@ -0,0 +1 @@ +// nothing diff --git a/test/Modules/Inputs/shadowed-submodule/Foo/module.modulemap b/test/Modules/Inputs/shadowed-submodule/Foo/module.modulemap new file mode 100644 index 000000000000..11db9cb05da2 --- /dev/null +++ b/test/Modules/Inputs/shadowed-submodule/Foo/module.modulemap @@ -0,0 +1,3 @@ +module Foo { + header "../A1/Foo.h" +} diff --git a/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Headers/A.h b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Headers/A.h new file mode 100644 index 000000000000..975f1f0437bb --- /dev/null +++ b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Headers/A.h @@ -0,0 +1 @@ +// A.h diff --git a/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Headers/SomeSub.h b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Headers/SomeSub.h new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Headers/SomeSub.h diff --git a/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Modules/module.modulemap b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Modules/module.modulemap new file mode 100644 index 000000000000..afa48392e94a --- /dev/null +++ b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Modules/module.modulemap @@ -0,0 +1,3 @@ +framework module A { + header "A.h" +} diff --git a/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Modules/module.private.modulemap b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Modules/module.private.modulemap new file mode 100644 index 000000000000..1dbd9fb8096b --- /dev/null +++ b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/Modules/module.private.modulemap @@ -0,0 +1,7 @@ +framework module A_Private { + header "APrivate.h" +} + +module A.SomeSub { + header "SomeSub.h" +} diff --git a/test/Modules/Inputs/submodule-in-private-mmap/A.framework/PrivateHeaders/APrivate.h b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/PrivateHeaders/APrivate.h new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test/Modules/Inputs/submodule-in-private-mmap/A.framework/PrivateHeaders/APrivate.h diff --git a/test/Modules/Inputs/template-nontrivial0.h b/test/Modules/Inputs/template-nontrivial0.h new file mode 100644 index 000000000000..cff080ee5cc2 --- /dev/null +++ b/test/Modules/Inputs/template-nontrivial0.h @@ -0,0 +1,13 @@ +template <class T> +struct Class0 { + Class0(); + Class0(const Class0<T> &); + ~Class0(); + T *p; +}; + +struct S0 { + id x; +}; + +Class0<S0> returnNonTrivial(); diff --git a/test/Modules/Inputs/template-nontrivial1.h b/test/Modules/Inputs/template-nontrivial1.h new file mode 100644 index 000000000000..24136f0cae4e --- /dev/null +++ b/test/Modules/Inputs/template-nontrivial1.h @@ -0,0 +1,6 @@ +@import template_nontrivial0; + +struct S1 { + S1(); + Class0<S0> a; +}; |
