Page MenuHomePhabricator

Charusso (Csaba Dabis)
Research

Projects

User does not belong to any projects.

User Details

User Since
Dec 25 2017, 5:51 AM (107 w, 4 d)

Recent Activity

Tue, Jan 7

Charusso added a comment to D71433: [analyzer] CERT: POS34-C.
In D71433#1784238, @NoQ wrote:

Currently the check may warn on non-bugs of the following kind:

void foo() {
  char env[] = "NAME=value";
  putenv(env);
  doStuff();
  putenv("NAME=anothervalue");
}
Tue, Jan 7, 10:42 AM · Restricted Project
Charusso accepted D71433: [analyzer] CERT: POS34-C.

I have created a notes.cpp test-file to test the notes in my checkers, but I think this checker is fine without that test file. @NoQ, what do you think?

Tue, Jan 7, 10:24 AM · Restricted Project

Fri, Jan 3

Charusso added inline comments to D72097: [LifetimeAnalysis] Do not forbid void deref type in gsl::Pointer/gsl::Owner annotations.
Fri, Jan 3, 4:27 PM · Restricted Project

Fri, Dec 20

Charusso added inline comments to D71791: [CFG] Fix an assertion failure with static initializers.
Fri, Dec 20, 5:44 PM · Restricted Project

Dec 13 2019

Charusso added a comment to D71155: [analyzer] CERT: STR30-C.

In order to bypass the CK_LValueToRValue evalCast() we have to create en ElementRegion as a return-value of the problematic function call. In that case for a mythical reason we miss the fact the pointer is nullable. I have not figured out yet why, but tried to create an appropriate return-value.

Dec 13 2019, 7:04 PM · Restricted Project
Charusso retitled D71155: [analyzer] CERT: STR30-C from [analyzer] CERT: StrChecker: 30.c to [analyzer] CERT: STR30-C.
Dec 13 2019, 7:04 PM · Restricted Project
Charusso updated the diff for D71155: [analyzer] CERT: STR30-C.
  • Try to conjure the index of the 'ElementRegion'.
Dec 13 2019, 6:55 PM · Restricted Project
Charusso added a comment to D71033: [analyzer] CERT: STR32-C.

We need to add the interestingness to the NoteTags so that we only emit notes on initialization/function calls which leads to an error.

Dec 13 2019, 6:55 PM · Restricted Project
Charusso added inline comments to D71033: [analyzer] CERT: STR32-C.
Dec 13 2019, 6:55 PM · Restricted Project
Charusso updated the diff for D71033: [analyzer] CERT: STR32-C.
  • Add notes to the initialization of char-arrays.
Dec 13 2019, 6:47 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT: STR31-C.
  • Iterate over parameters rather arguments for searching string-reading.
  • Better notes of the argument's index.
  • Avoid C.getPredecessor(), use the error-node instead.
Dec 13 2019, 6:46 PM · Restricted Project
Charusso added a reviewer for D71433: [analyzer] CERT: POS34-C: aaron.ballman.
Dec 13 2019, 4:36 AM · Restricted Project

Dec 12 2019

Charusso added a reviewer for D71433: [analyzer] CERT: POS34-C: Charusso.
Dec 12 2019, 1:22 PM · Restricted Project

Dec 10 2019

Charusso added a comment to D70411: [analyzer] CERT: STR31-C.
In D70411#1776460, @NoQ wrote:

Ok, so, what should the checker warn on? What should be the intended state machine for this checker?

We basically have two possible categories of answers to this question:

  • "The checker warns every time it finds an execution path on which unintended behavior occurs" - describe unintended behavior (say, "out-of-bounds buffer access") and define the checker in such a way that all warnings describe actual bugs of this kind (in our example, out-of-bound buffer accesses) as long as the rest of the static analyzer works correctly.
  • Or, you could say "The checker enforces a certain coding guideline on the user" - and then you should describe the guideline in a very short and easy-to-understand manner (say, "don't pass the string by pointer anywhere before you null-terminate it"), and then make checker check exactly this guideline. You may introduce some suppressions for intentional violations of the guideline, but the guideline itself should be simple, it should be always possible to follow it, and it should sound nice enough for developers to feel good about themselves when they follow it.
