I don't think so. That is not one of the usual methods available for checking bits. How you do it is compiler dependent, it may or may not be in the latest C standard, but it was never addressed in the previous ones.
The semantics of your statement suggest an array of some type (byte, char, int ...) pointed to by I2C0
while (((I2C0->IF) & (1<<4)) == 0)
would be closer to the correct syntax and semantics, UNLESS your specific compiler provides a method for picking a specific bit out of a word, something like
I2C0->IF.4