fix a macro expansion bug