This patch effectively does these things:
- Centralize the logic to figure out if a compiler flag is supported.
- Stop sanity checking whether the compiler works at all. While useful, that's not the decorator's responsibility.
- Invoke the compiler with xcrun on Darwin so we know where to find the sysroot.
On my machine, the clang invocation couldn't find libSystem and therefore the decorator would fail the sanity check and it would always try to run the ASan/UBSan/TSan tests even though I wasn't building compiler-rt.