Page MenuHomePhabricator

Charusso (Csaba Dabis)
Research

Projects

User does not belong to any projects.

User Details

User Since
Dec 25 2017, 5:51 AM (142 w, 6 d)

Recent Activity

Jul 17 2020

Charusso accepted D84084: [analyzer] scan-build: Fix silencing multiple core checkers..

I do not get why my solution -analyzer-config silence-checkers=core.NullDereference -analyzer-config silence-checkers=core.DivideZero was insufficient, whereas -analyzer-config silence-checkers=core.NullDereference;core.DivideZero is working. One funny thing to note here: LLDB cannot parse "a;b", so that it stops to parse the compiler flags at ;... It is mostly LLDB's fault, but that is why I wanted to avoid the character ;. If I remember right I have picked ; over ,, because the Clang's flag-parser cannot parse ,, but may , is working now. Could you try that and overwrite these silly behaviors, please?

Jul 17 2020, 11:35 PM

Jul 15 2020

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

Thanks for the reviews!

Jul 15 2020, 9:16 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT STR rule checkers: STR31-C.
  • Resolve most of the review comments.
  • We really need to specify the design of future checkers.
Jul 15 2020, 9:14 PM · Restricted Project

Jul 14 2020

Artem Dergachev <adergachev@apple.com> committed rG401a937db340: [analyzer] AnalysisDeclContext: Refactor and documentation (authored by Charusso).
[analyzer] AnalysisDeclContext: Refactor and documentation
Jul 14 2020, 4:40 PM
Artem Dergachev <adergachev@apple.com> committed rG18cef5f3e608: [analyzer] AnalyzerOptions: Remove 'fixits-as-remarks' (authored by Charusso).
[analyzer] AnalyzerOptions: Remove 'fixits-as-remarks'
Jul 14 2020, 4:40 PM
Artem Dergachev <adergachev@apple.com> committed rG3885ecb0b798: [analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script (authored by Charusso).
[analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script
Jul 14 2020, 4:40 PM

Jun 3 2020

Charusso abandoned D81064: [analyzer] ExprEngine: Do not 'bindLoc' twice for testing purposes.

Okay! Thanks for the review.

Jun 3 2020, 5:27 AM · Restricted Project
Charusso updated subscribers of D80503: [analyzer] CallDescriptionMap: Support CXXConstructExpr.
Jun 3 2020, 5:27 AM · Restricted Project
Charusso removed a reviewer for D80503: [analyzer] CallDescriptionMap: Support CXXConstructExpr: aaron.ballman.
Jun 3 2020, 5:27 AM · Restricted Project
Charusso updated the diff for D80503: [analyzer] CallDescriptionMap: Support CXXConstructExpr.
  • Using getNameAsString().
Jun 3 2020, 5:27 AM · Restricted Project
Charusso added a comment to D81062: [analyzer] ExprEngine: Fill the Store with initial value of parameters.
In D81062#2070823, @NoQ wrote:

This change in the state adds no new information to the state while also burdening the Store with more data to carry and making debugging harder (not only dumps will now have a bunch of explicit bindings, but also these bindings will be much bulkier being derived symbols).

I do not see any debug burden because there were no information to begin the debug. The *new* information occurs at the appropriate place now.

Jun 3 2020, 5:27 AM
Charusso added a comment to D81068: [analyzer] RegionStore: Add some debug dumps on interesting events.

Story: I was looking at the va_list test files and I was very curious why I cannot catch its binding as a struct. So I have checked out an implementation:

typedef struct {
   unsigned int gp_offset;
   unsigned int fp_offset;
   void *overflow_arg_area;
   void *reg_save_area;
} va_list[1];

The answer was: bindArray(). I believe it is convenient to see immediately what we model.

Jun 3 2020, 2:10 AM · Restricted Project
Charusso created D81068: [analyzer] RegionStore: Add some debug dumps on interesting events.
Jun 3 2020, 2:10 AM · Restricted Project
Charusso created D81065: [analyzer] RegionStore: Prefer to get the default binding over the direct.
Jun 3 2020, 1:37 AM · Restricted Project
Charusso added a comment to D81064: [analyzer] ExprEngine: Do not 'bindLoc' twice for testing purposes.

May this is somewhat hand-waving, but this double-binding does not seem useful.

Jun 3 2020, 1:36 AM · Restricted Project
Charusso created D81064: [analyzer] ExprEngine: Do not 'bindLoc' twice for testing purposes.
Jun 3 2020, 1:36 AM · Restricted Project
Charusso created D81062: [analyzer] ExprEngine: Fill the Store with initial value of parameters.
Jun 3 2020, 1:35 AM
Charusso added inline comments to D80503: [analyzer] CallDescriptionMap: Support CXXConstructExpr.
Jun 3 2020, 1:03 AM · Restricted Project
Charusso updated the diff for D80503: [analyzer] CallDescriptionMap: Support CXXConstructExpr.
  • Refactor.
Jun 3 2020, 1:03 AM · Restricted Project
Charusso created D81059: [analyzer] CallDescriptionMap: Support CXXOperatorCallExpr.
Jun 3 2020, 1:03 AM · Restricted Project

May 24 2020

Charusso added inline comments to D80503: [analyzer] CallDescriptionMap: Support CXXConstructExpr.
May 24 2020, 10:23 PM · Restricted Project
Charusso created D80505: [analyzer] CERT STR rule checkers: STR51-CPP.
May 24 2020, 10:23 PM · Restricted Project
Charusso added inline comments to D80505: [analyzer] CERT STR rule checkers: STR51-CPP.
May 24 2020, 10:23 PM · Restricted Project
Charusso created D80504: [analyzer] CERT STR rule checkers: STR50-CPP.
May 24 2020, 9:51 PM · Restricted Project
Charusso added inline comments to D80503: [analyzer] CallDescriptionMap: Support CXXConstructExpr.
May 24 2020, 9:51 PM · Restricted Project
Charusso created D80503: [analyzer] CallDescriptionMap: Support CXXConstructExpr.
May 24 2020, 9:51 PM · Restricted Project
Charusso updated the diff for D71155: [analyzer] CERT STR rule checkers: STR30-C.
  • Refactor.
May 24 2020, 9:51 PM · Restricted Project
Charusso added a comment to D71155: [analyzer] CERT STR rule checkers: STR30-C.
In D71155#1854908, @NoQ wrote:

Let's separate CStringChecker improvements into a separate patch and have a separate set of tests for it.

May 24 2020, 9:51 PM · Restricted Project
Charusso updated the diff for D71033: [analyzer] CERT STR rule checkers: STR32-C.
  • Refactor.
  • State out explicitly whether the Analyzer models the dynamic size.
May 24 2020, 9:51 PM · Restricted Project
Charusso abandoned D70805: [analyzer] SValHasDescendant: Determine whether the SVal has an SVal descendant.

Way more sophisticated matching: https://reviews.llvm.org/D77745

May 24 2020, 9:51 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT STR rule checkers: STR31-C.
  • Refactor.
May 24 2020, 9:19 PM · Restricted Project

May 19 2020

Charusso accepted D80213: [analyzer] Move StdCLibraryFunctionArgs to alpha..
May 19 2020, 10:21 AM · Restricted Project

Apr 7 2020

Charusso added a comment to D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows.

I believe it is very strange on a Windows system to have multiple dots in a file. The other issue could be the wildcard /*/ in a path full of \s. The LLVM lit (https://llvm.org/docs/CommandGuide/lit.html) has tons of Windows-related shortcuts, which I have never seen being used, but could be useful.

Apr 7 2020, 9:12 AM · Restricted Project
Charusso added a comment to D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows.
Apr 7 2020, 9:12 AM · Restricted Project

Apr 5 2020

Charusso added inline comments to D75229: [clang-tidy] Add signal-in-multithreaded-program check.
Apr 5 2020, 9:04 AM · Restricted Project, Restricted Project

Apr 3 2020

Charusso accepted D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows.

@NoQ please, review my new patch. I've made some changes from C++ side. It regards replacing backslash to forward-slash in case of Win platform defined.

Apr 3 2020, 4:48 AM · Restricted Project

Apr 1 2020

Charusso updated the diff for D70411: [analyzer] CERT STR rule checkers: STR31-C.
  • Simplify tests.
  • Remove dead code, they are far away to being used.
  • Add an extra test case.
Apr 1 2020, 10:18 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT STR rule checkers: STR31-C.
  • Remove the last dead comment.
Apr 1 2020, 10:18 PM · Restricted Project
Charusso added a comment to D70411: [analyzer] CERT STR rule checkers: STR31-C.

Thanks for the review, hopefully if I ping @NoQ in every round, it will be green-marked soon.

Apr 1 2020, 10:18 PM · Restricted Project
Charusso added a comment to D77066: [analyzer] ApiModeling: Add buffer size arg constraint.
getDynamicSizeWithOffset(State, MR, SVB) {
  Offset = State->getStoreManager().getStaticOffset(MR, SVB);
  ...
}

Hm, the MemRegion's offset should be great. I was thinking about if we would store SVal offsets in the Store.

Apr 1 2020, 12:30 AM · Restricted Project

Mar 31 2020

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

Given that the secondary behavior confuse people I have removed it for now. May if someone introduce a NullTerminationChecker then we introduce such option to warn on insecure calls instant. Thanks @balazske for influencing that change. @NoQ this project had a deadline like half year ago, could you smash that green button please?

Mar 31 2020, 6:12 PM · Restricted Project
Charusso updated the diff for D70411: [analyzer] CERT STR rule checkers: STR31-C.
  • Get rid of the secondary behavior for now.
  • Fix review comments.
Mar 31 2020, 6:12 PM · Restricted Project
Charusso updated the diff for D69726: [analyzer] DynamicSize: Store the dynamic size.
  • Remove the last gymnastic.
  • Rebase.
Mar 31 2020, 5:39 PM · Restricted Project
Charusso accepted D77022: [analyzer] Use IgnoreImpCasts() instead of reimplementing it..
Mar 31 2020, 1:44 PM · Restricted Project
Charusso added a comment to D77066: [analyzer] ApiModeling: Add buffer size arg constraint.

Please avoid to stuff in CheckerContext because this facility should be used by ExprEngine/Store as well.
Let us reword your API: getDynamicSizeWithOffset(ProgramStateRef, SVal, SValBuilder &). Of course we are trying to obtain some buffer-ish size, that is the purpose of the entire API.
I also could imagine something like getDynamicSizeMul(ProgramStateRef, const MemRegion &, const MemRegion &, SValBuilder &), as it is very common.

Mar 31 2020, 1:44 PM · Restricted Project
Charusso added a comment to D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows.

@Charusso Could you point me where I can find correspondent code which creates dot (graph) files?

Each class has its own dumpJson method which builds up the graph together. The actual dot creation happens in ExprEngine.cpp's struct DOTGraphTraits<ExplodedGraph*>, changed in: D62346

Mar 31 2020, 11:26 AM · Restricted Project
Charusso added a comment to D73521: [analyzer] add-new-checker.py: Introduction.

Will this utility affect Visual Studio builds?

Mar 31 2020, 4:56 AM · Restricted Project

Mar 30 2020

Charusso updated the diff for D73521: [analyzer] add-new-checker.py: Introduction.
  • Remove the test of creating a live checker, instead copy over the live checker when the script runs.
  • Simplify the script by adding the new package to the end of the file.
  • In case of the checkers.rst a non-alpha package is going to be added before the alpha packages.
  • According to this change simplify the tests.
  • DummyChecker -> ExampleChecker.
Mar 30 2020, 8:46 PM · Restricted Project
Charusso added a comment to D73521: [analyzer] add-new-checker.py: Introduction.
In D73521#1923693, @NoQ wrote:

Or is each test run updating the repo? Can we simply make the script do cat DummyChecker.cpp | sed s/DummyChecker/$NAME/g > $NAME.cpp and store the checker only once?

Mar 30 2020, 8:46 PM · Restricted Project

Mar 29 2020

Charusso retitled D77022: [analyzer] Use IgnoreImpCasts() instead of reimplementing it. from Use IgnoreImpCasts() instead of reimplementing it. to [analyzer] Use IgnoreImpCasts() instead of reimplementing it..
Mar 29 2020, 11:45 AM · Restricted Project
Charusso added inline comments to D77022: [analyzer] Use IgnoreImpCasts() instead of reimplementing it..
Mar 29 2020, 11:45 AM · Restricted Project

Mar 28 2020

Charusso added inline comments to D69726: [analyzer] DynamicSize: Store the dynamic size.
Mar 28 2020, 8:56 PM · Restricted Project
Charusso updated the diff for D69726: [analyzer] DynamicSize: Store the dynamic size.
  • Fix VLASizeChecker's multi-dimensional array early return.
  • So that fix the regression in test misc-ps-region-store.m.
  • Fix tests that need regex.
  • Add documentation about dumpExtent, dumpElementCount.
Mar 28 2020, 8:56 PM · Restricted Project

Mar 25 2020

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

"To prevent such errors, either limit copies through truncation or, preferably, ensure that the destination is of sufficient size to hold the character data" - from the rule's page.
Most of the projects are fine truncating by hand because the write happens in somewhat well-bounded strings: IP-addresses, names, numbers... I wanted to make this as practical as possible. Until you are having a null-terminated string without being read, you are most likely fine. Feel free to try this out, probably you would already understand the WarnOnCall option very well.

Mar 25 2020, 12:59 PM · Restricted Project

Mar 24 2020

Charusso added inline comments to D70411: [analyzer] CERT STR rule checkers: STR31-C.
Mar 24 2020, 11:49 AM · Restricted Project

Mar 23 2020

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

Thanks for the feedback! Given that it will remain an alpha checker for a long time (~1 year), no one really should use it.

Mar 23 2020, 8:09 PM · Restricted Project
Charusso accepted D76622: [analyzer] ConstraintManager - use EXPENSIVE_CHECKS instead of (gcc specific) __OPTIMIZE__ guard.

Nice catch, thanks! We have some FIXMEs about MSVC sadly and I was thinking about the same change back in the days.

Mar 23 2020, 10:21 AM · Restricted Project
Charusso retitled D76622: [analyzer] ConstraintManager - use EXPENSIVE_CHECKS instead of (gcc specific) __OPTIMIZE__ guard from ConstraintManager - use EXPENSIVE_CHECKS instead of (gcc specific) __OPTIMIZE__ guard to [analyzer] ConstraintManager - use EXPENSIVE_CHECKS instead of (gcc specific) __OPTIMIZE__ guard.
Mar 23 2020, 10:21 AM · Restricted Project

Mar 17 2020

Charusso added a comment to D76229: [clang-tidy] Added PlacementNewStorageCheck.

Have you considered making this a static analyzer check as opposed to a clang-tidy check? I think using dataflow analysis will really reduce the false positives because it will be able to track the allocation and alignment data across control flow.

I have never try to write static analyzer before. Okay, I will look at examples of how to work with dataflow.

Mar 17 2020, 9:37 AM · Restricted Project, Restricted Project
Charusso added a reviewer for D76287: [analysis][analyzer] Introduce the skeleton of a reaching definitions calculator: Charusso.
Mar 17 2020, 9:05 AM · Restricted Project

Mar 13 2020

Charusso added a comment to D75529: [analyzer] Limit UCharMax to min of max uchar or max int.

I believe all comments have been addressed. Please let me know if there's anything else required. Thanks

Mar 13 2020, 10:11 AM · Restricted Project

Mar 12 2020

Charusso added inline comments to D73521: [analyzer] add-new-checker.py: Introduction.
Mar 12 2020, 12:31 PM · Restricted Project
Charusso updated the diff for D73521: [analyzer] add-new-checker.py: Introduction.
  • Try to invoke TableGen, if that fails the user need to specify the path to it.
  • The script actually creates a real world (hidden) checker.
    • This checker always made with the build invocation.
    • Its test file always made with the build invocation.
    • Everything else remain as is.
  • (calculated: DummyChecker.cpp (100 lines))
Mar 12 2020, 12:28 PM · Restricted Project

Mar 9 2020

Charusso accepted D75529: [analyzer] Limit UCharMax to min of max uchar or max int.

@Charusso, I cannot find a way to create a test for this change, since this was found using an architecture that supports 16-bit chars.

Mar 9 2020, 10:46 AM · Restricted Project

Mar 4 2020

Charusso added a comment to D74467: [analyzer] Teach scan-build how to rebuild index.html without analyzing..
In D74467#1905416, @NoQ wrote:

Could you mention how to use this feature in the Summary please?
And something is not right, I have tried it:

Use of uninitialized value $Clang in concatenation (.) or string at /llvm-project/clang/tools/scan-build/bin/scan-build line 1895.

Uh-oh. Does this still show up if you specify --use-analyzer explicitly? Because %scan_build in tests includes this flag because otherwise it has no knowledge of the clang build directory.

sh: 1: : Permission denied

This looks like a separate problem, dunno.

Mar 4 2020, 9:00 AM · Restricted Project
Charusso added a comment to D74467: [analyzer] Teach scan-build how to rebuild index.html without analyzing..

Could you mention how to use this feature in the Summary please?

cd reports
scan-build --generate-index-only .

Mar 4 2020, 3:26 AM · Restricted Project

Mar 3 2020

Charusso added inline comments to D73520: [analyzer] BugReporterVisitors: Refactor and documentation.
Mar 3 2020, 11:33 PM · Restricted Project
Charusso updated the diff for D73520: [analyzer] BugReporterVisitors: Refactor and documentation.
  • Make the tags robust and more unique.
Mar 3 2020, 11:33 PM · Restricted Project
Charusso committed rG7e1a6ca9e89c: [analyzer] AnalysisDeclContext: Refactor and documentation (authored by Charusso).
[analyzer] AnalysisDeclContext: Refactor and documentation
Mar 3 2020, 10:21 PM
Charusso committed rGabdd33c86a34: [analyzer] AnalyzerOptions: Remove 'fixits-as-remarks' (authored by Charusso).
[analyzer] AnalyzerOptions: Remove 'fixits-as-remarks'
Mar 3 2020, 10:21 PM
Charusso closed D73729: [analyzer] AnalyzerOptions: Remove 'fixits-as-remarks'.
Mar 3 2020, 10:21 PM · Restricted Project
Charusso closed D73519: [analyzer] AnalysisDeclContext: Refactor and documentation.
Mar 3 2020, 10:21 PM · Restricted Project
Charusso added a comment to D73519: [analyzer] AnalysisDeclContext: Refactor and documentation.

Done, thanks! I will eventually document more. "Some day"... jk.

Mar 3 2020, 10:21 PM · Restricted Project
Charusso added a comment to D73729: [analyzer] AnalyzerOptions: Remove 'fixits-as-remarks'.

[Achievement unlocked] 3 green marks.

Mar 3 2020, 10:21 PM · Restricted Project
Charusso updated the summary of D73519: [analyzer] AnalysisDeclContext: Refactor and documentation.
Mar 3 2020, 10:21 PM · Restricted Project
Charusso committed rGf69c74db34f4: [analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script (authored by Charusso).
[analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script
Mar 3 2020, 9:48 PM
Charusso closed D69746: [analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script.
Mar 3 2020, 9:47 PM · Restricted Project
Charusso added a comment to D69746: [analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script.

Thanks everyone! I hope the Analyzer developers start to use the wonderful features from Clang-Tidy.

Mar 3 2020, 9:47 PM · Restricted Project
Charusso added inline comments to D69726: [analyzer] DynamicSize: Store the dynamic size.
Mar 3 2020, 9:15 PM · Restricted Project
Charusso updated the diff for D69726: [analyzer] DynamicSize: Store the dynamic size.
  • Set the size properly.
  • Add new debug.ExprInspection patterns: region, size, element count.
  • clang-format -i ExprInspectionChecker.cpp.
  • Having no idea what is the single regression in tests.
Mar 3 2020, 9:15 PM · Restricted Project
Charusso added a comment to D75529: [analyzer] Limit UCharMax to min of max uchar or max int.

Could you add a test please? We really need tests for every patch.

Mar 3 2020, 9:05 AM · Restricted Project
Charusso accepted D75514: [Analyzer] Only add container note tags to the operations of the affected container.

Cool, that one a lucky one! I think the SymbolRef based world also working, just at some point it could not scale because other systems are region based... For now, it is a much better solution, and this pattern to overload the callback with all the interestingness seems like the standard way of using NoteTags. Thanks!

Mar 3 2020, 8:52 AM · Restricted Project
Charusso added a comment to D75514: [Analyzer] Only add container note tags to the operations of the affected container.

I believe our path and context sensitive engine is more extensible and precise than checking the source file. Are you sure it scales? I would prefer to tie this information for MemRegions, rather than arbitrary places in the source code. My knowledge is very weak in this checker but I have changed from the Tidy world to the Analyzer to enjoy its benefits. Please enjoy these benefits in your work as well.

Mar 3 2020, 5:02 AM · Restricted Project
Charusso added inline comments to D73720: [Analyzer] Use note tags to track container begin and and changes.
Mar 3 2020, 4:35 AM · Restricted Project
Charusso added a comment to D75432: [analyzer][NFC][MallocChecker] Convert many parameters into CallEvent.

I have added green markers to all of your patches as well. I really appreciate the simplification of the MallocChecker. May you would commit it as soon as possible, given that you have nailed what Artem has suggested. Cool^2.

Mar 3 2020, 4:11 AM · Restricted Project
Charusso accepted D75430: [analyzer][NFC] Introduce CXXDeallocatorCall, deploy it in MallocChecker.
Mar 3 2020, 4:11 AM · Restricted Project
Charusso accepted D75431: [analyzer][NFC] Merge checkNewAllocator's paramaters into CXXAllocatorCall.
Mar 3 2020, 4:11 AM · Restricted Project
Charusso accepted D75432: [analyzer][NFC][MallocChecker] Convert many parameters into CallEvent.

Also... as to why I added so much LLVM_UNREACHABLE annotations

Mar 3 2020, 4:11 AM · Restricted Project
Charusso added a comment to D75431: [analyzer][NFC] Merge checkNewAllocator's paramaters into CXXAllocatorCall.

look for a solution better then demonstrated in this patch.

Mar 3 2020, 4:11 AM · Restricted Project
Charusso accepted D68165: [analyzer][MallocChecker][NFC] Split checkPostCall up, deploy CallDescriptionMap.
Mar 3 2020, 4:11 AM · Restricted Project
Charusso added a comment to D68165: [analyzer][MallocChecker][NFC] Split checkPostCall up, deploy CallDescriptionMap.

I wish for a third map, something like ReallocationMap. Other than that it is a great direction, I love it. Thanks!

Mar 3 2020, 4:11 AM · Restricted Project
Charusso added a comment to D75430: [analyzer][NFC] Introduce CXXDeallocatorCall, deploy it in MallocChecker.

Cool! May it worth to mention the corresponding mail from the mailing list in the Summary: http://lists.llvm.org/pipermail/cfe-dev/2020-February/064754.html

Mar 3 2020, 4:11 AM · Restricted Project

Feb 27 2020

Charusso accepted D75271: [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions..

! In D75271#1896223, @Szelethus wrote:
Thinking back, I did have a number of failed attempts to make something a bit less ugly, but the sharp divide between the 2 libraries makes is really-really difficult, and I don't recall alternative solutions being that much better. Either the checker interface gets worse, or the checker registration interface gets so messy that it would severely hurt further improvements in terms of checker dependency development.

Feb 27 2020, 12:23 PM · Restricted Project
Charusso added a comment to D75271: [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions..

It is impossible to use CheckerManager as parameter for shouldRegisterXXX() because CheckerRegistry does not have it. If I add CheckerManager to CheckerRegistry then the printXXX() functions will not work because they do not have CheckerManager at all. This patch does not help in printing error message, see D75171. I need a way to solve 44998 by rejecting the checker if the option is disabled and printing an error message.

Feb 27 2020, 10:22 AM · Restricted Project
Charusso added a comment to D75271: [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions..

PS: The CheckerManager also could serve this behavior as registerXXX() already passing around that manager, but I believe the AnalysisManager supposed to manage the analysis.

Feb 27 2020, 9:37 AM · Restricted Project
Charusso added a comment to D75271: [analyzer][NFC] Change LangOptions to CheckerManager in the shouldRegister* functions..

I am so sorry to mention, but we need the AnalysisManager to pass around which manages the analysis, therefore it knows both the LangOptions and AnalyzerOptions. Also this entire callback should be removed ideally: it has to be a virtual function defaulting to return true; and if someone needs this feature could rewrite the behavior. I guess there was some debate whether it should be on by default or not, but for a checker writer and future changes this patch shows that how weak this API is.

Feb 27 2020, 9:31 AM · Restricted Project

Feb 25 2020

Charusso added inline comments to D69746: [analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script.
Feb 25 2020, 3:12 AM · Restricted Project

Feb 24 2020

Charusso updated the diff for D69746: [analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script.
  • Fix.
Feb 24 2020, 7:44 AM · Restricted Project
Charusso added a comment to D69746: [analyzer] FixItHint: Apply and test hints with the Clang-Tidy's script.

Thanks for the reviews! Are we good to go?

Feb 24 2020, 7:44 AM · Restricted Project

Feb 23 2020

Charusso added a comment to D74467: [analyzer] Teach scan-build how to rebuild index.html without analyzing..

That is very unfortunate, but may if you could introduce a bullet-proof ls we could see if the scan-build sub-directory removal is non-alphabetical. I think the latter smells more badly.

Feb 23 2020, 3:43 PM · Restricted Project