NoQ (Artem Dergachev)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 3 2015, 9:16 AM (94 w, 1 d)

Recent Activity

Today

NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

For example,

Fri, Jun 23, 3:52 AM
NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

I'm sure that simplification (($x + N) + M) ~> ($x + (M + N)) is already working in SValBuilder.

No, it is unfortunately not working: I tried to increase ${conj_X} by 1, then again by 1, and I got symbolic expression (${conj_X}+1)+1).

Fri, Jun 23, 2:09 AM

Yesterday

NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

I tried SValBuilder::evalBinOp() first but it did not help too much. It could decide only if I compared the same conjured symbols or different ones, but nothing more. It always gave me UnknownVal. Even if comparing ${conj_X} == ${conj_X} + n where n was a concrete integer. So I have to compare the symbol part and the concrete integer part separately.

In any case, it's not right to have two SValBuilders. Your code simplifies symbolic expressions of numeric types, SValBuilder does the same thing, there's no need to duplicate. It would be much better to move the functionality you need (and already have implemented) directly to SValBuilder.

Thu, Jun 22, 8:12 AM
NoQ added a comment to D30691: [analyzer] Support for naive cross translational unit analysis.

Regarding serializing vs not serializing and now vs later.

Thu, Jun 22, 7:30 AM
NoQ accepted D34502: [analyzer] Do not continue to analyze a path if the constraints contradict with builtin assume.

Hmm, yeah, right :)

Thu, Jun 22, 3:00 AM

Wed, Jun 21

NoQ added a comment to D34102: [analyzer] Add portability package for the checkers..

eg. checkers for portability across linux/bsd should be off on windows by default, checkers for non-portable C++ APIs should be off in plain C code, etc

Is the checker you are moving to portability off and not useful on Windows?

Wed, Jun 21, 4:21 AM
NoQ added inline comments to D33729: [analyzer] lock_guard and unique_lock extension for BlockInCriticalSection Static Analyzer checker.
Wed, Jun 21, 3:11 AM

Tue, Jun 20

NoQ added a comment to D34277: [analyzer] Bump default performance thresholds?.

