Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / Preprocessor / macro_arg_directive.c
blob929a03d70d025d7eca7f6b3cb01101adddeb8747
1 // RUN: %clang_cc1 %s -fsyntax-only -verify
3 #define a(x) enum { x }
4 a(n =
5 #undef a
6 #define a 5
7 a);
8 _Static_assert(n == 5, "");
10 #define M(A)
11 M( // expected-note {{expansion of macro 'M' requested here}}
12 #pragma pack(pop) // expected-error {{embedding a #pragma directive within macro arguments is not supported}}
15 // header1.h
16 void fail(const char *);
17 #define MUNCH(...) \
18 ({ int result = 0; __VA_ARGS__; if (!result) { fail(#__VA_ARGS__); }; result })
20 static inline int f(int k) {
21 return MUNCH( // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{returning 'void'}} expected-note {{expansion of macro 'MUNCH' requested here}}
22 if (k < 3)
23 result = 24;
24 else if (k > 4)
25 result = k - 4;
28 #include "macro_arg_directive.h" // expected-error {{embedding a #include directive within macro arguments is not supported}}
30 int g(int k) {
31 return f(k) + f(k-1));