diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Modules/auto-module-import.m | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/clang/test/Modules/auto-module-import.m b/clang/test/Modules/auto-module-import.m index 76441fcfedc..9a34c92eab2 100644 --- a/clang/test/Modules/auto-module-import.m +++ b/clang/test/Modules/auto-module-import.m @@ -1,6 +1,7 @@ // RUN: rm -rf %t // RUN: %clang_cc1 -Wauto-import -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -F %S/Inputs %s -verify -DERRORS // RUN: %clang_cc1 -Wauto-import -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -F %S/Inputs %s -verify +// RUN: %clang_cc1 -Wauto-import -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -F %S/Inputs -xobjective-c++ %s -verify // // Test both with and without the declarations that refer to unimported // entities. For error recovery, those cases implicitly trigger an import. @@ -85,5 +86,16 @@ int getNotInModule() { void includeNotAtTopLevel() { // expected-note {{function 'includeNotAtTopLevel' begins here}} #include <NoUmbrella/A.h> // expected-warning {{treating #include as an import}} \ - expected-error {{import of module 'NoUmbrella.A' appears within function 'includeNotAtTopLevel'}} + expected-error {{redundant #include of module 'NoUmbrella.A' appears within function 'includeNotAtTopLevel'}} } + +#ifdef __cplusplus +namespace NS { // expected-note {{begins here}} +#include <NoUmbrella/A.h> // expected-warning {{treating #include as an import}} \ + expected-error {{redundant #include of module 'NoUmbrella.A' appears within namespace 'NS'}} +} +extern "C" { // expected-note {{begins here}} +#include <NoUmbrella/A.h> // expected-warning {{treating #include as an import}} \ + expected-error {{import of C++ module 'NoUmbrella.A' appears within extern "C"}} +} +#endif |