diff options
author | Alp Toker <alp@nuanti.com> | 2013-12-12 12:47:48 +0000 |
---|---|---|
committer | Alp Toker <alp@nuanti.com> | 2013-12-12 12:47:48 +0000 |
commit | 15ab37321cbdb8c38e30cf8bd59bad52f4497580 (patch) | |
tree | 897707cf5b3afb4f68abeb222e30c3ef17892931 /clang/test/SemaCXX/warn-sysheader-macro.cpp | |
parent | cb5beb347a0c059b5b659799c904c9d6f6ad14f3 (diff) | |
download | bcm5719-llvm-15ab37321cbdb8c38e30cf8bd59bad52f4497580.tar.gz bcm5719-llvm-15ab37321cbdb8c38e30cf8bd59bad52f4497580.zip |
Suppress -Wshadow / -Wold-style-cast expanded from system header macros
Thanks to Jonathan Sauer for providing initial test cases.
Fixes PR16093 and PR18147.
llvm-svn: 197150
Diffstat (limited to 'clang/test/SemaCXX/warn-sysheader-macro.cpp')
-rw-r--r-- | clang/test/SemaCXX/warn-sysheader-macro.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/warn-sysheader-macro.cpp b/clang/test/SemaCXX/warn-sysheader-macro.cpp new file mode 100644 index 00000000000..c88461720ad --- /dev/null +++ b/clang/test/SemaCXX/warn-sysheader-macro.cpp @@ -0,0 +1,35 @@ +// RUN: %clang_cc1 -verify -fsyntax-only -Wshadow -Wold-style-cast %s + +// Test that macro expansions from system headers don't trigger 'syntactic' +// warnings that are not actionable. + +#ifdef IS_SYSHEADER +#pragma clang system_header + +#define SANITY(a) (a / 0) + +#define SHADOW(a) __extension__({ int v = a; v; }) + +#define OLD_STYLE_CAST(a) ((int) (a)) + +#else + +#define IS_SYSHEADER +#include __FILE__ + +void testSanity() { + // Validate that the test is set up correctly + int i = SANITY(0); // expected-warning {{division by zero is undefined}} +} + +void PR16093() { + // no -Wshadow in system macro expansion + int i = SHADOW(SHADOW(1)); +} + +void PR18147() { + // no -Wold_style_cast in system macro expansion + int i = OLD_STYLE_CAST(0); +} + +#endif |