fix diff-macro's bug