// RUN: %clang_cc1 %s -fsyntax-only -verify
#definea(x)enum{ x }a(n =#undef a
#definea5
a);_Static_assert(n ==5,"");#defineM(A)M(// expected-note {{expansion of macro 'M' requested here}}
#pragma pack(pop) // expected-error {{embedding a #pragma directive within macro arguments is not supported}})// header1.h
voidfail(constchar*);#defineMUNCH(...)\({int result =0; __VA_ARGS__;if(!result){fail(#__VA_ARGS__);}; result })staticinlineintf(intk){returnMUNCH(// expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{returning 'void'}} expected-note {{expansion of macro 'MUNCH' requested here}}
if(k <3)
result =24;elseif(k >4)
result = k -4;}#include"macro_arg_directive.h"// expected-error {{embedding a #include directive within macro arguments is not supported}}intg(int k){returnf(k)+f(k-1));}