[Driver] Allow warning for unclaimed TargetSpecific options
authorFangrui Song <i@maskray.me>
Fri, 16 Jun 2023 15:32:25 +0000 (08:32 -0700)
committerFangrui Song <i@maskray.me>
Fri, 16 Jun 2023 15:32:25 +0000 (08:32 -0700)
commita79995ca6004082774a87f7a58ab6be5343364b7
tree24428a84116e48afcf421e5b47d4666b4e207081
parentec77747fbdca901e0fded58f940dae62e0f6b726
[Driver] Allow warning for unclaimed TargetSpecific options

For unclaimed target-agnostic options, we can apply clang_ignored_gcc_optimization_f_Group
to accept but warn about them.
```
% clang -c -fexpensive-optimizations a.c
clang: warning: optimization flag '-fexpensive-optimizations' is not supported [-Wignored-optimization-argument]
```

For an unclaimed target-specific option, one target may want to accept but warn
about it. Add `llvm::opt::Arg::IgnoredTargetSpecific` to support this warning
need.

Close https://github.com/llvm/llvm-project/issues/63282

Reviewed By: mstorsjo

Differential Revision: https://reviews.llvm.org/D152856
clang/include/clang/Driver/Options.td
clang/lib/Driver/Driver.cpp
clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
clang/lib/Driver/ToolChains/MinGW.cpp
llvm/include/llvm/Option/Arg.h
llvm/lib/Option/Arg.cpp