diff options
Diffstat (limited to 'test/Modules/extern_c.cpp')
-rw-r--r-- | test/Modules/extern_c.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/test/Modules/extern_c.cpp b/test/Modules/extern_c.cpp index f505c11..c072b7e 100644 --- a/test/Modules/extern_c.cpp +++ b/test/Modules/extern_c.cpp @@ -9,6 +9,8 @@ // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -DCXX_HEADER -DEXTERN_CXX // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -DCXX_HEADER -DEXTERN_C -DEXTERN_CXX // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -DCXX_HEADER -DEXTERN_C -DNAMESPACE +// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -DCXX_HEADER -DEXTERN_C -DNO_EXTERN_C_ERROR -Wno-module-import-in-extern-c +// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -DCXX_HEADER -DEXTERN_C -DNAMESPACE -DNO_EXTERN_C_ERROR -Wno-module-import-in-extern-c // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs -x c %s // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs/elsewhere -I %S/Inputs %s -DEXTERN_C -DINDIRECT @@ -36,12 +38,12 @@ extern "C++" { #include HEADER -#if defined(EXTERN_C) && !defined(EXTERN_CXX) && defined(CXX_HEADER) -// expected-error@-3 {{import of C++ module 'cxx_library' appears within extern "C" language linkage specification}} -// expected-note@-17 {{extern "C" language linkage specification begins here}} -#elif defined(NAMESPACE) -// expected-error-re@-6 {{import of module '{{c_library.inner|cxx_library}}' appears within namespace 'M'}} -// expected-note@-24 {{namespace 'M' begins here}} +#if defined(NAMESPACE) +// expected-error-re@-3 {{import of module '{{c_library.inner|cxx_library}}' appears within namespace 'M'}} +// expected-note@-21 {{namespace 'M' begins here}} +#elif defined(EXTERN_C) && !defined(EXTERN_CXX) && defined(CXX_HEADER) && !defined(NO_EXTERN_C_ERROR) +// expected-error@-6 {{import of C++ module 'cxx_library' appears within extern "C" language linkage specification}} +// expected-note@-20 {{extern "C" language linkage specification begins here}} #endif #ifdef EXTERN_CXX @@ -68,7 +70,7 @@ namespace N { extern "C" { #endif int f; -#if !defined(CXX_HEADER) +#if !defined(CXX_HEADER) && !defined(NAMESPACE) // expected-error@-2 {{redefinition of 'f' as different kind of symbol}} // expected-note@c-header.h:1 {{previous}} #endif @@ -78,4 +80,6 @@ namespace N { } #endif +#if !defined(NAMESPACE) suppress_expected_no_diagnostics_error error_here; // expected-error {{}} +#endif |