Page MenuHomePhabricator
Feed Advanced Search

Yesterday

Szelethus accepted D60796: [analyzer] PR41269: SmartPtrModeling..

I think you can land this one if you're comfortable with it! +1 on adding core in the test RUN: lines.

Mon, Apr 22, 4:38 PM · Restricted Project
Szelethus added a comment to D60796: [analyzer] PR41269: SmartPtrModeling..

Yea, something along the lines of SmartPtrModeling would be neat -- logically, if you plan to emit errors down the line, subcheckers should be used for that, in order to enable checkers to depend purely on the modeling part.

Mon, Apr 22, 4:15 PM · Restricted Project
Szelethus updated the diff for D59464: [analyzer] Add an example plugin for checker dependency handling.
  • Move the existing plugin to test/
  • Implement the new plugin in there also
Mon, Apr 22, 9:31 AM · Restricted Project
Szelethus updated the diff for D59465: [analyzer] Add example plugin for checker option handling.

Accidentally uploaded the wrong diff. Rebase on top of D59464.

Mon, Apr 22, 9:31 AM · Restricted Project
Szelethus updated the diff for D59465: [analyzer] Add example plugin for checker option handling.
  • Move the existing plugin to test/
  • Implement the new plugin in there also
Mon, Apr 22, 9:28 AM · Restricted Project
Szelethus committed rC358877: [analyzer][www] Moving MoveChecker out of alpha is no longer an open project..
[analyzer][www] Moving MoveChecker out of alpha is no longer an open project.
Mon, Apr 22, 2:18 AM
Szelethus committed rL358877: [analyzer][www] Moving MoveChecker out of alpha is no longer an open project..
[analyzer][www] Moving MoveChecker out of alpha is no longer an open project.
Mon, Apr 22, 2:18 AM

Fri, Apr 19

Szelethus added a comment to D60796: [analyzer] PR41269: SmartPtrModeling..

This might be an ideal candidate for being hidden by default though (D60925).

Fri, Apr 19, 6:46 PM · Restricted Project
Szelethus committed rL358797: [analyzer] Move UninitializedObjectChecker out of alpha.
[analyzer] Move UninitializedObjectChecker out of alpha
Fri, Apr 19, 4:36 PM
Szelethus committed rC358797: [analyzer] Move UninitializedObjectChecker out of alpha.
[analyzer] Move UninitializedObjectChecker out of alpha
Fri, Apr 19, 4:36 PM
Szelethus closed D58573: [analyzer] Move UninitializedObjectChecker out of alpha.
Fri, Apr 19, 4:36 PM · Restricted Project
Szelethus added a reviewer for D60925: [analyzer] Don't display implementation checkers under -analyzer-checker-help, but do under the new flag -analyzer-checker-help-hidden: o.gyorgy.
Fri, Apr 19, 4:27 PM · Restricted Project
Szelethus created D60925: [analyzer] Don't display implementation checkers under -analyzer-checker-help, but do under the new flag -analyzer-checker-help-hidden.
Fri, Apr 19, 3:37 PM · Restricted Project
Szelethus accepted D60796: [analyzer] PR41269: SmartPtrModeling..
In D60796#1472587, @NoQ wrote:

On second thought, maybe let's restrict the scope to just bool conversions (don't model .get() and .release() yet) but enable the check by default immediately?

It's still bad that we don't explain why if (P) takes a false branch for a moved-from pointer P, but it's not that bad, because it's "just" a control-flow dependency of the bug; there won't be any actual bug reports about some bool being false (hopefully nobody would ever try to divide by such bool), but there may be actual bug reports about a pointer being null (eg., when it's dereferenced).

This way we will address the false positive quickly and hopefully don't cause too much trouble.

Fri, Apr 19, 2:52 PM · Restricted Project
Szelethus added a comment to D57860: [analyzer] Validate checker option names and values.

Ping^2

Fri, Apr 19, 2:23 PM · Restricted Project
Szelethus added a comment to D57858: [analyzer] Add a new frontend flag to display all checker options.

