macro expansion is not correct
Author: real-hongCreated Jan 22, 2025Updated Apr 22, 2025
chibicc -E macro.cwill get
BAR() 1however
gcc -E macro.cwill get
BAR_I ()() 1 1 1// macro.c
#define EMPTY()
#define DEFER(id) id EMPTY()
#define EXPAND(...) __VA_ARGS__
#define BAR_I() BAR
#define BAR() DEFER(BAR_I)()() 1
EXPAND(EXPAND(BAR()))Source: rui314/chibicc