diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Modules/macro-ambiguity.cpp | 21 | ||||
-rw-r--r-- | clang/test/Modules/macro-reexport.cpp | 9 | ||||
-rw-r--r-- | clang/test/Modules/macros.c | 24 | ||||
-rw-r--r-- | clang/test/Modules/macros2.c | 17 |
4 files changed, 55 insertions, 16 deletions
diff --git a/clang/test/Modules/macro-ambiguity.cpp b/clang/test/Modules/macro-ambiguity.cpp index ea9e4f549f0..af43b35839a 100644 --- a/clang/test/Modules/macro-ambiguity.cpp +++ b/clang/test/Modules/macro-ambiguity.cpp @@ -57,6 +57,27 @@ // RUN: -fmodule-file=%t/c.pcm \ // RUN: -fmodule-file=%t/d.pcm \ // RUN: -Wambiguous-macro -verify macro-ambiguity.cpp +// +// RUN: %clang_cc1 -fmodules -x c++ -fmodules-cache-path=%t \ +// RUN: -v -fmodules-local-submodule-visibility \ +// RUN: -iquote Inputs/macro-ambiguity/a/quote \ +// RUN: -isystem Inputs/macro-ambiguity/a/system \ +// RUN: -iquote Inputs/macro-ambiguity/b/quote \ +// RUN: -isystem Inputs/macro-ambiguity/b/system \ +// RUN: -iquote Inputs/macro-ambiguity/c/quote \ +// RUN: -isystem Inputs/macro-ambiguity/c/system \ +// RUN: -iquote Inputs/macro-ambiguity/d/quote \ +// RUN: -isystem Inputs/macro-ambiguity/d/system \ +// RUN: -iquote Inputs/macro-ambiguity/e/quote \ +// RUN: -isystem Inputs/macro-ambiguity/e/system \ +// RUN: -fno-implicit-modules -fno-modules-implicit-maps \ +// RUN: -fmodule-map-file-home-is-cwd \ +// RUN: -fmodule-map-file=Inputs/macro-ambiguity/module.modulemap \ +// RUN: -fmodule-file=%t/a.pcm \ +// RUN: -fmodule-file=%t/b.pcm \ +// RUN: -fmodule-file=%t/c.pcm \ +// RUN: -fmodule-file=%t/d.pcm \ +// RUN: -Wambiguous-macro -verify macro-ambiguity.cpp // Include the textual headers first to maximize the ways in which things can // become ambiguous. diff --git a/clang/test/Modules/macro-reexport.cpp b/clang/test/Modules/macro-reexport.cpp index 1df49b948d3..2be6f1532cb 100644 --- a/clang/test/Modules/macro-reexport.cpp +++ b/clang/test/Modules/macro-reexport.cpp @@ -7,6 +7,15 @@ // RUN: %clang_cc1 -fsyntax-only -DD2 -I%S/Inputs/macro-reexport -fmodules %s -fmodules-cache-path=%t -verify // RUN: %clang_cc1 -fsyntax-only -DF1 -I%S/Inputs/macro-reexport %s -fmodules-cache-path=%t -verify // RUN: %clang_cc1 -fsyntax-only -DF1 -I%S/Inputs/macro-reexport -fmodules %s -fmodules-cache-path=%t -verify +// +// RUN: %clang_cc1 -fmodules-local-submodule-visibility -fsyntax-only -DC1 -I%S/Inputs/macro-reexport %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fmodules-local-submodule-visibility -fsyntax-only -DC1 -I%S/Inputs/macro-reexport -fmodules %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fmodules-local-submodule-visibility -fsyntax-only -DD1 -I%S/Inputs/macro-reexport %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fmodules-local-submodule-visibility -fsyntax-only -DD1 -I%S/Inputs/macro-reexport -fmodules %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fmodules-local-submodule-visibility -fsyntax-only -DD2 -I%S/Inputs/macro-reexport %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fmodules-local-submodule-visibility -fsyntax-only -DD2 -I%S/Inputs/macro-reexport -fmodules %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fmodules-local-submodule-visibility -fsyntax-only -DF1 -I%S/Inputs/macro-reexport %s -fmodules-cache-path=%t -verify +// RUN: %clang_cc1 -fmodules-local-submodule-visibility -fsyntax-only -DF1 -I%S/Inputs/macro-reexport -fmodules %s -fmodules-cache-path=%t -verify #if defined(F1) #include "f1.h" diff --git a/clang/test/Modules/macros.c b/clang/test/Modules/macros.c index e367fb685b9..076166966b7 100644 --- a/clang/test/Modules/macros.c +++ b/clang/test/Modules/macros.c @@ -1,9 +1,6 @@ // RUN: rm -rf %t -// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=macros_top %S/Inputs/module.map -// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=macros_left %S/Inputs/module.map -// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=macros_right %S/Inputs/module.map -// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=macros %S/Inputs/module.map // RUN: %clang_cc1 -fmodules -x objective-c -verify -fmodules-cache-path=%t -I %S/Inputs %s +// RUN: %clang_cc1 -fmodules -DLOCAL_VISIBILITY -fmodules-local-submodule-visibility -x objective-c -verify -fmodules-cache-path=%t -I %S/Inputs %s // RUN: not %clang_cc1 -E -fmodules -x objective-c -fmodules-cache-path=%t -I %S/Inputs %s | FileCheck -check-prefix CHECK-PREPROCESSED %s // FIXME: When we have a syntax for modules in C, use that. // These notes come from headers in modules, and are bogus. @@ -143,11 +140,20 @@ TOP_DEF_RIGHT_UNDEF *TDRUf() { return TDRUp; } int TOP_DEF_RIGHT_UNDEF; // ok, no longer defined -// FIXME: When macros_right.undef is built, macros_top is visible because -// the state from building macros_right leaks through, so macros_right.undef -// undefines macros_top's macro. -#ifdef TOP_RIGHT_UNDEF -# error TOP_RIGHT_UNDEF should not be defined +#ifdef LOCAL_VISIBILITY +// TOP_RIGHT_UNDEF should not be undefined, because macros_right.undef does +// not undefine macros_right's macro. +# ifndef TOP_RIGHT_UNDEF +# error TOP_RIGHT_UNDEF should still be defined +# endif +#else +// When macros_right.undef is built and local submodule visibility is not +// enabled, macros_top is visible because the state from building +// macros_right leaks through, so macros_right.undef undefines macros_top's +// macro. +# ifdef TOP_RIGHT_UNDEF +# error TOP_RIGHT_UNDEF should not be defined +# endif #endif @import macros_other; diff --git a/clang/test/Modules/macros2.c b/clang/test/Modules/macros2.c index c4c8059011c..addb9b495cf 100644 --- a/clang/test/Modules/macros2.c +++ b/clang/test/Modules/macros2.c @@ -1,9 +1,6 @@ // RUN: rm -rf %t -// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=macros_top %S/Inputs/module.map -// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=macros_left %S/Inputs/module.map -// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=macros_right %S/Inputs/module.map -// RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodules-cache-path=%t -fmodule-name=macros %S/Inputs/module.map // RUN: %clang_cc1 -fmodules -x objective-c -verify -fmodules-cache-path=%t -I %S/Inputs %s +// RUN: %clang_cc1 -fmodules -fmodules-local-submodule-visibility -x objective-c -verify -fmodules-cache-path=%t -I %S/Inputs %s -DLOCAL_VISIBILITY // This test checks some of the same things as macros.c, but imports modules in // a different order. @@ -49,9 +46,15 @@ void test() { @import macros_right.undef; -// FIXME: See macros.c. -#ifdef TOP_RIGHT_UNDEF -# error TOP_RIGHT_UNDEF should not be defined +// See macros.c. +#ifdef LOCAL_VISIBILITY +# ifndef TOP_RIGHT_UNDEF +# error TOP_RIGHT_UNDEF should still be defined +# endif +#else +# ifdef TOP_RIGHT_UNDEF +# error TOP_RIGHT_UNDEF should not be defined +# endif #endif #ifndef TOP_OTHER_UNDEF1 |