diff options
Diffstat (limited to 'test/Modules/implicit-private-canonical.m')
-rw-r--r-- | test/Modules/implicit-private-canonical.m | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/Modules/implicit-private-canonical.m b/test/Modules/implicit-private-canonical.m new file mode 100644 index 0000000000000..96b6c4a3464db --- /dev/null +++ b/test/Modules/implicit-private-canonical.m @@ -0,0 +1,35 @@ +// RUN: rm -rf %t +// Build PCH using A, with adjacent private module APrivate, which winds up being implicitly referenced +// RUN: %clang_cc1 -verify -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -F %S/Inputs/implicit-private-canonical -emit-pch -o %t-A.pch %s -Wprivate-module -DNO_AT_IMPORT +// Use the PCH with no explicit way to resolve APrivate, still pick it up by automatic second-chance search for "A" with "Private" appended +// RUN: %clang_cc1 -verify -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -F %S/Inputs/implicit-private-canonical -include-pch %t-A.pch %s -fsyntax-only -Wprivate-module -DNO_AT_IMPORT + +// RUN: rm -rf %t +// RUN: %clang_cc1 -verify -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -F %S/Inputs/implicit-private-canonical -emit-pch -o %t-A.pch %s -Wprivate-module -DUSE_AT_IMPORT_PRIV +// RUN: %clang_cc1 -verify -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -F %S/Inputs/implicit-private-canonical -include-pch %t-A.pch %s -fsyntax-only -Wprivate-module -DUSE_AT_IMPORT_PRIV + +// RUN: rm -rf %t +// RUN: %clang_cc1 -verify -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -F %S/Inputs/implicit-private-canonical -emit-pch -o %t-A.pch %s -Wprivate-module -DUSE_AT_IMPORT_BOTH +// RUN: %clang_cc1 -verify -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -F %S/Inputs/implicit-private-canonical -include-pch %t-A.pch %s -fsyntax-only -Wprivate-module -DUSE_AT_IMPORT_BOTH + +// expected-no-diagnostics + +#ifndef HEADER +#define HEADER + +#ifdef NO_AT_IMPORT +#import "A/aprivate.h" +#endif + +#ifdef USE_AT_IMPORT_PRIV +@import A_Private; +#endif + +#ifdef USE_AT_IMPORT_BOTH +@import A; +@import A_Private; +#endif + +const int *y = &APRIVATE; + +#endif |