Dec 10 2019, 7:49 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT: STR31-C.
  • Fix.
Dec 10 2019, 7:49 PM · Restricted Project
Charusso accepted D71322: [analyzer] CStringChecker: Fix overly eager assumption that memcmp arguments overlap..

Could you write a test for strcmp please? I have found out the evalMemcmp behaves differently than evalStrcmp. However when the memcmp is going to be used like strcmp/strncmp the ideal would be to delegate the work to evalStrcmp. At the moment there is no connection between the two evaluation at all, which surprised me at first.

Dec 10 2019, 6:46 PM · Restricted Project
Charusso accepted D71321: [analyzer] CStringChecker: Warning text fixes..

Cool, thanks!

Dec 10 2019, 6:00 PM · Restricted Project

Dec 9 2019

Charusso added a comment to D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.
In D70805#1776527, @NoQ wrote:

Usually this kind of code is hard to re-use because all use cases require different definitions of "has descendant". We already have at least 3 such definitions floating around and we can't re-use them.

Even in the world of ASTMatchers the actual hasDescendant matcher is basically an anti-pattern as you always want to use a matcher for a specific parent-child relation instead (cf. http://lists.llvm.org/pipermail/cfe-dev/2019-September/063260.html).

Dec 9 2019, 8:21 PM · Restricted Project
Charusso added inline comments to D71155: [analyzer] CERT: STR30-C.
Dec 9 2019, 7:44 PM · Restricted Project

Dec 8 2019

Charusso closed D69181: [clang-tidy] Adding misc-signal-terminated-thread check.

Forgotten amend of commit message. Commited as:

Dec 8 2019, 11:47 PM · Restricted Project, Restricted Project
Charusso accepted D70052: [clang-tidy] Add misc-mutating-copy check.

I think it is fine, but please let us wait with the final thoughts from @aaron.ballman.

Dec 8 2019, 11:38 PM · Restricted Project, Restricted Project

Dec 6 2019

Charusso added a parent revision for D71155: [analyzer] CERT: STR30-C: D71033: [analyzer] CERT: STR32-C.
Dec 6 2019, 4:25 PM · Restricted Project
Charusso added a child revision for D71033: [analyzer] CERT: STR32-C: D71155: [analyzer] CERT: STR30-C.
Dec 6 2019, 4:25 PM · Restricted Project
Charusso removed a parent revision for D69813: [analyzer] CERTStrChecker: Model gets(): D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.
Dec 6 2019, 4:25 PM · Restricted Project
Charusso removed a child revision for D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script: D69813: [analyzer] CERTStrChecker: Model gets().
Dec 6 2019, 4:25 PM · Restricted Project
Charusso added a comment to D71155: [analyzer] CERT: STR30-C.

Examples generated by CodeChecker from the curl project:

Dec 6 2019, 4:25 PM · Restricted Project
Charusso created D71155: [analyzer] CERT: STR30-C.
Dec 6 2019, 4:25 PM · Restricted Project
Charusso updated the diff for D71033: [analyzer] CERT: STR32-C.
  • Add docs.
  • Move to alpha.
Dec 6 2019, 4:25 PM · Restricted Project
Charusso added a comment to D70411: [analyzer] CERT: STR31-C.

Please let us measure your examples at first to have a consensus what we would like to see from this checker.

Dec 6 2019, 4:16 PM · Restricted Project
Charusso updated the summary of D70411: [analyzer] CERT: STR31-C.
Dec 6 2019, 4:16 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT: STR31-C.
  • Make the checker alpha.
  • Add docs.
  • Copy-paste @NoQ's test.
Dec 6 2019, 4:16 PM · Restricted Project

Dec 5 2019

Charusso added a comment to D70439: [Analyzer][Docs][NFC] Add CodeChecker to the command line tools.

I would change the order of CCh and scan-build because we usually list stuff in alphabetical order. Also the chronological order is that, the newest is the first.

Dec 5 2019, 11:11 PM · Restricted Project

Dec 4 2019

Charusso added a comment to D71033: [analyzer] CERT: STR32-C.

Examples generated by CodeChecker from the curl project:

Dec 4 2019, 2:38 PM · Restricted Project
Charusso added a child revision for D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant: D71033: [analyzer] CERT: STR32-C.
Dec 4 2019, 2:29 PM · Restricted Project
Charusso added a parent revision for D71033: [analyzer] CERT: STR32-C: D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.
Dec 4 2019, 2:29 PM · Restricted Project
Charusso added inline comments to D71033: [analyzer] CERT: STR32-C.
Dec 4 2019, 2:29 PM · Restricted Project
Charusso created D71033: [analyzer] CERT: STR32-C.
Dec 4 2019, 2:21 PM · Restricted Project
Charusso added a comment to D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.

Here is a possible piece of code from the Tidy world: anyOf(declRefExpr(), hasDescendant(declRefExpr()), integerLiteral(), hasDescendant(integerLiteral())), that is why I recommend to allow equality of symbols to prevent boilerplate.

Dec 4 2019, 2:10 PM · Restricted Project
Charusso updated the diff for D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.
  • Add back a comment.
Dec 4 2019, 2:10 PM · Restricted Project
Charusso updated the diff for D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.
  • Add more tests.
  • Let us specify the descendant as allowing equality of symbols.
Dec 4 2019, 2:02 PM · Restricted Project
Charusso added a comment to D70411: [analyzer] CERT: STR31-C.

I have picked curl as an example, because it has a measurable amount of reports. I still recommend to make this alpha, because the expression-tracking cannot track members, and peoples are using members everywhere.

Dec 4 2019, 2:00 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT: STR31-C.
  • Tweaking.
Dec 4 2019, 1:53 PM · Restricted Project

Dec 3 2019

Charusso added a comment to D70725: [analyzer] Add path notes to FuchsiaHandleCheck.

Just a small side note. If the state was same as the previous we do not end up creating a new ExplodedNode right? Is this also the case when we add a NoteTag?

Dec 3 2019, 12:16 PM · Restricted Project

Dec 1 2019

Charusso retitled D70876: [clang-tidy] Add spuriously-wake-up-functions check from Add spuriously-wake-up-functions check to [clang-tidy] Add spuriously-wake-up-functions check.
Dec 1 2019, 10:10 AM · Restricted Project, Restricted Project
Charusso added a reviewer for D70876: [clang-tidy] Add spuriously-wake-up-functions check: Charusso.
Dec 1 2019, 10:10 AM · Restricted Project, Restricted Project

Nov 28 2019

Charusso added inline comments to D70823: [clang-tidy] Adding cert-pos34-c check.
Nov 28 2019, 9:39 AM · Restricted Project, Restricted Project
Charusso added a comment to D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.

It suppresses stuff in curl like:

char buf[4096];
size_t linelen = strlen(line);
char *ptr = realloc(line, linelen + strlen(buf) + 1);
strcpy(&line[linelen], buf);
Nov 28 2019, 1:54 AM · Restricted Project
Charusso added a parent revision for D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant: D70411: [analyzer] CERT: STR31-C.
Nov 28 2019, 1:42 AM · Restricted Project
Charusso added a child revision for D70411: [analyzer] CERT: STR31-C: D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.
Nov 28 2019, 1:42 AM · Restricted Project
Charusso created D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.
Nov 28 2019, 1:42 AM · Restricted Project

Nov 27 2019

Charusso added a comment to D70411: [analyzer] CERT: STR31-C.

The false positive suppression by going backwards on the bug-path of stored reports was a very simple concept, which turned out to be a useless one. The rough idea was that to invalidate every report in a path, and every other report would be left because they are reachable from a different path and they are valid errors. So that:

void test_wonky_null_termination(const char *src) {
  char dest[128];
  strcpy(dest, src);
  dest[sizeof(dest) - 1] = '\0';
  do_something(dest); // no-warning
}

The above example null-terminates the string on every path, so we remove the report, and:

Nov 27 2019, 6:31 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT: STR31-C.
  • Do not emit a report on re-binding a not null-terminated string, it may will be properly terminated (test added).
  • Added a test for the necessity of SValVisitor in this checker.
  • Some refactor.
Nov 27 2019, 5:56 PM · Restricted Project

Nov 24 2019

Charusso added a parent revision for D70411: [analyzer] CERT: STR31-C: D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.
Nov 24 2019, 1:02 PM · Restricted Project
Charusso added a child revision for D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script: D70411: [analyzer] CERT: STR31-C.
Nov 24 2019, 1:02 PM · Restricted Project

Nov 22 2019

Charusso added a comment to D70411: [analyzer] CERT: STR31-C.

Now I have simplified the checker so we do not need any ASCII-art, I believe. Do we have any better logic than the current implementation to catch when the string is read?

Nov 22 2019, 11:57 AM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT: STR31-C.
  • Remove the report storing map so we do not traverse backwards on the bug-path.
  • Use NoteTags instead of reports on problematic function calls.
  • Emit a report only if a not null-terminated string is read.
  • Store whether the string is null-terminated.
Nov 22 2019, 11:57 AM · Restricted Project

Nov 20 2019

Charusso added inline comments to D70411: [analyzer] CERT: STR31-C.
Nov 20 2019, 5:21 PM · Restricted Project
Charusso added a comment to D70411: [analyzer] CERT: STR31-C.
In D70411#1754356, @NoQ wrote:

I think it would really help if you draw a state machine for the checker, like the ASCII-art thing in D70470; you don't need to spend a lot of time turning it into ASCII-art, a photo of a quick hand-drawn picture would be totally fine, because it's, first and foremost, for discussion :)