Gabor makes such a good point. Maybe we should commit the zombie symbols patch as well (:

Tue, Jun 20, 12:34 AM
NoQ added a comment to D34266: Static Analyzer - Localizability Checker: New Localizable APIs for macOS High Sierra & iOS 11.

Hmm, should there be new tests that demonstrate that we cover the new APIs?

Tue, Jun 20, 12:09 AM

Mon, Jun 19

NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

I'm sorry, i'd try to get back to this and unblock your progress as soon as possible.

Mon, Jun 19, 11:15 AM
NoQ accepted D31868: [analyzer] Check NULL pointer dereference issue for memset function.

Thanks, this was very useful, please commit!

Mon, Jun 19, 11:08 AM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Yeah, right, i guess it's mostly about the CFG patch; i was just saying that if, in the end, we don't get scope contexts for all the scopes, this is probably fine - as long as we have *some* of them.

Mon, Jun 19, 10:18 AM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Now to the eureka - am i the only one here who totally forgot about D16403/D19979?

We're working on bringing it back to life right now. But it takes time.

That's totally cool.

Mon, Jun 19, 10:05 AM

Sat, Jun 17

NoQ added a comment to D28953: [analyzer] Eliminate analyzer limitations on symbolic constraint generation.

Hmm, curious, having a look. A couple of blind guesses before i actually understand what's going on:

Sat, Jun 17, 2:33 AM

Fri, Jun 16

NoQ added a comment to D34277: [analyzer] Bump default performance thresholds?.

This was an mixture of internal apple projects (user apps, drivers, deamons, whatever) with a relatively balanced selection of languages and levels of analyzer adoption. They amounted to ~16 hours of analysis CPU time (i.e. 4 hours on a quad-core machine per run). I've also ran it on LLVM separately, and had similar observations. I'm totally welcoming the feedback from other codebases!

Fri, Jun 16, 1:28 PM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

A historical retrospective for Peter: there have been quite a few people, at different moments of time, who wanted a checker callback for entering and exiting "scopes". For example, StackAddrEscapeChecker finds local variables that escape a function by reference, but doesn't find local variables that escape an if-branch or a loop body by reference. The proposed approach involved creating a ScopeContext, a counterpart of StackFrameContext that gets constructed and put on the stack of location contexts when a scope is entered and popped when the scope is exited, similarly to how StackFrameContext is put on the stack of location contexts to represent the function call. Because a lot of events occur at scope boundaries, that'd be a great addition. However, the patches i mentioned are not yet done because some corner-cases were not handled. Whether you should complete these patches, as part of your GSoC project - i do not know, it may be harder than it seems. But they'd certainly serve as a good source of inspiration.

Fri, Jun 16, 1:16 PM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Uhm, it just striked me where this is going. So, generally, we're bound to track when we're entering the loop and exiting the loop. And we have troubles with that, because just by looking at the block we can't say in what loops we are.

Fri, Jun 16, 12:41 PM
NoQ updated the diff for D34102: [analyzer] Add portability package for the checkers..

Whoops, forgot to actually attach the patch. Here.

Fri, Jun 16, 8:23 AM
NoQ added a comment to D34102: [analyzer] Add portability package for the checkers..

Here's a version of the patch without .unix. I'd still hate it to re-add the subpackages if we decide to turn some portability checkers on and off depending on language/platform (eg. checkers for portability across linux/bsd should be off on windows by default, checkers for non-portable C++ APIs should be off in plain C code, etc.).

Fri, Jun 16, 8:21 AM
NoQ created D34277: [analyzer] Bump default performance thresholds?.
Fri, Jun 16, 6:47 AM

Mon, Jun 12

NoQ added inline comments to D34102: [analyzer] Add portability package for the checkers..
Mon, Jun 12, 9:13 AM
NoQ added inline comments to D34102: [analyzer] Add portability package for the checkers..
Mon, Jun 12, 6:24 AM
NoQ created D34102: [analyzer] Add portability package for the checkers..
Mon, Jun 12, 6:23 AM

Mon, Jun 5

NoQ updated the diff for D33828: [analyzer] Don't crash when the code tries to construct an Objective-C object in AllocaRegion..

Turn the comment into an assertion.

Mon, Jun 5, 7:01 AM

Fri, Jun 2

NoQ created D33828: [analyzer] Don't crash when the code tries to construct an Objective-C object in AllocaRegion..
Fri, Jun 2, 6:21 AM

Thu, Jun 1

NoQ added a comment to D31868: [analyzer] Check NULL pointer dereference issue for memset function.

The code looks good now! A few minor comments and we can commit this :)

Thu, Jun 1, 4:34 AM
NoQ added a comment to D30489: [analyzer] catch out of bounds for VLA.

An idea. I believe the safest way to find the bugs you mentioned would be to replace extent-as-a-symbol with extent-as-a-trait.

Thu, Jun 1, 4:21 AM
NoQ added a comment to D30295: [analyzer] clarify undef shift result when shift count is negative or exceeds the bit width.

I have just one comment and i think it'd be good to land.

Thu, Jun 1, 4:05 AM

Tue, May 30

NoQ added a dependency for D33671: [analyzer] In plist alternate mode, don't add weird control flow pieces from ObjC property declarations to uses.: D32437: [analyzer] Nullability: fix a crash when adding notes inside a synthesized property accessor..
Tue, May 30, 5:08 AM
NoQ added a dependent revision for D32437: [analyzer] Nullability: fix a crash when adding notes inside a synthesized property accessor.: D33671: [analyzer] In plist alternate mode, don't add weird control flow pieces from ObjC property declarations to uses..
Tue, May 30, 5:08 AM
NoQ created D33671: [analyzer] In plist alternate mode, don't add weird control flow pieces from ObjC property declarations to uses..
Tue, May 30, 5:04 AM
NoQ added inline comments to D32437: [analyzer] Nullability: fix a crash when adding notes inside a synthesized property accessor..
Tue, May 30, 2:18 AM
NoQ updated the diff for D32437: [analyzer] Nullability: fix a crash when adding notes inside a synthesized property accessor..

Fix comments.

Tue, May 30, 2:18 AM

Mon, May 29

NoQ added a comment to D30909: [Analyzer] Finish taint propagation to derived symbols of tainted regions.

Yep, fixed indeed.

Mon, May 29, 2:46 PM
NoQ added a comment to D30909: [Analyzer] Finish taint propagation to derived symbols of tainted regions.

We've broken something:

Mon, May 29, 11:56 AM
NoQ closed D30909: [Analyzer] Finish taint propagation to derived symbols of tainted regions.

Uhm, messed up the phabricator link in rL304162, which should have been pointing here but points to D28445 instead.

Mon, May 29, 8:47 AM
NoQ added a comment to D28445: [Analyzer] Extend taint propagation and checking.

Uhm, messed up the phabricator link in rL304162, which should have been pointing to D30909 but points here instead.

Mon, May 29, 8:46 AM
NoQ accepted D30909: [Analyzer] Finish taint propagation to derived symbols of tainted regions.

I'll land this. Thanks again for working on all that stuff!

Mon, May 29, 7:46 AM
NoQ accepted D32592: [Analyzer] Iterator Checker - Part 1: Minimal Checker for a Simple Test Case.

I believe we can move on to the next one :) Just hope we didn't screw up the rebase too much here. Thanks again!

Mon, May 29, 5:29 AM
NoQ accepted D32449: Modifying PthreadLockChecker.cpp to reduce false positives..

I'd commit your patch without the .gitignore change, as it deserves a separate commit and more attention; will have a look at it myself - llvm's and clang's .gitignores have diverged quite a bit.

Mon, May 29, 5:25 AM

Thu, May 25

NoQ added a comment to D32592: [Analyzer] Iterator Checker - Part 1: Minimal Checker for a Simple Test Case.

Sorry, got carried away by GSoC and critical stuff...

Thu, May 25, 12:13 AM

May 23 2017

NoQ added a comment to D32449: Modifying PthreadLockChecker.cpp to reduce false positives..

No-no, all i was trying to say is that there's code in PthreadLockChecker.cpp that you haven't changed, but accidentally reformatted - and this is something we normally try to avoid. Like, for example, changing enum LockingSemantics {...} from vertical to horizontal - that wasn't your intention, it just accidentally happened because you auto-reformatted the whole file. I don't mind these changes, and i didn't mean they introduce any merge conflicts for now, though they tend to do so in the future for other people working on the same code, as we have a few downstream users, and magenta guys who are working on this checker as part of D26342), so most of the time it's better not to introduce unnecessary changes.

May 23 2017, 9:01 AM

May 22 2017

NoQ added a comment to D32449: Modifying PthreadLockChecker.cpp to reduce false positives..

Thanks, this is great! Two more things:

May 22 2017, 12:14 PM

May 20 2017

NoQ added a comment to D32449: Modifying PthreadLockChecker.cpp to reduce false positives..

Thanks! Your code looks very clear now, and it seems correct to me.

May 20 2017, 5:30 AM

May 18 2017

NoQ planned changes to D33191: [analyzer] ObjCGenerics: account for __kindof specifiers met along a chain of casts..

Todo:

  • See if the extra __kindofs leak into diagnostic messages.
  • Test how this behaves in cases (2) and (4), add tests.
  • Add tests for the recursive __kindof specifier merge (i.e. properly merge the second __kindof in NSSet<__kindof NSArray<__kindof NSString>>).
May 18 2017, 9:55 AM
NoQ updated the diff for D33191: [analyzer] ObjCGenerics: account for __kindof specifiers met along a chain of casts..

Added a bit more info in the code comments.

May 18 2017, 9:23 AM
NoQ updated the diff for D33191: [analyzer] ObjCGenerics: account for __kindof specifiers met along a chain of casts..

I think i found a relatively clean way of storing the kindof specifiers, which is within the most-specialized type object itself.

May 18 2017, 9:16 AM

May 17 2017

NoQ updated the diff for D32437: [analyzer] Nullability: fix a crash when adding notes inside a synthesized property accessor..

Automatically pop up from bodyfarm-originated code in PathDiagnosticLocation::getStmt().

May 17 2017, 7:35 AM

May 16 2017

NoQ updated the diff for D33191: [analyzer] ObjCGenerics: account for __kindof specifiers met along a chain of casts..

Cover more cases and be more conservative.

May 16 2017, 8:26 AM

May 15 2017

NoQ created D33191: [analyzer] ObjCGenerics: account for __kindof specifiers met along a chain of casts..
May 15 2017, 5:35 AM

May 12 2017

NoQ added inline comments to D30909: [Analyzer] Finish taint propagation to derived symbols of tainted regions.
May 12 2017, 2:22 AM

May 11 2017

NoQ accepted D33095: [analyzer] Avoid allocation in Std C function modelling..

I guess i was planning for C++ support here, but never reached that far.

May 11 2017, 10:44 PM
NoQ accepted D33092: [analyzer] Add checker to model builtin functions.

Great, thanks!

May 11 2017, 10:42 PM
NoQ added a comment to D33092: [analyzer] Add checker to model builtin functions.

Hmm, shouldn't this be part of BuiltinFunctionChecker aka core.builtin.BuiltinFunctions? We already have __builtin_assume_aligned here (though it doesn't seem to assume anything because that particular assumption is hard to model).

May 11 2017, 3:05 AM

May 10 2017

NoQ added a comment to D30909: [Analyzer] Finish taint propagation to derived symbols of tainted regions.

This is fantastic, thanks! I really like the shape of how it turned out to work.

May 10 2017, 2:57 AM

May 9 2017

NoQ added a comment to D32437: [analyzer] Nullability: fix a crash when adding notes inside a synthesized property accessor..

That wouldn't work this way because we'd have the completely redundant "calling property accessor" piece before that, and "returning..." after that.

I think we should not print "calling" and "returning" for calling into and returning from autogenerated code,

May 9 2017, 11:48 PM
NoQ added a comment to D32437: [analyzer] Nullability: fix a crash when adding notes inside a synthesized property accessor..

What are these? Is there a PR?

May 9 2017, 11:40 PM

May 5 2017

NoQ added a comment to D32592: [Analyzer] Iterator Checker - Part 1: Minimal Checker for a Simple Test Case.

Noticed a few more things.

May 5 2017, 8:19 AM
NoQ added inline comments to D32906: [Analyzer] Iterator Checker - Part 10: Support for iterators passed as parameter.
May 5 2017, 7:57 AM

May 4 2017

NoQ added inline comments to D32592: [Analyzer] Iterator Checker - Part 1: Minimal Checker for a Simple Test Case.
May 4 2017, 5:15 AM
NoQ added a comment to D32592: [Analyzer] Iterator Checker - Part 1: Minimal Checker for a Simple Test Case.

I see the checker going towards what we call "metadata symbols", which seems logical.

May 4 2017, 3:18 AM

May 3 2017

NoQ added a comment to D32449: Modifying PthreadLockChecker.cpp to reduce false positives..

Thanks for uploading this to phabricator and sorry again that i was lost for a while.

May 3 2017, 5:17 AM
NoQ edited reviewers for D32449: Modifying PthreadLockChecker.cpp to reduce false positives., added: NoQ; removed: dergachev.a.

Uhm, i need to do something about this duplicate account. Sorry, I have completely forgotten that the review is already up...

May 3 2017, 4:29 AM
NoQ updated the diff for D32702: [analyzer] Fix 'Memory Error' bugtype capitalization..

Added a reusable bug category.

May 3 2017, 2:08 AM

May 1 2017

NoQ created D32702: [analyzer] Fix 'Memory Error' bugtype capitalization..
May 1 2017, 9:14 AM

Apr 27 2017

NoQ added a comment to D31320: [analyzer] Teach CloneDetection about Qt Meta-Object Compiler.

Thanks! Because LLVM's Illinois license is rather permissive than copyleft, we try to avoid stuff copied from GPL/LGPL software (such as Qt or K3B) in our codebase. The code doesn't seem to have been copy-pasted from a copyleft project, but I guess it's better to rename the file to avoid referencing to K3B, and i added inline comments regarding moc intro comments.

Apr 27 2017, 11:36 PM
D31320: [analyzer] Teach CloneDetection about Qt Meta-Object Compiler now requires changes to proceed.

Could you add a test, like a regular test in test/Analysis/copypaste/? Like, make a file with _moc in it, and demonstrate that the checker doesn't warn, despite having obvious clones otherwise.

Apr 27 2017, 9:13 AM
NoQ accepted D31650: [Analyzer] Detect when function pointer is freed.

Looks good, thanks!