Ping^2

Fri, Apr 19, 2:23 PM · Restricted Project
Szelethus added a comment to D58573: [analyzer] Move UninitializedObjectChecker out of alpha.

Gentle ping.

Fri, Apr 19, 6:11 AM · Restricted Project
Szelethus committed rL358752: [analyzer][NFC] Reimplement checker options.
[analyzer][NFC] Reimplement checker options
Fri, Apr 19, 5:33 AM
Szelethus committed rC358752: [analyzer][NFC] Reimplement checker options.
[analyzer][NFC] Reimplement checker options
Fri, Apr 19, 5:33 AM
Szelethus closed D57855: [analyzer][NFC] Reimplement checker options.
Fri, Apr 19, 5:33 AM · Restricted Project
Szelethus committed rL358750: [analyzer] Fix an assertion failure if plugins added dependencies.
[analyzer] Fix an assertion failure if plugins added dependencies
Fri, Apr 19, 4:00 AM
Szelethus committed rC358750: [analyzer] Fix an assertion failure if plugins added dependencies.
[analyzer] Fix an assertion failure if plugins added dependencies
Fri, Apr 19, 4:00 AM
Szelethus closed D59461: [analyzer] Fix an assertion failure if plugins added dependencies.
Fri, Apr 19, 4:00 AM · Restricted Project

Thu, Apr 18

Szelethus committed rC358695: [analyzer][NFC] Prefer binary searches in CheckerRegistry.
[analyzer][NFC] Prefer binary searches in CheckerRegistry
Thu, Apr 18, 10:34 AM
Szelethus committed rL358695: [analyzer][NFC] Prefer binary searches in CheckerRegistry.
[analyzer][NFC] Prefer binary searches in CheckerRegistry
Thu, Apr 18, 10:34 AM
Szelethus closed D59459: [analyzer][NFC] Prefer binary searches in CheckerRegistry.
Thu, Apr 18, 10:34 AM · Restricted Project, Restricted Project
Szelethus committed rL358694: [analyzer][NFC] Clang-format CheckerRegistry.
[analyzer][NFC] Clang-format CheckerRegistry
Thu, Apr 18, 10:34 AM
Szelethus committed rC358694: [analyzer][NFC] Clang-format CheckerRegistry.
[analyzer][NFC] Clang-format CheckerRegistry
Thu, Apr 18, 10:34 AM
Szelethus closed D59458: [analyzer][NFC] Clang-format CheckerRegistry.
Thu, Apr 18, 10:33 AM · Restricted Project
Szelethus committed rC358676: [analyzer][NFC] Use capital variable names, move methods out-of-line, rename….
[analyzer][NFC] Use capital variable names, move methods out-of-line, rename…
Thu, Apr 18, 8:17 AM
Szelethus committed rL358676: [analyzer][NFC] Use capital variable names, move methods out-of-line, rename….
[analyzer][NFC] Use capital variable names, move methods out-of-line, rename…
Thu, Apr 18, 8:17 AM
Szelethus closed D59457: [analyzer][NFC] Use capital variable names, move methods out-of-line, rename some in CheckerRegistry.
Thu, Apr 18, 8:17 AM · Restricted Project, Restricted Project
Szelethus updated subscribers of D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

I wanted to do this for the longest time, but @george.karpenkov was very much against it. Is this desired? D52735#1251344

Thu, Apr 18, 3:22 AM · Restricted Project

Wed, Apr 17

Szelethus committed rC358609: [analyzer] PR41185: Fix regression where __builtin_* functions weren't….
[analyzer] PR41185: Fix regression where __builtin_* functions weren't…
Wed, Apr 17, 12:57 PM
Szelethus committed rL358609: [analyzer] PR41185: Fix regression where __builtin_* functions weren't….
[analyzer] PR41185: Fix regression where __builtin_* functions weren't…
Wed, Apr 17, 12:57 PM
Szelethus closed D59812: [analyzer] PR41185: Fix regression where __builtin_* functions weren't recognized.
Wed, Apr 17, 12:56 PM · Restricted Project, Restricted Project
Szelethus added inline comments to D60796: [analyzer] PR41269: SmartPtrModeling..
Wed, Apr 17, 12:29 PM · Restricted Project
Szelethus updated the diff for D59812: [analyzer] PR41185: Fix regression where __builtin_* functions weren't recognized.