Nov 20 2019, 5:21 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT: STR31-C.
  • Added a report when the not null-terminated string is read.
  • Added comments.
  • Fixed some uninteresting nits.
  • No ASCII-art yet.
Nov 20 2019, 5:11 PM · Restricted Project
Charusso added inline comments to D70320: [Analyzer] [NFC] Iterator Checkers - Separate iterator modeling and the actual checkers.
Nov 20 2019, 12:33 AM · Restricted Project

Nov 18 2019

Charusso abandoned D69813: [analyzer] CERTStrChecker: Model gets().

This patch moved to D70411.

Nov 18 2019, 3:24 PM · Restricted Project
Charusso added a comment to D70411: [analyzer] CERT: STR31-C.

Somehow the MallocBugVisitor is broken in the wild, and we need to support a lot more to call it non-alpha (see the FIXMEs). I do not want to spend time on fixing the visitor, but rather I would make this checker alpha, and move on. After a while when we have enough alarms we could see what could go wrong. The reports are not bad, I tried to make it super false-positive free.

Nov 18 2019, 3:16 PM · Restricted Project
Charusso created D70411: [analyzer] CERT: STR31-C.
Nov 18 2019, 3:07 PM · Restricted Project

Nov 13 2019

Charusso added inline comments to D69813: [analyzer] CERTStrChecker: Model gets().
Nov 13 2019, 7:50 PM · Restricted Project
Charusso added a comment to D69813: [analyzer] CERTStrChecker: Model gets().

