#include <stdio.h>
#define MAGIC_MACRO(f) \
void f##_inner(void); \
void f(void) { \
printf("entry\n"); \
f##_inner(); \
printf("exit\n"); \
} \
void f##_inner()
MAGIC_MACRO(foo)
{
}
MAGIC_MACRO(bar)
{
}
int main(void) {
foo();
bar();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE1BR0lDX01BQ1JPKGYpIFwKCXZvaWQgZiMjX2lubmVyKHZvaWQpOyBcCgl2b2lkIGYodm9pZCkgeyBcCgkgICAgcHJpbnRmKCJlbnRyeVxuIik7IFwKCSAgICBmIyNfaW5uZXIoKTsgXAoJICAgIHByaW50ZigiZXhpdFxuIik7IFwKCX0gXAoJdm9pZCBmIyNfaW5uZXIoKQoKTUFHSUNfTUFDUk8oZm9vKQp7CglwcmludGYoImZvb1xuIik7Cn0KCk1BR0lDX01BQ1JPKGJhcikKewoJcHJpbnRmKCJiYXJcbiIpOwp9CgppbnQgbWFpbih2b2lkKSB7Cglmb28oKTsKCWJhcigpOwoJcmV0dXJuIDA7Cn0K