Consider the whole first line of cpp --version.

GCC's cpp presents all needed information before the first space (e.g. 'i686-apple-darwin11-llvm-gcc-4.2'), but it isn't necessarily so for Clang:

FreeBSD clang version 3.3 (trunk 178860) 20130405