It seems id is already defined by clang and newer GCCs.
This fixes the checks for clang.