Apr 27 2017, 9:05 AM
NoQ added a comment to D31868: [analyzer] Check NULL pointer dereference issue for memset function.

I've a feeling we need to roll this back a little bit.

Apr 27 2017, 8:45 AM
NoQ added a comment to D32179: [StaticAnalyzer] Move inline counter increaser to inlineCall function.

Yep, this sounds logical!

Apr 27 2017, 8:22 AM
NoQ added a comment to D32592: [Analyzer] Iterator Checker - Part 1: Minimal Checker for a Simple Test Case.

Thank you very much!

Apr 27 2017, 8:11 AM
NoQ added a comment to D31975: [Analyzer] Iterator Checkers.

I've seen the new reviews. A lot of thanks for working on the patch split. I believe it'd eventually benefit everyone, similarly to how everybody benefits from code quality or something like that. I'd try to keep up with the "to split or not to split" discussion a bit below, not sure if it's of much interest since we're already trying this out practically and we'll see how much benefit it brings at the end :) And in any case, it's quite hard to see at first that the "incremental" mindset actually works in practice, as i do know that initially it feels strange at times.

Apr 27 2017, 8:10 AM

Apr 25 2017

NoQ accepted D30771: [analyzer] Teach the MallocChecker about Glib API for two arguments.

This looks great, thanks a lot!

Apr 25 2017, 10:18 AM

Apr 24 2017

NoQ created D32437: [analyzer] Nullability: fix a crash when adding notes inside a synthesized property accessor..
Apr 24 2017, 8:45 AM

Apr 21 2017

NoQ added a comment to D31975: [Analyzer] Iterator Checkers.

I had a look at how hard it is to split the patch.

Apr 21 2017, 3:50 AM

Apr 20 2017

NoQ added inline comments to D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved..
Apr 20 2017, 6:47 AM
NoQ added inline comments to D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved..
Apr 20 2017, 6:46 AM
NoQ added a dependency for D32291: [analyzer] Implement handling array subscript into null pointer, improve null dereference checks for array subscripts: D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved..
Apr 20 2017, 6:45 AM
NoQ added a dependent revision for D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved.: D32291: [analyzer] Implement handling array subscript into null pointer, improve null dereference checks for array subscripts.
Apr 20 2017, 6:45 AM
NoQ created D32291: [analyzer] Implement handling array subscript into null pointer, improve null dereference checks for array subscripts.
Apr 20 2017, 6:44 AM

Apr 19 2017

NoQ added inline comments to D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved..
Apr 19 2017, 11:06 PM
NoQ updated the diff for D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved..

Fix comments!

Apr 19 2017, 11:04 PM
NoQ added a comment to D31975: [Analyzer] Iterator Checkers.
  1. Could you do renaming the checker file in a separate patch, so that we saw an actual diff, not a whole greenish file, here on phabricator?
  2. The invalidated iterator checker looks relatively small (a single check and a few rounds of iterator invalidations), would it be hard to split it up into a separate patch? That'd leave us with just one checker added.
Apr 19 2017, 10:59 PM
NoQ added a comment to D30771: [analyzer] Teach the MallocChecker about Glib API for two arguments.

Yay, now that's a lot cleaner!

Apr 19 2017, 10:11 PM
NoQ added a comment to D31975: [Analyzer] Iterator Checkers.

I think for this case it'd be great to (instead) add comments all over the place (especially in checker callbacks, eg. check[Pre|Post]Call() function bodies) to indicate what check every piece of code is for. That'd be equally easy to review, at least for me, but it'd also help greatly if we start splitting up checkers into modelling and checking parts.

Apr 19 2017, 9:57 PM

Apr 18 2017

NoQ added a comment to D31868: [analyzer] Check NULL pointer dereference issue for memset function.

Wow, so you're doing the binding thing now? Thanks! It was not critical for landing this patch, so you could have fixed comments here, allowing us to commit what's already done, and then proceed with further improvements. It's also easier to review and aligns with the LLVM's policy of incremental development.

Apr 18 2017, 7:17 AM
NoQ added inline comments to D30771: [analyzer] Teach the MallocChecker about Glib API for two arguments.
Apr 18 2017, 7:02 AM
NoQ added inline comments to D30909: [Analyzer] Finish taint propagation to derived symbols of tainted regions.
Apr 18 2017, 6:55 AM

