build: check for __clang__ before diagnostic push/pop