You might consider making the fixable block an argument to the macro:
def hi = FIXME("...") { println(...) }
Compare what the compiler does with elidable code: it elides to a "zero" value, not an empty tree.
https://github.com/scala/scala/blob/2.10.x/src/compiler/scala/tools/nsc/transform/UnCurry.scala#L515
You might also consider a macro annotation.