Uhh, sorry for the spam. Realized that these are not path sensitive checkers. Removed the core packages from the invocations. Actual logic of the patch is untouched.

Wed, Apr 17, 12:21 PM · Restricted Project, Restricted Project
Szelethus updated the summary of D59812: [analyzer] PR41185: Fix regression where __builtin_* functions weren't recognized.
Wed, Apr 17, 12:15 PM · Restricted Project, Restricted Project
Szelethus updated the diff for D59812: [analyzer] PR41185: Fix regression where __builtin_* functions weren't recognized.

Implemented the fix I proposed in my earlier comment. While I was there, I prettified some of the other tests, and also made sure that the core package is enabled in their run lines.

Wed, Apr 17, 12:13 PM · Restricted Project, Restricted Project
Szelethus commandeered D59812: [analyzer] PR41185: Fix regression where __builtin_* functions weren't recognized.

Consider it done! In a little while.

Wed, Apr 17, 11:38 AM · Restricted Project, Restricted Project
Szelethus added a comment to D60796: [analyzer] PR41269: SmartPtrModeling..

The patch looks OK in general! Left some comments inline, my main concern is whether this checker actually depends on MoveChecker or not.

Wed, Apr 17, 9:24 AM · Restricted Project

Tue, Apr 16

Szelethus updated the diff for D59459: [analyzer][NFC] Prefer binary searches in CheckerRegistry.

Avoid past-the-end iterator dereference, add it to the assert.

Tue, Apr 16, 5:34 AM · Restricted Project, Restricted Project
Szelethus accepted D60739: [analyzer] NFC: Re-use reusable unittest mocks..

Yes please!! Wanted to do this for RegisterCustomCheckers.cpp for a while (moving the general stuff to a header file), to have unit tests for checker dependencies, but I'll sort that out myself when I get to it. Cheers!

Tue, Apr 16, 1:04 AM · Restricted Project, Restricted Project

Thu, Apr 11

Szelethus added inline comments to D59459: [analyzer][NFC] Prefer binary searches in CheckerRegistry.
Thu, Apr 11, 2:55 PM · Restricted Project, Restricted Project
Szelethus updated the diff for D59459: [analyzer][NFC] Prefer binary searches in CheckerRegistry.

Change asserts according to reviewer feedback.

Thu, Apr 11, 2:55 PM · Restricted Project, Restricted Project
Szelethus updated the diff for D58573: [analyzer] Move UninitializedObjectChecker out of alpha.

Moved the checker to optin.cplusplus.

Thu, Apr 11, 5:52 AM · Restricted Project
Szelethus planned changes to D59465: [analyzer] Add example plugin for checker option handling.

I'll move this, and the already existing plugin to test/ or unittest/.

Thu, Apr 11, 5:01 AM · Restricted Project
Szelethus added a comment to D57858: [analyzer] Add a new frontend flag to display all checker options.

Ping.

Thu, Apr 11, 4:59 AM · Restricted Project
Szelethus added a comment to D57860: [analyzer] Validate checker option names and values.

Ping.

Thu, Apr 11, 4:58 AM · Restricted Project

Wed, Apr 10

Szelethus accepted D59121: [analyzer] Fix macro names in diagnostics within bigger macros..

LGTM! Thanks!

Wed, Apr 10, 3:15 PM · Restricted Project
Szelethus added a comment to D58367: [analyzer] NFC: Improve upon the concept of BugReporterVisitor..

Hmmm, interesting. Could there be an issue with NoteTag not being trivially destructible?

Wed, Apr 10, 3:07 PM · Restricted Project, Restricted Project
Szelethus added inline comments to D60281: [analyzer] Add docs for cplusplus.InnerPointer.
Wed, Apr 10, 3:01 PM · Restricted Project
Szelethus added a comment to D59555: [analyzer] Add yaml parser to GenericTaintChecker.