Apr 13 2017

NoQ added a comment to D31541: [analyzer] MisusedMovedObjectChecker: Add a printState() method..

Hmm, i've been thinking of writing a test for this via ExprInspection's clang_analyzer_printState(), however printState() functionality is only enabled in debug builds, and i'm not seeing how to enable the test only on debug builds (there's REQUIRES: but it only seems to have an asserts flag).

Apr 13 2017, 4:17 AM
NoQ added a comment to D31868: [analyzer] Check NULL pointer dereference issue for memset function.

This looks correct! Thanks for taking this up.

Apr 13 2017, 4:09 AM
NoQ updated the diff for D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved..

Remove accidentally added braces in unrelated code.

Apr 13 2017, 12:00 AM

Apr 12 2017

NoQ added inline comments to D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved..
Apr 12 2017, 10:05 AM
NoQ created D31982: [analyzer] Improve suppression for inlined defensive checks when operator& is involved..
Apr 12 2017, 9:55 AM
NoQ added a comment to D31886: [analyzer] Simplify values in binary operations more aggressively.

maybe we want to skip this kind of simplification in case of Z3?

Apr 12 2017, 9:04 AM
NoQ updated the diff for D31886: [analyzer] Simplify values in binary operations more aggressively.

Thanks for the comments! Updated.

Apr 12 2017, 5:23 AM

Apr 10 2017

NoQ added a comment to D30691: [analyzer] Support for naive cross translational unit analysis.

One more obvious observation regarding scan-build: because you are already reading a compilation database, the whole tool is essentially usable in combination with the current scan-build-py (which can create compilation databases). So it's already quite usable, but you're forced to do regular analysis before cross-translation-unit analysis. So all we need is an extra mode in scan-build-py that does the interception and leaves the rest of the work to us, either by piping commands to us directly, or by providing us with a compilation database (if --intercept-first is passed). Having some kind of --intercept-only would solve half of the problems. Of course, ideally the logic that adds the -analyzer* options should also be re-used, but for usability it isn't immediately necessary.

Apr 10 2017, 9:32 AM
NoQ added a comment to D30691: [analyzer] Support for naive cross translational unit analysis.

Yeah, of course, ideally sticking this into scan-build, one way or another, would be great. I understand that it'd require quite a bit of communication with Laszlo. Otherwise we're just duplicating a whole lot of things.

Apr 10 2017, 9:26 AM
NoQ created D31886: [analyzer] Simplify values in binary operations more aggressively.
Apr 10 2017, 8:08 AM

Apr 6 2017

NoQ added a comment to D23418: [analyzer] Added a reusable constraint system to the CloneDetector.
$ cat test.c
#include <stdio.h>
int main() {
  int i = 5;
  {
    int i = i;
    printf("%d\n", i);
  }
  return 0;
}
$ clang test.c
$ ./a.out
32767
$ clang test.c -Xclang -ast-dump
...
`-FunctionDecl 0x7ff82d8eac78 <test.c:2:1, line:9:1> line:2:5 main 'int ()'
  `-CompoundStmt 0x7ff82d8eb070 <col:12, line:9:1>
    |-DeclStmt 0x7ff82d8eadb0 <line:3:3, col:12>
    | `-VarDecl 0x7ff82d8ead30 <col:3, col:11> col:7 i 'int' cinit
    |   `-IntegerLiteral 0x7ff82d8ead90 <col:11> 'int' 5
    |-CompoundStmt 0x7ff82d8eb010 <line:4:3, line:7:3>
    | |-DeclStmt 0x7ff82d8eae78 <line:5:5, col:14>
    | | `-VarDecl 0x7ff82d8eadd8 <col:5, col:13> col:9 used i 'int' cinit
    | |   `-ImplicitCastExpr 0x7ff82d8eae60 <col:13> 'int' <LValueToRValue>
    | |     `-DeclRefExpr 0x7ff82d8eae38 <col:13> 'int' lvalue Var 0x7ff82d8eadd
...
Apr 6 2017, 3:56 AM
NoQ added inline comments to D31320: [analyzer] Teach CloneDetection about Qt Meta-Object Compiler.
Apr 6 2017, 3:40 AM