Given that we are having two different projects at first let us create the path-sensitive error-catching + false positive suppression + design of the CERT rules, and when we are fine, we get back to the impossible-to-solve problem: to adjust fix-its (path-sensitively).

Nov 13 2019, 4:40 PM · Restricted Project
Charusso added inline comments to D69813: [analyzer] CERTStrChecker: Model gets().
Nov 13 2019, 12:21 PM · Restricted Project
Charusso added inline comments to D69813: [analyzer] CERTStrChecker: Model gets().
Nov 13 2019, 11:45 AM · Restricted Project

Nov 11 2019

Charusso updated the diff for D69813: [analyzer] CERTStrChecker: Model gets().
  • The packaging have not been addressed yet.
  • Inject the "zombie" size expression to the new function call (fgets) if none of the size expression's regions have been modified.
Nov 11 2019, 5:20 AM · Restricted Project

Nov 7 2019

Charusso added a comment to D69813: [analyzer] CERTStrChecker: Model gets().

Would it make sense to use cert.str.31.c to remove the random dash? Would this also help the user to do something like cert.str.*.cpp? if they want just the CERT C++ STR rules checked? Or can they do that already even with the -?

Nov 7 2019, 1:45 AM · Restricted Project

Nov 6 2019

Charusso added a comment to D69813: [analyzer] CERTStrChecker: Model gets().