Sorry, I rushed my earlier comment -- I definitely think that we should get rid of the UINT_MAX thing before landing this.

Wed, Apr 10, 2:59 PM · Restricted Project
Szelethus accepted D60112: [analyzer] Treat write into a top-level parameter variable with destructor as escape..

Okay, I played around with this patch, I see now where this is going! LGTM!

Wed, Apr 10, 2:47 PM · Restricted Project
Szelethus added a comment to D59555: [analyzer] Add yaml parser to GenericTaintChecker.

We agreed to disagree on the static function stuff -- it doesn't really matter, and I don't insist. I have no objections against this patch, great job! I won't formally accept to make it stand out a little more. Thanks!

Wed, Apr 10, 10:01 AM · Restricted Project

Sun, Apr 7

Szelethus accepted D60281: [analyzer] Add docs for cplusplus.InnerPointer.

Woohoo!

Sun, Apr 7, 11:09 AM · Restricted Project

Tue, Apr 2

Szelethus accepted D60110: [analyzer] When failing to evaluate a __builtin_constant_p, presume it's false..

LGTM!

Tue, Apr 2, 4:40 AM · Restricted Project, Restricted Project
Szelethus added a comment to D60112: [analyzer] Treat write into a top-level parameter variable with destructor as escape..

Woah, the code looks amazing, cheers on the refactoring! I'll be honest, I'm struggling a bit with the sentence "we're now in the top frame". In order, I don't understand what does

  • we
  • now
  • in the top frame

mean. "Top-level argument" is another one -- Do we have precise definitions for there terms?

Tue, Apr 2, 4:39 AM · Restricted Project
Szelethus added a comment to D58573: [analyzer] Move UninitializedObjectChecker out of alpha.

One heuristic that we could use is to ignore inherited data members optionally. Does that sound any good?

Tue, Apr 2, 1:41 AM · Restricted Project

Sun, Mar 31

Szelethus updated subscribers of D59934: Compare SourceLocations from different TUs by FileID.

Hmm. Is your clang recent enough to contain @bruntib's patch D57892? Is it possible that this patch solves the same issue? With this patch applied, are you able to get a macro expansions from a different TU in the plist output, or does this patch only resolve the regression?

Sun, Mar 31, 4:55 AM · Restricted Project
Szelethus added a comment to D59934: Compare SourceLocations from different TUs by FileID.

I would still like to learn more about this issue. I am somewhat afraid that the our macro expansion is faulty. Can you provide a stacktrace maybe?

Sun, Mar 31, 12:32 AM · Restricted Project

Fri, Mar 29

Szelethus added a comment to D58573: [analyzer] Move UninitializedObjectChecker out of alpha.

Ping^2

Fri, Mar 29, 6:28 AM · Restricted Project
Szelethus added a comment to D59861: [analyzer] NFC: Replace Taint API with a usual inter-checker communication API?.

Also, you might as well clang-format the new files, since we already messed with git blame.

Fri, Mar 29, 3:19 AM · Restricted Project

Thu, Mar 28

Szelethus added a reviewer for D59934: Compare SourceLocations from different TUs by FileID: Szelethus.

Hi!

This issue came up during the generation BugReports of BugPaths containing macro-expansions, where the spelling location and expansion locations were in different files.
With this change, we make such SourceLocations comparable by their FileIDs.

Thu, Mar 28, 2:21 PM · Restricted Project
Szelethus removed a reviewer for D59934: Compare SourceLocations from different TUs by FileID: Szelethus.
Thu, Mar 28, 2:21 PM · Restricted Project
Szelethus accepted D59861: [analyzer] NFC: Replace Taint API with a usual inter-checker communication API?.

"putting all such stuff into the ProgramState class clearly doesn't scale, but we still didn't come up with anything better, so let's just put it in the header and see if a better design suddenly emerges in the future after we do it a few hundred times"

