diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-07-21 04:10:40 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-07-21 04:10:40 +0000 |
| commit | 57721ac5916c52a13d518bdb24aa479417c5beb3 (patch) | |
| tree | 9027b6aef220efc69351d8128ce073e0758b602c /clang/test/Modules | |
| parent | ae1ec299df110b938168150158f6f618e5c86491 (diff) | |
| download | bcm5719-llvm-57721ac5916c52a13d518bdb24aa479417c5beb3.tar.gz bcm5719-llvm-57721ac5916c52a13d518bdb24aa479417c5beb3.zip | |
[modules] Fix some of the confusion when computing the override set for a macro
introduced by finalization. This is still not entirely correct; more fixes to
follow.
llvm-svn: 213498
Diffstat (limited to 'clang/test/Modules')
| -rw-r--r-- | clang/test/Modules/Inputs/macro-hiding/e1.h | 1 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/macro-hiding/e2.h | 2 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/macro-hiding/module.modulemap | 4 | ||||
| -rw-r--r-- | clang/test/Modules/macro-hiding.cpp | 12 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/a1.h | 1 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/a2.h | 0 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/b1.h | 0 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/b2.h | 2 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/c1.h | 2 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/d1.h | 2 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/d2.h | 1 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/macro-reexport.cpp | 13 | ||||
| -rw-r--r-- | clang/test/Modules/macro-reexport/module.modulemap | 15 |
13 files changed, 54 insertions, 1 deletions
diff --git a/clang/test/Modules/Inputs/macro-hiding/e1.h b/clang/test/Modules/Inputs/macro-hiding/e1.h new file mode 100644 index 00000000000..bd01708c5e3 --- /dev/null +++ b/clang/test/Modules/Inputs/macro-hiding/e1.h @@ -0,0 +1 @@ +#include "a1.h" diff --git a/clang/test/Modules/Inputs/macro-hiding/e2.h b/clang/test/Modules/Inputs/macro-hiding/e2.h new file mode 100644 index 00000000000..f3a49c70aea --- /dev/null +++ b/clang/test/Modules/Inputs/macro-hiding/e2.h @@ -0,0 +1,2 @@ +#include "a1.h" +inline void e1() { assert(true); } diff --git a/clang/test/Modules/Inputs/macro-hiding/module.modulemap b/clang/test/Modules/Inputs/macro-hiding/module.modulemap index 14ca9af86ab..20632d35aeb 100644 --- a/clang/test/Modules/Inputs/macro-hiding/module.modulemap +++ b/clang/test/Modules/Inputs/macro-hiding/module.modulemap @@ -12,3 +12,7 @@ module c { module d { module d1 { header "d1.h" export * } } +module e { + module e1 { header "e1.h" export * } + module e2 { header "e2.h" export * } +} diff --git a/clang/test/Modules/macro-hiding.cpp b/clang/test/Modules/macro-hiding.cpp index d0dadf319f3..b166f4b194c 100644 --- a/clang/test/Modules/macro-hiding.cpp +++ b/clang/test/Modules/macro-hiding.cpp @@ -62,6 +62,8 @@ // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -I%S/Inputs/macro-hiding %s -DA1 -DA2 -DB1 -DB2 -DD1 // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -I%S/Inputs/macro-hiding %s -DA1 -DA2 -DB1 -DB2 -DC1 // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -I%S/Inputs/macro-hiding %s -DA1 -DA2 -DB1 -DB2 -DC1 -DD1 +// +// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -I%S/Inputs/macro-hiding %s -DE1 #ifdef A1 #include "a1.h" @@ -87,7 +89,15 @@ #include "d1.h" #endif -#if defined(A1) || defined(B2) || defined(C1) || defined(D1) +#ifdef E1 +#include "e1.h" +#endif + +#ifdef E2 +#include "e2.h" +#endif + +#if defined(A1) || defined(B2) || defined(C1) || defined(D1) || defined(E1) || defined(E2) void h() { assert(true); } #else void assert() {} diff --git a/clang/test/Modules/macro-reexport/a1.h b/clang/test/Modules/macro-reexport/a1.h new file mode 100644 index 00000000000..39933315f7e --- /dev/null +++ b/clang/test/Modules/macro-reexport/a1.h @@ -0,0 +1 @@ +#define assert(x) a diff --git a/clang/test/Modules/macro-reexport/a2.h b/clang/test/Modules/macro-reexport/a2.h new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/clang/test/Modules/macro-reexport/a2.h diff --git a/clang/test/Modules/macro-reexport/b1.h b/clang/test/Modules/macro-reexport/b1.h new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/clang/test/Modules/macro-reexport/b1.h diff --git a/clang/test/Modules/macro-reexport/b2.h b/clang/test/Modules/macro-reexport/b2.h new file mode 100644 index 00000000000..26150458d35 --- /dev/null +++ b/clang/test/Modules/macro-reexport/b2.h @@ -0,0 +1,2 @@ +#include "a2.h" +#define assert(x) b diff --git a/clang/test/Modules/macro-reexport/c1.h b/clang/test/Modules/macro-reexport/c1.h new file mode 100644 index 00000000000..d6a20e7419c --- /dev/null +++ b/clang/test/Modules/macro-reexport/c1.h @@ -0,0 +1,2 @@ +#include "b1.h" +#define assert(x) c diff --git a/clang/test/Modules/macro-reexport/d1.h b/clang/test/Modules/macro-reexport/d1.h new file mode 100644 index 00000000000..fbd68d5de58 --- /dev/null +++ b/clang/test/Modules/macro-reexport/d1.h @@ -0,0 +1,2 @@ +#include "c1.h" +#define assert(x) d diff --git a/clang/test/Modules/macro-reexport/d2.h b/clang/test/Modules/macro-reexport/d2.h new file mode 100644 index 00000000000..688f2d98a13 --- /dev/null +++ b/clang/test/Modules/macro-reexport/d2.h @@ -0,0 +1 @@ +#include "b2.h" diff --git a/clang/test/Modules/macro-reexport/macro-reexport.cpp b/clang/test/Modules/macro-reexport/macro-reexport.cpp new file mode 100644 index 00000000000..47b15c2740b --- /dev/null +++ b/clang/test/Modules/macro-reexport/macro-reexport.cpp @@ -0,0 +1,13 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fsyntax-only -DD2 -I. %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fsyntax-only -DD2 -I. -fmodules %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fsyntax-only -DC1 -I. %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fsyntax-only -DC1 -I. -fmodules %s -fmodules-cache-path=%t -verify + +#ifdef D2 +#include "d2.h" +void f() { return assert(true); } // expected-error {{undeclared identifier 'b'}} +#else +#include "c1.h" +void f() { return assert(true); } // expected-error {{undeclared identifier 'c'}} +#endif diff --git a/clang/test/Modules/macro-reexport/module.modulemap b/clang/test/Modules/macro-reexport/module.modulemap new file mode 100644 index 00000000000..21585b692e3 --- /dev/null +++ b/clang/test/Modules/macro-reexport/module.modulemap @@ -0,0 +1,15 @@ +module b { + module b2 { header "b2.h" export * } + module b1 { header "b1.h" export * } +} +module a { + module a1 { header "a1.h" export * } + module a2 { header "a2.h" export * } +} +module c { + module c1 { header "c1.h" export * } +} +module d { + module d1 { header "d1.h" export * } + module d2 { header "d2.h" export * } +} |

