Hi Yuka, sorry about the late review comment on this. I just happened to see that this lets Driver's Option.inc depend on StaticAnalyzer/Checker's Checker.inc. However, Driver does not depend on StaticAnalyzer/Checker. In practice, it works ok because of all tablegen targets being collected into clang-tablegen-targets and driver depending on that ( http://llvm-cs.pcc.me.uk/tools/clang/CMakeLists.txt#442), but it still feels a bit hacky that Driver's tablegen output depends on code generated by StaticAnalyzer/Checker. Maybe we should move Checker.td into Driver now?
Nico On Mon, Aug 28, 2017 at 8:09 PM, Yuka Takahashi via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: yamaguchi > Date: Mon Aug 28 17:09:31 2017 > New Revision: 311958 > > URL: http://llvm.org/viewvc/llvm-project?rev=311958&view=rev > Log: > Revert "Revert r311552: [Bash-autocompletion] Add support for static > analyzer flags" > > This reverts commit 7c46b80c022e18d43c1fdafb117b0c409c5a6d1e. > > r311552 broke lld buildbot because I've changed OptionInfos type from > ArrayRef to vector. However the bug is fixed, so I'll commit this again. > > Modified: > cfe/trunk/include/clang/Driver/CC1Options.td > cfe/trunk/lib/Driver/DriverOptions.cpp > cfe/trunk/test/Driver/autocomplete.c > > Modified: cfe/trunk/include/clang/Driver/CC1Options.td > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/ > clang/Driver/CC1Options.td?rev=311958&r1=311957&r2=311958&view=diff > ============================================================ > ================== > --- cfe/trunk/include/clang/Driver/CC1Options.td (original) > +++ cfe/trunk/include/clang/Driver/CC1Options.td Mon Aug 28 17:09:31 2017 > @@ -99,7 +99,19 @@ def analyzer_stats : Flag<["-"], "analyz > HelpText<"Print internal analyzer statistics.">; > > def analyzer_checker : Separate<["-"], "analyzer-checker">, > - HelpText<"Choose analyzer checkers to enable">; > + HelpText<"Choose analyzer checkers to enable">, > + ValuesCode<[{ > + const char *Values = > + #define GET_CHECKERS > + #define CHECKER(FULLNAME, CLASS, DESCFILE, HT, G, H) FULLNAME "," > + #include "clang/StaticAnalyzer/Checkers/Checkers.inc" > + #undef GET_CHECKERS > + #define GET_PACKAGES > + #define PACKAGE(FULLNAME, G, D) FULLNAME "," > + #include "clang/StaticAnalyzer/Checkers/Checkers.inc" > + #undef GET_PACKAGES > + ; > + }]>; > def analyzer_checker_EQ : Joined<["-"], "analyzer-checker=">, > Alias<analyzer_checker>; > > > Modified: cfe/trunk/lib/Driver/DriverOptions.cpp > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ > DriverOptions.cpp?rev=311958&r1=311957&r2=311958&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/Driver/DriverOptions.cpp (original) > +++ cfe/trunk/lib/Driver/DriverOptions.cpp Mon Aug 28 17:09:31 2017 > @@ -11,6 +11,7 @@ > #include "llvm/ADT/STLExtras.h" > #include "llvm/Option/OptTable.h" > #include "llvm/Option/Option.h" > +#include <cassert> > > using namespace clang::driver; > using namespace clang::driver::options; > @@ -40,5 +41,13 @@ public: > } > > std::unique_ptr<OptTable> clang::driver::createDriverOptTable() { > - return llvm::make_unique<DriverOptTable>(); > + auto Result = llvm::make_unique<DriverOptTable>(); > + // Options.inc is included in DriverOptions.cpp, and calls OptTable's > + // addValues function. > + // Opt is a variable used in the code fragment in Options.inc. > + OptTable &Opt = *Result; > +#define OPTTABLE_ARG_INIT > +#include "clang/Driver/Options.inc" > +#undef OPTTABLE_ARG_INIT > + return std::move(Result); > } > > Modified: cfe/trunk/test/Driver/autocomplete.c > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/ > autocomplete.c?rev=311958&r1=311957&r2=311958&view=diff > ============================================================ > ================== > --- cfe/trunk/test/Driver/autocomplete.c (original) > +++ cfe/trunk/test/Driver/autocomplete.c Mon Aug 28 17:09:31 2017 > @@ -93,3 +93,5 @@ > // WARNING-NEXT: -Wmax-unsigned-zero > // RUN: %clang --autocomplete=-Wno-invalid-pp- | FileCheck %s > -check-prefix=NOWARNING > // NOWARNING: -Wno-invalid-pp-token > +// RUN: %clang --autocomplete=-analyzer-checker, | FileCheck %s > -check-prefix=ANALYZER > +// ANALYZER: unix.Malloc > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits