use combination macro and compiler macro