[clang][cli] Remove marshalling from Opt{In,Out}FFlag
authorJan Svoboda <jan_svoboda@apple.com>
Thu, 25 Feb 2021 07:47:59 +0000 (08:47 +0100)
committerJan Svoboda <jan_svoboda@apple.com>
Thu, 25 Feb 2021 07:53:58 +0000 (08:53 +0100)
commitd8a8e5d6240a1db809cd95106910358e69bbf299
treebee663f4daf8bbab8bd796772a0b02bfe1ef553c
parent88e45f00c156170ed562bbacad3b2a21633c0f7a
[clang][cli] Remove marshalling from Opt{In,Out}FFlag

We can now express all marshalling semantics in `Opt{In,Out}FFlag` via `BoolFOption`.

This patch moves remaining `Opt{In,Out}FFlag` instances using marshalling to `BoolFOption` and removes marshalling capabilities from `Opt{In,Out}FFlag` entirely.

This simplifies the decisions developers have to make when creating new boolean options:
  * For simple cc1 flag pairs, use `Bool{,F,G}Option`.
  * For cc1 flag pairs that require complex marshalling logic, use `Opt{In,Out}FFlag` and implement marshalling manually.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D97370
clang/include/clang/Driver/Options.td
clang/lib/Frontend/CompilerInvocation.cpp