diff options
Diffstat (limited to 'clang/test')
20 files changed, 131 insertions, 1 deletions
diff --git a/clang/test/Modules/Inputs/import-textual/M/A/A.h b/clang/test/Modules/Inputs/import-textual/M/A/A.h new file mode 100644 index 00000000000..ebe4979d7c1 --- /dev/null +++ b/clang/test/Modules/Inputs/import-textual/M/A/A.h @@ -0,0 +1,4 @@ + +#import "someheader.h" + +typedef myint aint; diff --git a/clang/test/Modules/Inputs/import-textual/M/B/B.h b/clang/test/Modules/Inputs/import-textual/M/B/B.h new file mode 100644 index 00000000000..ba85071c014 --- /dev/null +++ b/clang/test/Modules/Inputs/import-textual/M/B/B.h @@ -0,0 +1,4 @@ + +#import "someheader.h" + +typedef myint bint; diff --git a/clang/test/Modules/Inputs/import-textual/M/module.modulemap b/clang/test/Modules/Inputs/import-textual/M/module.modulemap new file mode 100644 index 00000000000..f80194876ca --- /dev/null +++ b/clang/test/Modules/Inputs/import-textual/M/module.modulemap @@ -0,0 +1,17 @@ + +module M { + + module A { + header "A/A.h" + textual header "someheader.h" + export * + } + + module B { + header "B/B.h" + textual header "someheader.h" + export * + } + + export * +} diff --git a/clang/test/Modules/Inputs/import-textual/M/someheader.h b/clang/test/Modules/Inputs/import-textual/M/someheader.h new file mode 100644 index 00000000000..16fae408724 --- /dev/null +++ b/clang/test/Modules/Inputs/import-textual/M/someheader.h @@ -0,0 +1,6 @@ +#ifndef C_GUARD +#define C_GUARD + +typedef int myint; + +#endif diff --git a/clang/test/Modules/Inputs/import-textual/M2/A/A.h b/clang/test/Modules/Inputs/import-textual/M2/A/A.h new file mode 100644 index 00000000000..ebe4979d7c1 --- /dev/null +++ b/clang/test/Modules/Inputs/import-textual/M2/A/A.h @@ -0,0 +1,4 @@ + +#import "someheader.h" + +typedef myint aint; diff --git a/clang/test/Modules/Inputs/import-textual/M2/B/B.h b/clang/test/Modules/Inputs/import-textual/M2/B/B.h new file mode 100644 index 00000000000..ba85071c014 --- /dev/null +++ b/clang/test/Modules/Inputs/import-textual/M2/B/B.h @@ -0,0 +1,4 @@ + +#import "someheader.h" + +typedef myint bint; diff --git a/clang/test/Modules/Inputs/import-textual/M2/module.modulemap b/clang/test/Modules/Inputs/import-textual/M2/module.modulemap new file mode 100644 index 00000000000..f80194876ca --- /dev/null +++ b/clang/test/Modules/Inputs/import-textual/M2/module.modulemap @@ -0,0 +1,17 @@ + +module M { + + module A { + header "A/A.h" + textual header "someheader.h" + export * + } + + module B { + header "B/B.h" + textual header "someheader.h" + export * + } + + export * +} diff --git a/clang/test/Modules/Inputs/import-textual/M2/someheader.h b/clang/test/Modules/Inputs/import-textual/M2/someheader.h new file mode 100644 index 00000000000..df2009a019b --- /dev/null +++ b/clang/test/Modules/Inputs/import-textual/M2/someheader.h @@ -0,0 +1 @@ +typedef int myint; diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/cstddef b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/cstddef new file mode 100644 index 00000000000..4898c05fdbb --- /dev/null +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/cstddef @@ -0,0 +1,9 @@ +#ifndef _LIBCPP_CSTDDEF +#define _LIBCPP_CSTDDEF + +#include <stddef.h> +#include <type_traits> + +typedef ptrdiff_t my_ptrdiff_t; + +#endif diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/math.h b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/math.h index f761b910f3e..9e2b6936125 100644 --- a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/math.h +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/math.h @@ -4,4 +4,6 @@ #include_next <math.h> template<typename T> T abs(T t) { return (t < 0) ? -t : t; } +#include <type_traits> + #endif diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/module.modulemap b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/module.modulemap index b06142a61a2..f57c11c4238 100644 --- a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/module.modulemap +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/module.modulemap @@ -6,5 +6,7 @@ module "libc++" { // FIXME: remove "textual" from stdint module below once the issue // between umbrella headers and builtins is resolved. module stdint { textual header "stdint.h" export * } + module type_traits { header "type_traits" export * } + module cstddef { header "cstddef" export * } module __config { header "__config" export * } } diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/stddef.h b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/stddef.h index bd42008e169..14167cfe1d7 100644 --- a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/stddef.h +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/stddef.h @@ -2,5 +2,6 @@ #define LIBCXX_STDDEF_H #include <__config> +#include_next <stddef.h> #endif diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/type_traits b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/type_traits new file mode 100644 index 00000000000..a91056e008a --- /dev/null +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/c++/v1/type_traits @@ -0,0 +1,6 @@ +#ifndef _LIBCPP_TYPE_TRAITS +#define _LIBCPP_TYPE_TRAITS + +#include <cstddef> + +#endif diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/module.modulemap b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/module.modulemap index 7244cb0987e..25b9468d291 100644 --- a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/module.modulemap +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/module.modulemap @@ -5,4 +5,12 @@ module libc [no_undeclared_includes] { module stdint { header "stdint.h" export * } module stdio { header "stdio.h" export * } module util { header "util.h" export * } + module POSIX { + module sys { + module types { + umbrella header "sys/_types/_types.h" + export * + } + } + } } diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/stddef.h b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/stddef.h index eca72412a65..b98249f0864 100644 --- a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/stddef.h +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/stddef.h @@ -1 +1,6 @@ -// stddef.h +#ifndef __STDDEF_H__ +#define __STDDEF_H__ + +#include "sys/_types/_ptrdiff_t.h" + +#endif diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/sys/_types/_ptrdiff_t.h b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/sys/_types/_ptrdiff_t.h new file mode 100644 index 00000000000..d14110e4644 --- /dev/null +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/sys/_types/_ptrdiff_t.h @@ -0,0 +1,4 @@ +#ifndef _PTRDIFF_T +#define _PTRDIFF_T +typedef int * ptrdiff_t; +#endif /* _PTRDIFF_T */ diff --git a/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/sys/_types/_types.h b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/sys/_types/_types.h new file mode 100644 index 00000000000..33d5e514433 --- /dev/null +++ b/clang/test/Modules/Inputs/libc-libcxx/sysroot/usr/include/sys/_types/_types.h @@ -0,0 +1,6 @@ +#ifndef _SYS_TYPES_UMBRELLA +#define _SYS_TYPES_UMBRELLA + +#include "_ptrdiff_t.h" + +#endif diff --git a/clang/test/Modules/builtin-import.mm b/clang/test/Modules/builtin-import.mm new file mode 100644 index 00000000000..2536ac51c42 --- /dev/null +++ b/clang/test/Modules/builtin-import.mm @@ -0,0 +1,12 @@ +// REQUIRES: system-darwin + +// RUN: rm -rf %t +// RUN: %clang -cc1 -fsyntax-only -nostdinc++ -isysroot %S/Inputs/libc-libcxx/sysroot -isystem %S/Inputs/libc-libcxx/sysroot/usr/include/c++/v1 -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -x objective-c++ -fmodules-local-submodule-visibility %s + +#include <stdio.h> +#include <stddef.h> +#include <cstddef> + +typedef ptrdiff_t try1_ptrdiff_t; +typedef my_ptrdiff_t try2_ptrdiff_t; + diff --git a/clang/test/Modules/import-textual-noguard.mm b/clang/test/Modules/import-textual-noguard.mm new file mode 100644 index 00000000000..dd124b6609d --- /dev/null +++ b/clang/test/Modules/import-textual-noguard.mm @@ -0,0 +1,8 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fsyntax-only -std=c++11 -fmodules -fimplicit-module-maps -I%S/Inputs/import-textual/M2 -fmodules-cache-path=%t -x objective-c++ -fmodules-local-submodule-visibility %s -verify + +#include "A/A.h" // expected-error {{could not build module 'M'}} +#include "B/B.h" + +typedef aint xxx; +typedef bint yyy; diff --git a/clang/test/Modules/import-textual.mm b/clang/test/Modules/import-textual.mm new file mode 100644 index 00000000000..6593239d7fd --- /dev/null +++ b/clang/test/Modules/import-textual.mm @@ -0,0 +1,10 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fsyntax-only -std=c++11 -fmodules -fimplicit-module-maps -I%S/Inputs/import-textual/M -fmodules-cache-path=%t -x objective-c++ -fmodules-local-submodule-visibility %s -verify + +// expected-no-diagnostics + +#include "A/A.h" +#include "B/B.h" + +typedef aint xxx; +typedef bint yyy; |

