And there you have it. Purists claim C or C++ can't do X because it's UBH in the standard. Pragmatists know that C and (especially) C++ aren't languages on their own, while "gcc" and "MSVC++" are complete (and very similar) languages.
But extensions like typeof are different from UB. They have documented behavior, it is just documented by GNU instead of the C standards committee.
(The C standard explicitly calls this out as a valid way of handling UB.)