diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Modules/Inputs/no-module-map/a.h | 4 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/no-module-map/b.h | 5 | ||||
-rw-r--r-- | clang/test/Modules/no-module-map.cpp | 43 |
3 files changed, 52 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/no-module-map/a.h b/clang/test/Modules/Inputs/no-module-map/a.h new file mode 100644 index 00000000000..546714f4ca3 --- /dev/null +++ b/clang/test/Modules/Inputs/no-module-map/a.h @@ -0,0 +1,4 @@ +#ifndef A_H +#define A_H +void a(); +#endif diff --git a/clang/test/Modules/Inputs/no-module-map/b.h b/clang/test/Modules/Inputs/no-module-map/b.h new file mode 100644 index 00000000000..d3fbc8b3ad5 --- /dev/null +++ b/clang/test/Modules/Inputs/no-module-map/b.h @@ -0,0 +1,5 @@ +#ifndef B_H +#define B_H +#include "a.h" +void b(); +#endif diff --git a/clang/test/Modules/no-module-map.cpp b/clang/test/Modules/no-module-map.cpp new file mode 100644 index 00000000000..08a864bc84b --- /dev/null +++ b/clang/test/Modules/no-module-map.cpp @@ -0,0 +1,43 @@ +// RUN: %clang_cc1 -fmodules-ts -fmodule-name=ab -x c++-header %S/Inputs/no-module-map/a.h %S/Inputs/no-module-map/b.h -emit-header-module -o %t.pcm +// RUN: %clang_cc1 -fmodules-ts -fmodule-file=%t.pcm %s -I%S/Inputs/no-module-map -verify +// RUN: %clang_cc1 -fmodules-ts -fmodule-file=%t.pcm %s -I%S/Inputs/no-module-map -verify -DA +// RUN: %clang_cc1 -fmodules-ts -fmodule-file=%t.pcm %s -I%S/Inputs/no-module-map -verify -DB +// RUN: %clang_cc1 -fmodules-ts -fmodule-file=%t.pcm %s -I%S/Inputs/no-module-map -verify -DA -DB + +#ifdef B +// expected-no-diagnostics +#endif + +#ifdef A +#include "a.h" +#endif + +#ifdef B +#include "b.h" +#endif + +#if defined(A) || defined(B) +#ifndef A_H +#error A_H should be defined +#endif +#else +#ifdef A_H +#error A_H should not be defined +#endif +// expected-error@+3 {{must be imported from}} +// expected-note@* {{previous declaration}} +#endif +void use_a() { a(); } + +#if defined(B) +#ifndef B_H +#error B_H should be defined +#endif +#else +#ifdef B_H +#error B_H should not be defined +#endif +// expected-error@+3 {{must be imported from}} +// expected-note@* {{previous declaration}} +#endif +void use_b() { b(); } |