Better compiler detection code