It should be noted that it is not the macro itself that is flawed, it is the function that formats the text. The macro should work fine for all the integers.
Providing the function for all the mentioned cases would be rather non-trivial since there is no mechanism in C we can use to make the compiler select the function with signature that matches best (as it is in C++). The only way this can be done is providing assertImplementationInt() that takes long long as an argument, but this still won't save us in the case of unsigned long longs.
Or we can provide a set of macros for each type... :-)