diff options
Diffstat (limited to 'test/Modules/Inputs')
72 files changed, 312 insertions, 0 deletions
diff --git a/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/B.h b/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/B.h new file mode 100644 index 000000000000..761540b09cb3 --- /dev/null +++ b/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/B.h @@ -0,0 +1 @@ +// B.h diff --git a/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/Sub.h b/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/Sub.h new file mode 100644 index 000000000000..fd86e3cf872f --- /dev/null +++ b/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/Headers/Sub.h @@ -0,0 +1,2 @@ +// Sub.h +#import "B.h" diff --git a/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/BPriv.h b/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/BPriv.h new file mode 100644 index 000000000000..4ab49b798c63 --- /dev/null +++ b/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/BPriv.h @@ -0,0 +1 @@ +// BPriv.h diff --git a/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/SubPriv.h b/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/SubPriv.h new file mode 100644 index 000000000000..f6ac6188d65f --- /dev/null +++ b/test/Modules/Inputs/Main.framework/Frameworks/Sub.framework/PrivateHeaders/SubPriv.h @@ -0,0 +1 @@ +#import "BPriv.h" diff --git a/test/Modules/Inputs/Main.framework/Headers/A.h b/test/Modules/Inputs/Main.framework/Headers/A.h new file mode 100644 index 000000000000..975f1f0437bb --- /dev/null +++ b/test/Modules/Inputs/Main.framework/Headers/A.h @@ -0,0 +1 @@ +// A.h diff --git a/test/Modules/Inputs/Main.framework/Headers/Main.h b/test/Modules/Inputs/Main.framework/Headers/Main.h new file mode 100644 index 000000000000..cb8cc00a0c45 --- /dev/null +++ b/test/Modules/Inputs/Main.framework/Headers/Main.h @@ -0,0 +1,2 @@ +// Main.h +#import "A.h" diff --git a/test/Modules/Inputs/Main.framework/Modules/module.modulemap b/test/Modules/Inputs/Main.framework/Modules/module.modulemap new file mode 100644 index 000000000000..9fab5d350fea --- /dev/null +++ b/test/Modules/Inputs/Main.framework/Modules/module.modulemap @@ -0,0 +1,12 @@ +framework module Main { + umbrella header "Main.h" + + module * { export * } + export * + + framework module Sub { + umbrella header "Sub.h" + module * { export * } + export * + } +} diff --git a/test/Modules/Inputs/Main.framework/Modules/module.private.modulemap b/test/Modules/Inputs/Main.framework/Modules/module.private.modulemap new file mode 100644 index 000000000000..54e8be79bfa5 --- /dev/null +++ b/test/Modules/Inputs/Main.framework/Modules/module.private.modulemap @@ -0,0 +1,11 @@ +module Main.Private { + umbrella header "MainPriv.h" + module * { export * } + export * +} + +module Main.Sub.Private { + umbrella header "SubPriv.h" + module * { export * } + export * +} diff --git a/test/Modules/Inputs/Main.framework/PrivateHeaders/APriv.h b/test/Modules/Inputs/Main.framework/PrivateHeaders/APriv.h new file mode 100644 index 000000000000..6ac683c39c55 --- /dev/null +++ b/test/Modules/Inputs/Main.framework/PrivateHeaders/APriv.h @@ -0,0 +1 @@ +// APriv.h diff --git a/test/Modules/Inputs/Main.framework/PrivateHeaders/MainPriv.h b/test/Modules/Inputs/Main.framework/PrivateHeaders/MainPriv.h new file mode 100644 index 000000000000..68103017ad0b --- /dev/null +++ b/test/Modules/Inputs/Main.framework/PrivateHeaders/MainPriv.h @@ -0,0 +1 @@ +#import "APriv.h" diff --git a/test/Modules/Inputs/anon-redecl/a.h b/test/Modules/Inputs/anon-redecl/a.h new file mode 100644 index 000000000000..1b23e724160a --- /dev/null +++ b/test/Modules/Inputs/anon-redecl/a.h @@ -0,0 +1,2 @@ +struct X { union { int n; }; }; +inline int a(X x) { return x.n; } diff --git a/test/Modules/Inputs/anon-redecl/b.h b/test/Modules/Inputs/anon-redecl/b.h new file mode 100644 index 000000000000..23ea804a2459 --- /dev/null +++ b/test/Modules/Inputs/anon-redecl/b.h @@ -0,0 +1,2 @@ +struct X { union { int n; }; }; +inline int b(X x) { return x.n; } diff --git a/test/Modules/Inputs/anon-redecl/c1.h b/test/Modules/Inputs/anon-redecl/c1.h new file mode 100644 index 000000000000..600af314ec35 --- /dev/null +++ b/test/Modules/Inputs/anon-redecl/c1.h @@ -0,0 +1,2 @@ +#include "a.h" +#include "b.h" diff --git a/test/Modules/Inputs/anon-redecl/c2.h b/test/Modules/Inputs/anon-redecl/c2.h new file mode 100644 index 000000000000..2e99b27194c8 --- /dev/null +++ b/test/Modules/Inputs/anon-redecl/c2.h @@ -0,0 +1,2 @@ +struct X { union { int n; }; }; +inline int c(X x) { return x.n; } diff --git a/test/Modules/Inputs/anon-redecl/module.modulemap b/test/Modules/Inputs/anon-redecl/module.modulemap new file mode 100644 index 000000000000..49678452e0c4 --- /dev/null +++ b/test/Modules/Inputs/anon-redecl/module.modulemap @@ -0,0 +1,6 @@ +module a { header "a.h" } +module b { header "b.h" } +module c { + module c1 { header "c1.h" } + module c2 { header "c2.h" } +} diff --git a/test/Modules/Inputs/category_right_sub.h b/test/Modules/Inputs/category_right_sub.h index 231f65ffe0ad..c8ba7937f561 100644 --- a/test/Modules/Inputs/category_right_sub.h +++ b/test/Modules/Inputs/category_right_sub.h @@ -15,3 +15,8 @@ @interface Foo(LeftP4) <P4> @end + +// A hidden extension +@interface Foo () +@property (assign) int hiddenPropertyFromExtension; +@end diff --git a/test/Modules/Inputs/codegen-flags/foo.h b/test/Modules/Inputs/codegen-flags/foo.h new file mode 100644 index 000000000000..7b9c1cd8e086 --- /dev/null +++ b/test/Modules/Inputs/codegen-flags/foo.h @@ -0,0 +1,4 @@ +struct foo { +}; +inline void f1() { +} diff --git a/test/Modules/Inputs/codegen-flags/foo.modulemap b/test/Modules/Inputs/codegen-flags/foo.modulemap new file mode 100644 index 000000000000..2e095d2794c3 --- /dev/null +++ b/test/Modules/Inputs/codegen-flags/foo.modulemap @@ -0,0 +1 @@ +module foo { header "foo.h" } diff --git a/test/Modules/Inputs/codegen-flags/use.cpp b/test/Modules/Inputs/codegen-flags/use.cpp new file mode 100644 index 000000000000..378ff3124e75 --- /dev/null +++ b/test/Modules/Inputs/codegen-flags/use.cpp @@ -0,0 +1,5 @@ +#include "foo.h" +void use() { + f1(); + foo f; +} diff --git a/test/Modules/Inputs/codegen-nodep/foo.h b/test/Modules/Inputs/codegen-nodep/foo.h new file mode 100644 index 000000000000..e7b20a512db1 --- /dev/null +++ b/test/Modules/Inputs/codegen-nodep/foo.h @@ -0,0 +1,11 @@ +template <typename T> +void foot() { +} +inline void foo() { +} + +template <typename T> +struct bart { +}; +struct bar { +}; diff --git a/test/Modules/Inputs/codegen-nodep/foo.modulemap b/test/Modules/Inputs/codegen-nodep/foo.modulemap new file mode 100644 index 000000000000..2e095d2794c3 --- /dev/null +++ b/test/Modules/Inputs/codegen-nodep/foo.modulemap @@ -0,0 +1 @@ +module foo { header "foo.h" } diff --git a/test/Modules/Inputs/codegen-opt/bar.h b/test/Modules/Inputs/codegen-opt/bar.h new file mode 100644 index 000000000000..a00e8f70e089 --- /dev/null +++ b/test/Modules/Inputs/codegen-opt/bar.h @@ -0,0 +1,2 @@ +#include "foo.h" +inline void bar() { foo(); } diff --git a/test/Modules/Inputs/codegen-opt/bar.modulemap b/test/Modules/Inputs/codegen-opt/bar.modulemap new file mode 100644 index 000000000000..f1dc625857e0 --- /dev/null +++ b/test/Modules/Inputs/codegen-opt/bar.modulemap @@ -0,0 +1 @@ +module bar { header "bar.h" } diff --git a/test/Modules/Inputs/codegen-opt/foo.h b/test/Modules/Inputs/codegen-opt/foo.h new file mode 100644 index 000000000000..b3a7af7c9d9b --- /dev/null +++ b/test/Modules/Inputs/codegen-opt/foo.h @@ -0,0 +1,10 @@ +void f1(int &); +static void f2() {} +inline void foo() { + static int i; + f1(i); + f2(); +} +inline void foo2() { +} +void foo_ext() {} diff --git a/test/Modules/Inputs/codegen-opt/foo.modulemap b/test/Modules/Inputs/codegen-opt/foo.modulemap new file mode 100644 index 000000000000..2e095d2794c3 --- /dev/null +++ b/test/Modules/Inputs/codegen-opt/foo.modulemap @@ -0,0 +1 @@ +module foo { header "foo.h" } diff --git a/test/Modules/Inputs/codegen-opt/use.cpp b/test/Modules/Inputs/codegen-opt/use.cpp new file mode 100644 index 000000000000..b55a31fe158f --- /dev/null +++ b/test/Modules/Inputs/codegen-opt/use.cpp @@ -0,0 +1,2 @@ +#include "bar.h" +int main() { bar(); } diff --git a/test/Modules/Inputs/codegen/foo.h b/test/Modules/Inputs/codegen/foo.h new file mode 100644 index 000000000000..bd3b6489e710 --- /dev/null +++ b/test/Modules/Inputs/codegen/foo.h @@ -0,0 +1,32 @@ +inline void f1(const char* fmt, ...) { + __builtin_va_list args; + __builtin_va_start(args, fmt); +} + +struct non_trivial_dtor { + ~non_trivial_dtor(); +}; + +struct implicit_dtor { + non_trivial_dtor d; +}; + +struct uninst_implicit_dtor { + non_trivial_dtor d; +}; + +inline void use_implicit_dtor() { + implicit_dtor d; +} + +template <typename T> +void inst() { +} + +inline void inst_decl() { + // cause inst<int>'s declaration to be instantiated, without a definition. + (void)sizeof(&inst<int>); + inst<float>(); +} + +asm("narf"); diff --git a/test/Modules/Inputs/codegen/foo.modulemap b/test/Modules/Inputs/codegen/foo.modulemap new file mode 100644 index 000000000000..2e095d2794c3 --- /dev/null +++ b/test/Modules/Inputs/codegen/foo.modulemap @@ -0,0 +1 @@ +module foo { header "foo.h" } diff --git a/test/Modules/Inputs/codegen/use.cpp b/test/Modules/Inputs/codegen/use.cpp new file mode 100644 index 000000000000..cd1a4a642d09 --- /dev/null +++ b/test/Modules/Inputs/codegen/use.cpp @@ -0,0 +1,8 @@ +#include "foo.h" +void non_modular_use_of_implicit_dtor() { + implicit_dtor d1; + uninst_implicit_dtor d2; +} +void use_of_instantiated_declaration_without_definition() { + inst<int>(); +} diff --git a/test/Modules/Inputs/cxx17/decls.h b/test/Modules/Inputs/cxx17/decls.h new file mode 100644 index 000000000000..473b6d15112a --- /dev/null +++ b/test/Modules/Inputs/cxx17/decls.h @@ -0,0 +1,3 @@ +struct MergeExceptionSpec { + ~MergeExceptionSpec(); // unevaluated exception spec +}; diff --git a/test/Modules/Inputs/cxx17/module.modulemap b/test/Modules/Inputs/cxx17/module.modulemap new file mode 100644 index 000000000000..2339e49e03bd --- /dev/null +++ b/test/Modules/Inputs/cxx17/module.modulemap @@ -0,0 +1 @@ +module Decls { header "decls.h" } diff --git a/test/Modules/Inputs/diag_pragma.h b/test/Modules/Inputs/diag_pragma.h index a8f958994ca5..59c73ea756e0 100644 --- a/test/Modules/Inputs/diag_pragma.h +++ b/test/Modules/Inputs/diag_pragma.h @@ -1,3 +1,13 @@ #define DIAG_PRAGMA_MACRO 1 #pragma clang diagnostic ignored "-Wparentheses" + +#ifdef __cplusplus +template<typename T> const char *f(T t) { + return "foo" + t; +} +#pragma clang diagnostic ignored "-Wstring-plus-int" +template<typename T> const char *g(T t) { + return "foo" + t; +} +#endif diff --git a/test/Modules/Inputs/gnumode-non-benign/module.h b/test/Modules/Inputs/gnumode-non-benign/module.h new file mode 100644 index 000000000000..efde0ad70c55 --- /dev/null +++ b/test/Modules/Inputs/gnumode-non-benign/module.h @@ -0,0 +1,5 @@ +// Check for GNUMode = 1 by looking for the "linux" define which only exists +// for GNUMode = 1. +#ifdef linux + #error "Submodule has GNUMode=1" +#endif diff --git a/test/Modules/Inputs/gnumode-non-benign/module.modulemap b/test/Modules/Inputs/gnumode-non-benign/module.modulemap new file mode 100644 index 000000000000..702ef596eb06 --- /dev/null +++ b/test/Modules/Inputs/gnumode-non-benign/module.modulemap @@ -0,0 +1 @@ +module "module.h" { header "module.h"} diff --git a/test/Modules/Inputs/hidden-names/hidden.h b/test/Modules/Inputs/hidden-names/hidden.h new file mode 100644 index 000000000000..e5c2f551c52d --- /dev/null +++ b/test/Modules/Inputs/hidden-names/hidden.h @@ -0,0 +1,3 @@ +namespace NS { + struct X {}; +} diff --git a/test/Modules/Inputs/hidden-names/module.modulemap b/test/Modules/Inputs/hidden-names/module.modulemap new file mode 100644 index 000000000000..1471f589c666 --- /dev/null +++ b/test/Modules/Inputs/hidden-names/module.modulemap @@ -0,0 +1,4 @@ +module hidden { + header "visible.h" + explicit module sub { header "hidden.h" } +} diff --git a/test/Modules/Inputs/hidden-names/visible.h b/test/Modules/Inputs/hidden-names/visible.h new file mode 100644 index 000000000000..3dfc9c715cda --- /dev/null +++ b/test/Modules/Inputs/hidden-names/visible.h @@ -0,0 +1,2 @@ +// hidden-names/visible.h +namespace NS {} diff --git a/test/Modules/Inputs/implicit-built-Werror-using-W/convert.h b/test/Modules/Inputs/implicit-built-Werror-using-W/convert.h new file mode 100644 index 000000000000..0ed02bc793bd --- /dev/null +++ b/test/Modules/Inputs/implicit-built-Werror-using-W/convert.h @@ -0,0 +1,8 @@ +#ifdef USE_PRAGMA +#pragma clang diagnostic push +#pragma clang diagnostic warning "-Wshorten-64-to-32" +#endif +template <class T> int convert(T V) { return V; } +#ifdef USE_PRAGMA +#pragma clang diagnostic pop +#endif diff --git a/test/Modules/Inputs/implicit-built-Werror-using-W/module.modulemap b/test/Modules/Inputs/implicit-built-Werror-using-W/module.modulemap new file mode 100644 index 000000000000..825eb86038ed --- /dev/null +++ b/test/Modules/Inputs/implicit-built-Werror-using-W/module.modulemap @@ -0,0 +1,3 @@ +module convert { + header "convert.h" +} diff --git a/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch b/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch new file mode 100644 index 000000000000..73a9816a3abd --- /dev/null +++ b/test/Modules/Inputs/invalid-module-id/NC-Prefix.pch @@ -0,0 +1,3 @@ +#ifdef __OBJC__ + #import <NC/NULog.h> +#endif diff --git a/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h b/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h new file mode 100644 index 000000000000..3866c8882821 --- /dev/null +++ b/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NC.h @@ -0,0 +1 @@ +#import <NC/NUGeometry.h> diff --git a/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h b/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h new file mode 100644 index 000000000000..1e7614c0c381 --- /dev/null +++ b/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NU-Visibility.h @@ -0,0 +1 @@ +// NU-Visibility.h diff --git a/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h b/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h new file mode 100644 index 000000000000..8923e042db6c --- /dev/null +++ b/test/Modules/Inputs/invalid-module-id/NC.framework/Headers/NUGeometry.h @@ -0,0 +1 @@ +#import <NC/NU-Visibility.h> diff --git a/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.modulemap b/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.modulemap new file mode 100644 index 000000000000..475b41473360 --- /dev/null +++ b/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/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.private.modulemap b/test/Modules/Inputs/invalid-module-id/NC.framework/Modules/module.private.modulemap new file mode 100644 index 000000000000..80488bd5d3d1 --- /dev/null +++ b/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/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h b/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h new file mode 100644 index 000000000000..7bf8defa8ccb --- /dev/null +++ b/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NUAssert.h @@ -0,0 +1 @@ +#import <NC/NULog.h> diff --git a/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h b/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h new file mode 100644 index 000000000000..8923e042db6c --- /dev/null +++ b/test/Modules/Inputs/invalid-module-id/NC.framework/PrivateHeaders/NULog.h @@ -0,0 +1 @@ +#import <NC/NU-Visibility.h> diff --git a/test/Modules/Inputs/merge-function-defs/a.h b/test/Modules/Inputs/merge-function-defs/a.h new file mode 100644 index 000000000000..7fc0e52c4104 --- /dev/null +++ b/test/Modules/Inputs/merge-function-defs/a.h @@ -0,0 +1,4 @@ +struct X { + virtual void f(); +}; +inline void X::f() {} diff --git a/test/Modules/Inputs/merge-function-defs/b.h b/test/Modules/Inputs/merge-function-defs/b.h new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test/Modules/Inputs/merge-function-defs/b.h diff --git a/test/Modules/Inputs/merge-function-defs/map b/test/Modules/Inputs/merge-function-defs/map new file mode 100644 index 000000000000..f84c7ddfd5ad --- /dev/null +++ b/test/Modules/Inputs/merge-function-defs/map @@ -0,0 +1,4 @@ +module m { + module a { header "a.h" } + module b { header "b.h" } +} diff --git a/test/Modules/Inputs/merge-name-for-linkage/b.h b/test/Modules/Inputs/merge-name-for-linkage/b.h index 82f2fdd83e31..5593e4117139 100644 --- a/test/Modules/Inputs/merge-name-for-linkage/b.h +++ b/test/Modules/Inputs/merge-name-for-linkage/b.h @@ -1 +1,5 @@ typedef union {} pthread_mutex_t; + +// Define then merge with another definition. +typedef struct {} merged_after_definition; +#include "c1.h" diff --git a/test/Modules/Inputs/merge-name-for-linkage/c1.h b/test/Modules/Inputs/merge-name-for-linkage/c1.h new file mode 100644 index 000000000000..b3fd8aced6ea --- /dev/null +++ b/test/Modules/Inputs/merge-name-for-linkage/c1.h @@ -0,0 +1 @@ +// c1 diff --git a/test/Modules/Inputs/merge-name-for-linkage/c2.h b/test/Modules/Inputs/merge-name-for-linkage/c2.h new file mode 100644 index 000000000000..3ac835629915 --- /dev/null +++ b/test/Modules/Inputs/merge-name-for-linkage/c2.h @@ -0,0 +1,2 @@ +// c2.h +typedef struct {} merged_after_definition; diff --git a/test/Modules/Inputs/merge-name-for-linkage/module.modulemap b/test/Modules/Inputs/merge-name-for-linkage/module.modulemap index 61578a1865aa..216add76be2a 100644 --- a/test/Modules/Inputs/merge-name-for-linkage/module.modulemap +++ b/test/Modules/Inputs/merge-name-for-linkage/module.modulemap @@ -1,2 +1,3 @@ module a { header "a.h" export * } module b { header "b.h" export * } +module c { module c1 { header "c1.h" export * } module c2 { header "c2.h" export * } } diff --git a/test/Modules/Inputs/merge-using-decls/b.h b/test/Modules/Inputs/merge-using-decls/b.h index 359555570a43..5d112ffbfe96 100644 --- a/test/Modules/Inputs/merge-using-decls/b.h +++ b/test/Modules/Inputs/merge-using-decls/b.h @@ -29,11 +29,13 @@ template<typename T> struct D : X, T { using typename X::t; }; +#if __cplusplus <= 199711L // C++11 does not allow access declarations template<typename T> struct E : X, T { // Mismatch in using/access-declaration-ness. T::value; X::v; }; +#endif template<typename T> struct F : X, T { // Mismatch in nested-name-specifier. @@ -46,5 +48,9 @@ template<typename T> struct F : X, T { // Force instantiation. typedef C<YB>::type I; typedef D<YBRev>::t I; + +#if __cplusplus <= 199711L // C++11 does not allow access declarations typedef E<YB>::type I; +#endif + typedef F<YB>::type I; diff --git a/test/Modules/Inputs/module.map b/test/Modules/Inputs/module.map index 2beb942861a4..b95eec351e86 100644 --- a/test/Modules/Inputs/module.map +++ b/test/Modules/Inputs/module.map @@ -265,6 +265,11 @@ module diag_pragma { header "diag_pragma.h" } +module pragma_pack { + module set { header "pragma_pack_set.h" } + module empty { header "empty.h" } +} + module dummy { header "dummy.h" } diff --git a/test/Modules/Inputs/outofdate-rebuild/AppKit.h b/test/Modules/Inputs/outofdate-rebuild/AppKit.h new file mode 100644 index 000000000000..e357918fd45c --- /dev/null +++ b/test/Modules/Inputs/outofdate-rebuild/AppKit.h @@ -0,0 +1,3 @@ +// AppKit +#import "CoreVideo.h" // CoreVideo +struct B { int i; }; diff --git a/test/Modules/Inputs/outofdate-rebuild/Cocoa.h b/test/Modules/Inputs/outofdate-rebuild/Cocoa.h new file mode 100644 index 000000000000..d6311405f4e1 --- /dev/null +++ b/test/Modules/Inputs/outofdate-rebuild/Cocoa.h @@ -0,0 +1,5 @@ +// Cocoa +#import "Foundation.h" +#import "AppKit.h" + +struct A { int i; }; diff --git a/test/Modules/Inputs/outofdate-rebuild/CoreText.h b/test/Modules/Inputs/outofdate-rebuild/CoreText.h new file mode 100644 index 000000000000..7ff0e23af1ba --- /dev/null +++ b/test/Modules/Inputs/outofdate-rebuild/CoreText.h @@ -0,0 +1 @@ +struct C { int i; }; diff --git a/test/Modules/Inputs/outofdate-rebuild/CoreVideo.h b/test/Modules/Inputs/outofdate-rebuild/CoreVideo.h new file mode 100644 index 000000000000..bd249dcbb74c --- /dev/null +++ b/test/Modules/Inputs/outofdate-rebuild/CoreVideo.h @@ -0,0 +1,3 @@ +// CoreVideo +#import "Foundation.h" // Foundation +struct E { int i; }; diff --git a/test/Modules/Inputs/outofdate-rebuild/Foundation.h b/test/Modules/Inputs/outofdate-rebuild/Foundation.h new file mode 100644 index 000000000000..b2d053ad057a --- /dev/null +++ b/test/Modules/Inputs/outofdate-rebuild/Foundation.h @@ -0,0 +1,3 @@ +// Foundation +#import "CoreText.h" +struct D { int i; }; diff --git a/test/Modules/Inputs/outofdate-rebuild/module.modulemap b/test/Modules/Inputs/outofdate-rebuild/module.modulemap new file mode 100644 index 000000000000..71c99e81966e --- /dev/null +++ b/test/Modules/Inputs/outofdate-rebuild/module.modulemap @@ -0,0 +1,19 @@ +module Cocoa { + header "Cocoa.h" +} + +module AppKit { + header "AppKit.h" +} + +module CoreText { + header "CoreText.h" +} + +module Foundation { + header "Foundation.h" +} + +module CoreVideo { + header "CoreVideo.h" +} diff --git a/test/Modules/Inputs/overloadable-attrs/a.h b/test/Modules/Inputs/overloadable-attrs/a.h new file mode 100644 index 000000000000..1af769dad315 --- /dev/null +++ b/test/Modules/Inputs/overloadable-attrs/a.h @@ -0,0 +1,28 @@ +namespace enable_if_attrs { +constexpr int fn1() __attribute__((enable_if(0, ""))) { return 0; } +constexpr int fn1() { return 1; } + +constexpr int fn2() { return 1; } +constexpr int fn2() __attribute__((enable_if(0, ""))) { return 0; } + +constexpr int fn3(int i) __attribute__((enable_if(!i, ""))) { return 0; } +constexpr int fn3(int i) __attribute__((enable_if(i, ""))) { return 1; } + +constexpr int fn4(int i) { return 0; } +constexpr int fn4(int i) __attribute__((enable_if(i, ""))) { return 1; } + +constexpr int fn5(int i) __attribute__((enable_if(i, ""))) { return 1; } +constexpr int fn5(int i) { return 0; } +} + +namespace pass_object_size_attrs { +constexpr int fn1(void *const a __attribute__((pass_object_size(0)))) { + return 1; +} +constexpr int fn1(void *const a) { return 0; } + +constexpr int fn2(void *const a) { return 0; } +constexpr int fn2(void *const a __attribute__((pass_object_size(0)))) { + return 1; +} +} diff --git a/test/Modules/Inputs/overloadable-attrs/module.modulemap b/test/Modules/Inputs/overloadable-attrs/module.modulemap new file mode 100644 index 000000000000..514d745d1465 --- /dev/null +++ b/test/Modules/Inputs/overloadable-attrs/module.modulemap @@ -0,0 +1,3 @@ +module a { + header "a.h" +} diff --git a/test/Modules/Inputs/pragma_pack_set.h b/test/Modules/Inputs/pragma_pack_set.h new file mode 100644 index 000000000000..b123c116ea1c --- /dev/null +++ b/test/Modules/Inputs/pragma_pack_set.h @@ -0,0 +1,3 @@ + +#pragma pack (1) + diff --git a/test/Modules/Inputs/system-out-of-date/X.h b/test/Modules/Inputs/system-out-of-date/X.h new file mode 100644 index 000000000000..f26ce7e27d09 --- /dev/null +++ b/test/Modules/Inputs/system-out-of-date/X.h @@ -0,0 +1,2 @@ +// X.h +#import <Y.h> diff --git a/test/Modules/Inputs/system-out-of-date/Y.h b/test/Modules/Inputs/system-out-of-date/Y.h new file mode 100644 index 000000000000..90fe1bcc5851 --- /dev/null +++ b/test/Modules/Inputs/system-out-of-date/Y.h @@ -0,0 +1 @@ +//empty diff --git a/test/Modules/Inputs/system-out-of-date/Z.h b/test/Modules/Inputs/system-out-of-date/Z.h new file mode 100644 index 000000000000..5db801a509de --- /dev/null +++ b/test/Modules/Inputs/system-out-of-date/Z.h @@ -0,0 +1,2 @@ +// Z.h +#import <Y.h> diff --git a/test/Modules/Inputs/system-out-of-date/module.map b/test/Modules/Inputs/system-out-of-date/module.map new file mode 100644 index 000000000000..0c0f42a5d01c --- /dev/null +++ b/test/Modules/Inputs/system-out-of-date/module.map @@ -0,0 +1,12 @@ +module X [system] { + header "X.h" // imports Y + export * +} +module Y { + header "Y.h" + export * +} +module Z { + header "Z.h" // imports Y + export * +} diff --git a/test/Modules/Inputs/warning-mismatch/Mismatch.h b/test/Modules/Inputs/warning-mismatch/Mismatch.h new file mode 100644 index 000000000000..a07b0ee31eaf --- /dev/null +++ b/test/Modules/Inputs/warning-mismatch/Mismatch.h @@ -0,0 +1 @@ +struct Mismatch { int i; }; diff --git a/test/Modules/Inputs/warning-mismatch/System.h b/test/Modules/Inputs/warning-mismatch/System.h new file mode 100644 index 000000000000..8e69e704c753 --- /dev/null +++ b/test/Modules/Inputs/warning-mismatch/System.h @@ -0,0 +1,2 @@ +#import "Mismatch.h" +struct System { int i; }; diff --git a/test/Modules/Inputs/warning-mismatch/module.modulemap b/test/Modules/Inputs/warning-mismatch/module.modulemap new file mode 100644 index 000000000000..c22cde459787 --- /dev/null +++ b/test/Modules/Inputs/warning-mismatch/module.modulemap @@ -0,0 +1,7 @@ +module System [system] { + header "System.h" +} + +module Mismatch { + header "Mismatch.h" +} |