Basic block sections is untested on other platforms and binary formats apart from x86,elf. This patch silently drops the flag if the platform and binary format is not compatible.
Thanks for the quick review @MaskRay, PTAL.
Sure, can you provide a reference/guidance for when err vs warn is appropriate for driver checks? Most of the code in this file uses err but there are some cases of warn being used.
What I really want to check for is the absence of the flag for the particular triple. Using -fsyntax-only means that the cc1 args are not emitted. I've added a check for the diagnostic message but retained -### so that I can keep the check for the absence of -fbasic-block-sections=all.
I think a warning is suitable for some GCC specific optimization options where a clang port either does not make sense or is not very necessary. This only applies to very common options which ease porting to clang. For clang specific optimizations, especially these with complex setup, I think an error is more useful.
Then you can switch to -c
The idea of not %clang is that it makes things clear that it is an error.
The NOT pattern is not useful when testing an error.