Thu, Mar 28, 3:52 AM · Restricted Project
Szelethus accepted D59901: [analyzer] PR41239: Fix a crash on invalid source location in NoStoreFuncVisitor..

An assert would be real nice in SourceManager, we should definitely add that, since some callbacks don't even receive a CallEvent object. My checker runs on checkPostCall, and also checks where fields lie in a system header.

Thu, Mar 28, 2:46 AM · Restricted Project, Restricted Project

Wed, Mar 27

Szelethus added a comment to D59457: [analyzer][NFC] Use capital variable names, move methods out-of-line, rename some in CheckerRegistry.

Ping.

Wed, Mar 27, 10:29 AM · Restricted Project, Restricted Project
Szelethus accepted D58367: [analyzer] NFC: Improve upon the concept of BugReporterVisitor..

Amazing work! Thanks!

Wed, Mar 27, 9:52 AM · Restricted Project, Restricted Project

Tue, Mar 26

Szelethus updated the summary of D57858: [analyzer] Add a new frontend flag to display all checker options.
Tue, Mar 26, 6:56 AM · Restricted Project
Szelethus added inline comments to D59555: [analyzer] Add yaml parser to GenericTaintChecker.
Tue, Mar 26, 5:12 AM · Restricted Project
Szelethus added a comment to D59555: [analyzer] Add yaml parser to GenericTaintChecker.

Why is it better not to use static functions/variables? Has it any performance impact?

Tue, Mar 26, 5:09 AM · Restricted Project
Szelethus requested changes to D59812: [analyzer] PR41185: Fix regression where __builtin_* functions weren't recognized.

Please add a testcase on which the checker crashed, but this patch resolves it.

Tue, Mar 26, 5:03 AM · Restricted Project, Restricted Project
Szelethus accepted D59279: [Analyzer] Checker for non-determinism caused by iteration of unordered container of pointers.

Other than that, LGTM, thanks! Please, again, let @NoQ have the final say.

Tue, Mar 26, 4:37 AM · Restricted Project

Mon, Mar 25

Szelethus accepted D59622: [analyzer] C++17: PR41142: Ignore transparent InitListExprs in ExprEngine as well..
Mon, Mar 25, 9:54 AM · Restricted Project
Szelethus requested changes to D59516: [analyzer] Add custom filter functions for GenericTaintChecker.

Same thing.

Mon, Mar 25, 6:12 AM · Restricted Project
Szelethus added a comment to D59555: [analyzer] Add yaml parser to GenericTaintChecker.

I think the idea is awesome, thanks!

Mon, Mar 25, 6:01 AM · Restricted Project

Mar 23 2019

Szelethus added a comment to D59465: [analyzer] Add example plugin for checker option handling.

Would you be more comfortable with this patch I didn't touch the examples folder?

Mar 23 2019, 3:54 AM · Restricted Project
Szelethus added a comment to D57858: [analyzer] Add a new frontend flag to display all checker options.

This patch isn't intended for end users, which is why -analyzer-checker-option-help is a frontend flag -- besides, some of the plain frontend flags aren't either. It is purely for development purposes, though exposing an end user friendly subset of these through a driver flag would be cool.

Mar 23 2019, 3:48 AM · Restricted Project
Szelethus added a comment to D57860: [analyzer] Validate checker option names and values.

I think it would be better if the default for compatibility mode were 'true'. That way this change will be backwards compatible and clients who want to enforce stricter checking could enable it. Setting compatibility mode to be true in the driver is not sufficient since many build systems call the frontend directly.

Mar 23 2019, 3:41 AM · Restricted Project

Mar 22 2019

Szelethus added a comment to D59279: [Analyzer] Checker for non-determinism caused by iteration of unordered container of pointers.

Although, as you rightly pointed out that ordered sets of pointers are as non-deterministic as unordered ones.

Mar 22 2019, 12:27 AM · Restricted Project

Mar 21 2019

Szelethus added a comment to D58573: [analyzer] Move UninitializedObjectChecker out of alpha.

