r311958 - Revert "Revert r311552: [Bash-autocompletion] Add support for static analyzer flags"

Yuka Takahashi via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 20 06:46:03 PST 2018


Sorry I totally forgot. Taking a look now, I will add you to a
reviewer when I have an alternative patch!

Thanks for the reminder.
On Thu, 20 Dec 2018 at 15:20, Nico Weber <thakis at chromium.org> wrote:
>
> Have you had a chance to look at making this change?
>
> On Mon, Apr 9, 2018 at 9:08 AM Yuka Takahashi <yukatkh at gmail.com> wrote:
>>
>> Sounds good!
>>
>> 2018-04-09 15:03 GMT+02:00 Nico Weber <thakis at chromium.org>:
>>>
>>> Yes.
>>>
>>> On Mon, Apr 9, 2018 at 9:00 AM, Yuka Takahashi <yukatkh at gmail.com> wrote:
>>>>
>>>> Hi Nico,
>>>>
>>>> Thanks for your comment!
>>>>
>>>> I do agree that this code is hacky. Do you mean to ask tablegen to generate Checkers.inc under Driver so that we can do like this? :
>>>>   #define CHECKER(FULLNAME, CLASS, DESCFILE, HT, G, H)  FULLNAME ","
>>>>   #include "clang/Driver/Checkers.inc"
>>>>   #undef GET_CHECKERS
>>>>
>>>> Cheers,
>>>> Yuka
>>>>
>>>> 2018-04-07 4:28 GMT+02:00 Nico Weber <thakis at chromium.org>:
>>>>>
>>>>> 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 at 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 at lists.llvm.org
>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>>>
>>>>>
>>>>
>>>
>>


More information about the cfe-commits mailing list