diff options
Diffstat (limited to 'test/Modules/diag-flags.cpp')
-rw-r--r-- | test/Modules/diag-flags.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/Modules/diag-flags.cpp b/test/Modules/diag-flags.cpp new file mode 100644 index 000000000000..adbbd08ac8dc --- /dev/null +++ b/test/Modules/diag-flags.cpp @@ -0,0 +1,22 @@ +// RUN: rm -rf %t +// +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fmodules -fimplicit-module-maps -emit-module -fmodules-cache-path=%t -fmodule-name=diag_flags -x c++ %S/Inputs/module.map -fmodules-ts +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -fmodules-ts +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -fmodules-ts -DIMPLICIT_FLAG -Werror=padded +// +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fmodules -fimplicit-module-maps -emit-module -fmodule-name=diag_flags -x c++ %S/Inputs/module.map -fmodules-ts -o %t/explicit.pcm -Werror=string-plus-int -Wpadded +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -fmodules-ts -DEXPLICIT_FLAG -fmodule-file=%t/explicit.pcm +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -I %S/Inputs %s -fmodules-ts -DEXPLICIT_FLAG -fmodule-file=%t/explicit.pcm -Werror=padded + +import diag_flags; + +// Diagnostic flags from the module user make no difference to diagnostics +// emitted within the module when using an explicitly-loaded module. +#ifdef IMPLICIT_FLAG +// expected-error@diag_flags.h:14 {{padding struct}} +#elif defined(EXPLICIT_FLAG) +// expected-warning@diag_flags.h:14 {{padding struct}} +#else +// expected-no-diagnostics +#endif +unsigned n = sizeof(Padded); |