blob: c88461720ad4d9e6ee566deab35839767b71afa0 [file] [log] [blame]
Alp Toker15ab3732013-12-12 12:47:48 +00001// RUN: %clang_cc1 -verify -fsyntax-only -Wshadow -Wold-style-cast %s
2
3// Test that macro expansions from system headers don't trigger 'syntactic'
4// warnings that are not actionable.
5
6#ifdef IS_SYSHEADER
7#pragma clang system_header
8
9#define SANITY(a) (a / 0)
10
11#define SHADOW(a) __extension__({ int v = a; v; })
12
13#define OLD_STYLE_CAST(a) ((int) (a))
14
15#else
16
17#define IS_SYSHEADER
18#include __FILE__
19
20void testSanity() {
21 // Validate that the test is set up correctly
22 int i = SANITY(0); // expected-warning {{division by zero is undefined}}
23}
24
25void PR16093() {
26 // no -Wshadow in system macro expansion
27 int i = SHADOW(SHADOW(1));
28}
29
30void PR18147() {
31 // no -Wold_style_cast in system macro expansion
32 int i = OLD_STYLE_CAST(0);
33}
34
35#endif