I'm not @NoQ, but I do agree that there should be a separate check per rule in terms of the UI presented to the user. The name should follow the rule ID like they do in clang-tidy, for some consistency there.
I think that the rule number should be in the name. I'd probably go with cert.STR31-C or cert.str31-c (so it's clear which CERT standard the rule came from).

Nov 6 2019, 12:12 PM · Restricted Project

Nov 5 2019

Charusso added a comment to D69813: [analyzer] CERTStrChecker: Model gets().

Hmm, so this checker is rather a collection of CERT rule checkers, right? Shouldn't the checker name contain the actual rule name (STR31-C)? User interfacewise, I would much prefer smaller, leaner checkers than a big one with a lot of options, which are barely supported for end-users. I would expect a cert package to contain subpackages like cert.str, and checker names cert.str.31StringSize, or similar.

Nov 5 2019, 10:10 AM · Restricted Project
Charusso updated the diff for D69813: [analyzer] CERTStrChecker: Model gets().
  • Support alloca().
Nov 5 2019, 8:47 AM · Restricted Project
Charusso updated the diff for D69813: [analyzer] CERTStrChecker: Model gets().
  • Do not try to fix-it an array with offsets.
Nov 5 2019, 8:37 AM · Restricted Project
Charusso updated the diff for D69813: [analyzer] CERTStrChecker: Model gets().
  • Use existing visitors.
  • Make the MallocBugVisitor available for every checker.
  • Fix duplication of fix-its on the warning path piece when we emit a note as well.
Nov 5 2019, 7:05 AM · Restricted Project
Charusso added inline comments to D69813: [analyzer] CERTStrChecker: Model gets().
Nov 5 2019, 7:05 AM · Restricted Project

Nov 4 2019

Charusso added a comment to D69813: [analyzer] CERTStrChecker: Model gets().
Nov 4 2019, 3:12 PM · Restricted Project
Charusso added inline comments to D69813: [analyzer] CERTStrChecker: Model gets().
Nov 4 2019, 2:26 PM · Restricted Project
Charusso added inline comments to D69813: [analyzer] CERTStrChecker: Model gets().
Nov 4 2019, 12:32 PM · Restricted Project
Charusso added a parent revision for D69813: [analyzer] CERTStrChecker: Model gets(): D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.
Nov 4 2019, 11:17 AM · Restricted Project
Charusso added a child revision for D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script: D69813: [analyzer] CERTStrChecker: Model gets().
Nov 4 2019, 11:17 AM · Restricted Project
Charusso created D69813: [analyzer] CERTStrChecker: Model gets().
Nov 4 2019, 11:17 AM · Restricted Project
Charusso abandoned D69745: [analyzer] Checker: check::BeginAnalysis.
In D69745#1732739, @NoQ wrote:

Basically this, but the other way round: your BeginAnalysis is BeginFunction with extra steps (namely, checking C.inTopFrame()).

Backstory: I wanted to add BeginAnalysis a few years ago because i wanted to mark argc and argv as tainted when analyzing main(). But then i noticed that we already have BeginFunction so i decided not to add it. No, i didn't mark them as tainted yet :/