Ping, @NoQ, if we settled on optin.cplusplus, would you be fine with this patch?

Mar 21 2019, 6:06 AM · Restricted Project

Mar 20 2019

Szelethus retitled D57855: [analyzer][NFC] Reimplement checker options from [analyzer] Reimplement checker options to [analyzer][NFC] Reimplement checker options.
Mar 20 2019, 4:21 AM · Restricted Project

Mar 19 2019

Szelethus added a reviewer for D59464: [analyzer] Add an example plugin for checker dependency handling: dcoughlin.
Mar 19 2019, 11:22 AM · Restricted Project
Szelethus added a reviewer for D58065: [analyzer] Document the frontend library: dcoughlin.
Mar 19 2019, 5:19 AM · Restricted Project
Szelethus requested changes to D59516: [analyzer] Add custom filter functions for GenericTaintChecker.

I'm very much guilty of doing functional and refactoring changes within the same patch, but I think working on GenericTaintChecker AND in the same patch doing (seemingly unrelated) function name changes in ProgramState might be overkill -- Could you please divide this patch into smaller parts please?

Mar 19 2019, 4:30 AM · Restricted Project
Szelethus added a comment to D59457: [analyzer][NFC] Use capital variable names, move methods out-of-line, rename some in CheckerRegistry.

Please rename the patch. Its name does not really express its content.

Mar 19 2019, 2:36 AM · Restricted Project, Restricted Project
Szelethus retitled D59457: [analyzer][NFC] Use capital variable names, move methods out-of-line, rename some in CheckerRegistry from [analyzer][NFC] Use capital variable names in CheckerRegistry to [analyzer][NFC] Use capital variable names, move methods out-of-line, rename some in CheckerRegistry.
Mar 19 2019, 2:30 AM · Restricted Project, Restricted Project

Mar 16 2019

Szelethus updated the summary of D59464: [analyzer] Add an example plugin for checker dependency handling.
Mar 16 2019, 1:35 PM · Restricted Project
Szelethus removed a child revision for D57855: [analyzer][NFC] Reimplement checker options: D57858: [analyzer] Add a new frontend flag to display all checker options.
Mar 16 2019, 1:08 PM · Restricted Project
Szelethus edited parent revisions for D57858: [analyzer] Add a new frontend flag to display all checker options, added: 1; removed: 1.
Mar 16 2019, 1:08 PM · Restricted Project
Szelethus added a child revision for D59195: [analyzer] Remove the default value arg from getChecker*Option: D57858: [analyzer] Add a new frontend flag to display all checker options.
Mar 16 2019, 1:08 PM · Restricted Project
Szelethus updated the diff for D57858: [analyzer] Add a new frontend flag to display all checker options.

Add a test case for then checker plugin.

Mar 16 2019, 1:06 PM · Restricted Project
Szelethus updated the diff for D59195: [analyzer] Remove the default value arg from getChecker*Option.

Remove the default argument from the plugin, also add a test case for it.

Mar 16 2019, 1:02 PM · Restricted Project
Szelethus updated the diff for D57860: [analyzer] Validate checker option names and values.

Add a test case for checker plugins.

Mar 16 2019, 12:52 PM · Restricted Project
Szelethus updated the diff for D59195: [analyzer] Remove the default value arg from getChecker*Option.

Rebase.

Mar 16 2019, 12:52 PM · Restricted Project
Szelethus removed a child revision for D57855: [analyzer][NFC] Reimplement checker options: D57922: [analyzer] Insert checker options into AnalyzerOption::ConfigTable.
Mar 16 2019, 12:47 PM · Restricted Project
Szelethus edited parent revisions for D57922: [analyzer] Insert checker options into AnalyzerOption::ConfigTable, added: 1; removed: 1.
Mar 16 2019, 12:47 PM · Restricted Project
Szelethus added a child revision for D59465: [analyzer] Add example plugin for checker option handling: D57922: [analyzer] Insert checker options into AnalyzerOption::ConfigTable.
Mar 16 2019, 12:47 PM · Restricted Project