[all-commits] [llvm/llvm-project] b2eda8: [OptTable] Make explicitly included options overri...

Justin Bogner via All-commits all-commits at lists.llvm.org
Wed Jul 19 15:29:31 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b2eda85f047f27788ccd7b9af9bd59c5d44b2051
      https://github.com/llvm/llvm-project/commit/b2eda85f047f27788ccd7b9af9bd59c5d44b2051
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2023-07-19 (Wed, 19 Jul 2023)

  Changed paths:
    M clang-tools-extra/clangd/CompileCommands.cpp
    M clang/include/clang/Driver/Options.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
    M llvm/lib/Option/OptTable.cpp

  Log Message:
  -----------
  [OptTable] Make explicitly included options override excluded ones

When we have both explicitly included and excluded option sets, we
were excluding anything from the latter set regardless of what was in
the former. This doesn't compose well and led to an overly complicated
design around DXC options where a third flag was introduced to handle
options that overlapped between DXC and CL.

With this change we check the included options before excluding
anything from the exclude list, which allows for options that are in
multiple categories to be handled in a sensible way. This allows us to
remove CLDXCOption but should otherwise be NFC.

Differential Revision: https://reviews.llvm.org/D155729




More information about the All-commits mailing list