diff options
-rw-r--r-- | clang/test/Modules/Inputs/anon-redecl/a.h | 2 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/anon-redecl/b.h | 2 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/anon-redecl/c1.h | 2 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/anon-redecl/c2.h | 2 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/anon-redecl/module.modulemap | 6 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/hidden-names/hidden.h | 3 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/hidden-names/module.modulemap | 4 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/hidden-names/visible.h | 2 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/merge-function-defs/a.h | 4 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/merge-function-defs/b.h | 0 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/merge-function-defs/map | 4 | ||||
-rw-r--r-- | clang/test/Modules/anon-redecl.cpp | 15 | ||||
-rw-r--r-- | clang/test/Modules/hidden-names.cpp | 13 | ||||
-rw-r--r-- | clang/test/Modules/merge-function-defs.cpp | 11 |
14 files changed, 70 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/anon-redecl/a.h b/clang/test/Modules/Inputs/anon-redecl/a.h new file mode 100644 index 00000000000..1b23e724160 --- /dev/null +++ b/clang/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/clang/test/Modules/Inputs/anon-redecl/b.h b/clang/test/Modules/Inputs/anon-redecl/b.h new file mode 100644 index 00000000000..23ea804a245 --- /dev/null +++ b/clang/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/clang/test/Modules/Inputs/anon-redecl/c1.h b/clang/test/Modules/Inputs/anon-redecl/c1.h new file mode 100644 index 00000000000..600af314ec3 --- /dev/null +++ b/clang/test/Modules/Inputs/anon-redecl/c1.h @@ -0,0 +1,2 @@ +#include "a.h" +#include "b.h" diff --git a/clang/test/Modules/Inputs/anon-redecl/c2.h b/clang/test/Modules/Inputs/anon-redecl/c2.h new file mode 100644 index 00000000000..2e99b27194c --- /dev/null +++ b/clang/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/clang/test/Modules/Inputs/anon-redecl/module.modulemap b/clang/test/Modules/Inputs/anon-redecl/module.modulemap new file mode 100644 index 00000000000..49678452e0c --- /dev/null +++ b/clang/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/clang/test/Modules/Inputs/hidden-names/hidden.h b/clang/test/Modules/Inputs/hidden-names/hidden.h new file mode 100644 index 00000000000..e5c2f551c52 --- /dev/null +++ b/clang/test/Modules/Inputs/hidden-names/hidden.h @@ -0,0 +1,3 @@ +namespace NS { + struct X {}; +} diff --git a/clang/test/Modules/Inputs/hidden-names/module.modulemap b/clang/test/Modules/Inputs/hidden-names/module.modulemap new file mode 100644 index 00000000000..1471f589c66 --- /dev/null +++ b/clang/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/clang/test/Modules/Inputs/hidden-names/visible.h b/clang/test/Modules/Inputs/hidden-names/visible.h new file mode 100644 index 00000000000..3dfc9c715cd --- /dev/null +++ b/clang/test/Modules/Inputs/hidden-names/visible.h @@ -0,0 +1,2 @@ +// hidden-names/visible.h +namespace NS {} diff --git a/clang/test/Modules/Inputs/merge-function-defs/a.h b/clang/test/Modules/Inputs/merge-function-defs/a.h new file mode 100644 index 00000000000..7fc0e52c410 --- /dev/null +++ b/clang/test/Modules/Inputs/merge-function-defs/a.h @@ -0,0 +1,4 @@ +struct X { + virtual void f(); +}; +inline void X::f() {} diff --git a/clang/test/Modules/Inputs/merge-function-defs/b.h b/clang/test/Modules/Inputs/merge-function-defs/b.h new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/clang/test/Modules/Inputs/merge-function-defs/b.h diff --git a/clang/test/Modules/Inputs/merge-function-defs/map b/clang/test/Modules/Inputs/merge-function-defs/map new file mode 100644 index 00000000000..f84c7ddfd5a --- /dev/null +++ b/clang/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/clang/test/Modules/anon-redecl.cpp b/clang/test/Modules/anon-redecl.cpp new file mode 100644 index 00000000000..c3c5c9e527e --- /dev/null +++ b/clang/test/Modules/anon-redecl.cpp @@ -0,0 +1,15 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fmodules-local-submodule-visibility \ +// RUN: -fmodule-map-file=%S/Inputs/anon-redecl/module.modulemap \ +// RUN: -I%S/Inputs/anon-redecl \ +// RUN: -verify -std=c++11 %s + +#include "a.h" +#include "b.h" +#include "c1.h" +#include "c2.h" + +// expected-no-diagnostics +int x = a({}); +int y = b({}); +int z = c({}); diff --git a/clang/test/Modules/hidden-names.cpp b/clang/test/Modules/hidden-names.cpp new file mode 100644 index 00000000000..ba945a1d3c8 --- /dev/null +++ b/clang/test/Modules/hidden-names.cpp @@ -0,0 +1,13 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -I %S/Inputs/hidden-names %s -verify +// expected-no-diagnostics + +#include "visible.h" + +using namespace NS; + +namespace { + struct X { void f(); }; +} + +void X::f() {} diff --git a/clang/test/Modules/merge-function-defs.cpp b/clang/test/Modules/merge-function-defs.cpp new file mode 100644 index 00000000000..2f08f523c3a --- /dev/null +++ b/clang/test/Modules/merge-function-defs.cpp @@ -0,0 +1,11 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -I%S/Inputs/merge-function-defs -fmodules -fmodule-map-file=%S/Inputs/merge-function-defs/map -fmodules-cache-path=%t %s -emit-llvm-only + +#include "b.h" + +struct X { + virtual void f(); +}; +inline void X::f() {} + +X x; |