diff options
Diffstat (limited to 'test/Modules/auto-module-import.m')
-rw-r--r-- | test/Modules/auto-module-import.m | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/test/Modules/auto-module-import.m b/test/Modules/auto-module-import.m index de2c355..9a34c92 100644 --- a/test/Modules/auto-module-import.m +++ b/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. @@ -83,6 +84,18 @@ int getNotInModule() { return not_in_module; } -void includeNotAtTopLevel() { // expected-note {{to match this '{'}} - #include <NoUmbrella/A.h> // expected-warning {{treating #include as an import}} expected-error {{expected '}'}} -} // expected-error {{extraneous closing brace}} +void includeNotAtTopLevel() { // expected-note {{function 'includeNotAtTopLevel' begins here}} + #include <NoUmbrella/A.h> // expected-warning {{treating #include as an import}} \ + 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 |