Nov 4 2019, 10:38 AM · Restricted Project
Charusso added a comment to D69726: [analyzer] DynamicSize: Store the dynamic size.

Changes to MallocChecker really highlight the positive effects of this patch. Nice!

Nov 4 2019, 8:26 AM · Restricted Project
Charusso added a comment to D69745: [analyzer] Checker: check::BeginAnalysis.

YES PLEASE. Debug checkers that only dump from check::EndAnalysis won't rely on the analysis not actually crashing. Which is ironically exactly when we want to use them.

Nov 4 2019, 8:16 AM · Restricted Project
Charusso updated the diff for D69745: [analyzer] Checker: check::BeginAnalysis.
  • Do not restrict what you supposed to do with the callback.
Nov 4 2019, 7:57 AM · Restricted Project
Charusso added a comment to D69662: [Checkers] Avoid using evalCall in StreamChecker..

On multiple evaluation of the same call the Analyzer will warn and prevent you to do so.

Nov 4 2019, 1:27 AM · Restricted Project

Nov 3 2019

Charusso added inline comments to D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.
Nov 3 2019, 6:23 PM · Restricted Project
Charusso updated the diff for D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.
  • Remove llvm_unreacheable from error-handling.
Nov 3 2019, 6:23 PM · Restricted Project

Nov 1 2019

Charusso retitled D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script from [analyzer] FixItHint: apply and test hints with the Clang Tidy's script to [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.
Nov 1 2019, 8:31 PM · Restricted Project
Charusso added a parent revision for D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script: D69745: [analyzer] Checker: check::BeginAnalysis.
Nov 1 2019, 8:30 PM · Restricted Project
Charusso added a child revision for D69745: [analyzer] Checker: check::BeginAnalysis: D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.
Nov 1 2019, 8:30 PM · Restricted Project
Charusso added a comment to D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.

Hey! I would like to reuse your script without any reinvention. It serves every needs, but at some point we start to heavily diverge. When I started with the Tidy I really enjoyed that script, and most of the people I know both develop Tidy and the Analyzer, so I would keep the design of the script to make it consistent to use.

Nov 1 2019, 8:21 PM · Restricted Project
Charusso created D69746: [analyzer] FixItHint: Apply and test hints with the Clang Tidy's script.
Nov 1 2019, 8:12 PM · Restricted Project
Charusso added a comment to D69745: [analyzer] Checker: check::BeginAnalysis.

I felt that it will be easier, eh.

Nov 1 2019, 7:36 PM · Restricted Project
Charusso added a comment to D69731: [analyzer] CheckerContext: Make the Preprocessor available.

I am thinking of a callback which is something like:

void checkBeginAnalysis(const Decl *D, BugReporter &BR) const;

so it would be easy and meaningful to have a place for the Preprocessor logic. Do you think it would worth it?

Nov 1 2019, 7:28 PM · Restricted Project
Charusso added a parent revision for D69745: [analyzer] Checker: check::BeginAnalysis: D69731: [analyzer] CheckerContext: Make the Preprocessor available.
Nov 1 2019, 7:27 PM · Restricted Project
Charusso created D69745: [analyzer] Checker: check::BeginAnalysis.
Nov 1 2019, 7:27 PM · Restricted Project
Charusso added a child revision for D69731: [analyzer] CheckerContext: Make the Preprocessor available: D69745: [analyzer] Checker: check::BeginAnalysis.
Nov 1 2019, 7:27 PM · Restricted Project
Charusso updated the diff for D69731: [analyzer] CheckerContext: Make the Preprocessor available.
  • Use less const, it prevented the usage of non-const methods.
Nov 1 2019, 6:42 PM · Restricted Project
Charusso added a comment to D69731: [analyzer] CheckerContext: Make the Preprocessor available.

I am thinking of a callback which is something like:

void checkBeginAnalysis(const Decl *D, BugReporter &BR) const;

so it would be easy and meaningful to have a place for the Preprocessor logic. Do you think it would worth it?

Nov 1 2019, 3:49 PM · Restricted Project