Compile time define for checking threadsafe flag of functions

I have some code which does
 

Function DoStuff()

    Multithread data[] = FuncTS()

End
...

threadsafe static Function FuncTS()

    // do stuff
End

As FuncTS is a bit difficult to understand I would like to add some debugging output for easy testing (testing would be done without Multithread/threadsafe keywords). Unfortunately that debugging output requires non-threadsafe functions.

Is there a way to have two code paths in the function? One for threadsafe and one for non-threadsafe?

Something like

threadsafe static Function FuncTS()

#ifndef FUNCTION_IS_THREADSAFE

    // debug output

#endif

End

Another solution would be if threadsafe and non-threadsafe functions could be overloaded but I'm not sure that this would be a good thing.