Page MenuHomePhabricator

NoQ (Artem Dergachev)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 3 2015, 9:16 AM (350 w, 4 d)

Recent Activity

Sat, May 21

NoQ added a reviewer for D126131: [Clang][AST] BindingDecl ASTDump for tuple like structure: steveire.

It looks like this class is used for more than dumping. History digging points to @steveire who introduced this class in order to re-use it for ASTMatcher traversal. Stephen, does this look like the right thing to do? Holding vars aren't visible in the source, should they be skipped in matcher traversal when they are set up to skip invisible nodes?

Sat, May 21, 12:57 PM · Restricted Project, Restricted Project

Fri, May 20

NoQ added a reviewer for D126097: [clang-tidy] Adds the NSDateFormatter checker to clang-tidy: usama54321.
Fri, May 20, 4:22 PM · Restricted Project, Restricted Project
NoQ added a comment to D126034: [clang-tidy] bugfix in InfiniteLoopCheck to not print warnings for unevaluated loops.

Thx Dmitry!

Fri, May 20, 4:21 PM · Restricted Project, Restricted Project, Restricted Project
NoQ added a reviewer for D126034: [clang-tidy] bugfix in InfiniteLoopCheck to not print warnings for unevaluated loops: t-rasmud.
Fri, May 20, 4:19 PM · Restricted Project, Restricted Project, Restricted Project
NoQ added a comment to D126097: [clang-tidy] Adds the NSDateFormatter checker to clang-tidy.

Looks awesome!

Fri, May 20, 4:18 PM · Restricted Project, Restricted Project
NoQ retitled D126097: [clang-tidy] Adds the NSDateFormatter checker to clang-tidy from Adds the NSDateFormatter checker to clang-tidy to [clang-tidy] Adds the NSDateFormatter checker to clang-tidy.
Fri, May 20, 4:13 PM · Restricted Project, Restricted Project

Thu, May 19

NoQ retitled D126034: [clang-tidy] bugfix in InfiniteLoopCheck to not print warnings for unevaluated loops from bugfix in InfiniteLoopCheck to not print warnings for unevaluated loops to [clang-tidy] bugfix in InfiniteLoopCheck to not print warnings for unevaluated loops.
Thu, May 19, 5:20 PM · Restricted Project, Restricted Project, Restricted Project

Tue, May 17

NoQ accepted D125840: [Analyzer] Removed extra space from NSErrorChecker debug message and updated relevant tests.

Thanks! I'll commit.

Tue, May 17, 4:07 PM · Restricted Project, Restricted Project

Tue, May 10

NoQ added a comment to D125318: [analyzer] Add UnarySymExpr.

Looks great!

Tue, May 10, 9:05 PM · Restricted Project, Restricted Project

Wed, May 4

NoQ added a comment to D124674: [analyzer] Indicate if a parent state is infeasible.

Yes, we've discussed this before, and I'm very much in favor of this change. This is assertion removal, and the assertion has been really useful back in the day, but the assertion doesn't seem to be realistic to maintain with all the new logic in the constraint solver coming in in recent years.

Wed, May 4, 10:41 AM · Restricted Project, Restricted Project

Thu, Apr 28

NoQ added inline comments to D122285: [analyzer] Add path note tags to standard library function summaries..
Thu, Apr 28, 5:35 PM · Restricted Project, Restricted Project
NoQ added inline comments to D124244: [analyzer] add StoreToImmutable and ModelConstQualifiedReturn checkers.
Thu, Apr 28, 2:14 PM · Restricted Project, Restricted Project
NoQ added inline comments to D103096: [analyzer] Implement cast for ranges of symbolic integers.
Thu, Apr 28, 1:54 PM · Restricted Project, Restricted Project

Wed, Apr 27

NoQ accepted D124461: [Analyzer] Remove undefined function.

Thanks!

Wed, Apr 27, 11:23 AM · Restricted Project, Restricted Project

Tue, Apr 26

NoQ added a comment to D123352: [analyzer] Add FixItHint to `nullability.NullReturnedFromNonnull` and `nullability.NullableReturnedFromNonnull`.

I'm worried that even if the warning is correct, the suggested fix is not necessarily the right solution.

Tue, Apr 26, 4:59 PM · Restricted Project, Restricted Project

Apr 12 2022

NoQ added inline comments to D122285: [analyzer] Add path note tags to standard library function summaries..
Apr 12 2022, 12:25 PM · Restricted Project, Restricted Project
NoQ added inline comments to D122285: [analyzer] Add path note tags to standard library function summaries..
Apr 12 2022, 12:24 PM · Restricted Project, Restricted Project

Apr 5 2022

NoQ added a comment to D122841: [analyzer] Add option for AddrSpace in core.NullDereference check.

I looked up the history. I believe this refers to https://clang.llvm.org/docs/LanguageExtensions.html#memory-references-to-specified-segments:

Apr 5 2022, 9:39 PM · Restricted Project, Restricted Project
NoQ added a comment to D122285: [analyzer] Add path note tags to standard library function summaries..

I think interestingness definitely requires more work. In particular, in null dereference from getenv(), the note should be unprunable. But we can't control prunability dynamically yet, so it requires a bit more work. So I think this patch is ok to go and I'll hopefully follow up with more interestingness logic.

Apr 5 2022, 9:27 PM · Restricted Project, Restricted Project
NoQ updated the diff for D122285: [analyzer] Add path note tags to standard library function summaries..
  • Eliminate notes on known paths.
  • Add some documentation for the new class.
    • Mostly moved from existing documentation for the entire summary class.
    • Fix incorrect assessment that Exploded Graph is a tree. It's not even acyclic!
  • Fix clang-format warnings.
Apr 5 2022, 9:23 PM · Restricted Project, Restricted Project
NoQ accepted D123155: [analyzer] Expose Taint.h to plugins.

Looks good. I never intended taint to be inaccessible from plugins. Probably there are other headers in lib/StaticAnalyzer/Checkers that deserve the same treatment.

Apr 5 2022, 8:04 PM · Restricted Project, Restricted Project

Mar 29 2022

NoQ accepted D122513: [analyzer] Fix "RhsLoc and LhsLoc bitwidth must be same".

Other than that, looks great now!

Mar 29 2022, 12:59 PM · Restricted Project, Restricted Project
NoQ added inline comments to D122513: [analyzer] Fix "RhsLoc and LhsLoc bitwidth must be same".
Mar 29 2022, 12:58 PM · Restricted Project, Restricted Project

Mar 28 2022

NoQ added a comment to D122513: [analyzer] Fix "RhsLoc and LhsLoc bitwidth must be same".

getSVal is probably not at fault, it simply retrieves the value it was previously told to put there, it doesn't care what the value is. You probably want to look at ExprEngine::VisitCast().

Mar 28 2022, 4:29 PM · Restricted Project, Restricted Project
NoQ added a comment to D122343: Support ObjC Method call in enforce_tcb checks.

Great! I'll commit.

Mar 28 2022, 1:30 PM · Restricted Project, Restricted Project
NoQ added a comment to D122513: [analyzer] Fix "RhsLoc and LhsLoc bitwidth must be same".

I mean, regardless of whether we need to report a warning or an error against this code, the AST says that the RHS type and the LHS type are the same. This means that the same should have applied to our SVals that represent LHS and RHS, rendering std::max(APSIntType(LHSValue), APSIntType(RHSValue)) redundant. So I suspect that the problem is not that we're not std::maxing hard enough, the problem is that our values weren't correct in the first place, so I think you need to take a look at the transfer function corresponding to statement

ImplicitCastExpr 0x118f2040 <col:18, col:26> '__attribute__((address_space(3))) int *' <AddressSpaceConversion>

...and see why didn't it cause the type of the SVal to be updated with the address space attribute.

Mar 28 2022, 1:12 PM · Restricted Project, Restricted Project

Mar 25 2022

NoQ added a comment to D122513: [analyzer] Fix "RhsLoc and LhsLoc bitwidth must be same".

Why doesn't the AST handle this for us through implicit casts? Do we really need to duplicate type promotion logic in the static analyzer?

Mar 25 2022, 5:05 PM · Restricted Project, Restricted Project

Mar 23 2022

NoQ planned changes to D122285: [analyzer] Add path note tags to standard library function summaries..

Ok there's actually a huge bug in this patch, namely we can't say "Assuming..." if there's no state split (i.e., when we know from the start which branch is taken so we don't have to assume). I'll fix.

Mar 23 2022, 8:15 PM · Restricted Project, Restricted Project
NoQ accepted D122343: Support ObjC Method call in enforce_tcb checks.

Looks great, thanks! I'll wait a bit to see if other folks have something to say about this and then commit the patch for you.

Mar 23 2022, 4:23 PM · Restricted Project, Restricted Project
NoQ added a comment to D122343: Support ObjC Method call in enforce_tcb checks.

Looks great! It might make sense to add tests to test/Sema/attr-enforce-tcb-errors.cpp to ensure that attribute conflicts are resolved correctly on Objective-C methods but also it's not like we've changed anything there. I have only one tiny nitpick.

Mar 23 2022, 1:40 PM · Restricted Project, Restricted Project
NoQ edited reviewers for D122343: Support ObjC Method call in enforce_tcb checks, added: NoQ, t-rasmud; removed: dergachev.a, vsavchenko.
Mar 23 2022, 1:37 PM · Restricted Project, Restricted Project

Mar 22 2022

NoQ accepted D122277: [analyzer] Fix crash in RangedConstraintManager.cpp.

Thanks! I agree that this assertion doesn't make much sense. Judging by the name, the function should be able to handle all symbols.

Mar 22 2022, 10:05 PM · Restricted Project, Restricted Project
NoQ added inline comments to D122285: [analyzer] Add path note tags to standard library function summaries..
Mar 22 2022, 10:03 PM · Restricted Project, Restricted Project
NoQ requested review of D122285: [analyzer] Add path note tags to standard library function summaries..
Mar 22 2022, 10:00 PM · Restricted Project, Restricted Project
NoQ added inline comments to D122150: [clang][analyzer] Add checker for bad use of 'errno'..
Mar 22 2022, 10:48 AM · Restricted Project, Restricted Project
NoQ added a comment to D120134: [analyzer] refactor makeIntValWithPtrWidth, remove getZeroWithPtrWidth (NFC).

Looks like the API was used incorrectly 50% of the time anyway :)

Mar 22 2022, 10:15 AM · Restricted Project, Restricted Project

Mar 21 2022

NoQ accepted D119601: [analyzer] Refactor makeNull to makeNullWithWidth (NFC).

All clear now. Amazing, thank you for your detailed response, I've corrected my understanding of address spaces so I'll be able to understand future patches better.

Mar 21 2022, 11:12 PM · Restricted Project, Restricted Project

Mar 18 2022

NoQ added inline comments to D119601: [analyzer] Refactor makeNull to makeNullWithWidth (NFC).
Mar 18 2022, 10:18 PM · Restricted Project, Restricted Project

Mar 8 2022

NoQ added inline comments to D119601: [analyzer] Refactor makeNull to makeNullWithWidth (NFC).
Mar 8 2022, 4:57 PM · Restricted Project, Restricted Project
NoQ added a comment to D120992: [analyzer] ReverseNull: New checker to warn for pointer value conditions, if the pointer value is unconditionally non-null.

I guess there's the usual direction that I occasionally suggest: develop a way to verify that all possible paths were explored during symbolic execution (CoreEngine::hasWorkRemaining() on steroids), then do most of the work in checkEndAnalysis.

Mar 8 2022, 12:28 PM · Restricted Project, Restricted Project

Mar 7 2022

NoQ added a comment to D120992: [analyzer] ReverseNull: New checker to warn for pointer value conditions, if the pointer value is unconditionally non-null.

BTW what is the semantics of [p retain] in ObjC? Can p be null in that context? Or does it count as a dereferences, hence it constraints the pointer?

Mar 7 2022, 11:07 AM · Restricted Project, Restricted Project
NoQ added a comment to D120992: [analyzer] ReverseNull: New checker to warn for pointer value conditions, if the pointer value is unconditionally non-null.

This check checks must-properties/all-paths properties. This has to be a data flow / CFG-based warning. I don't think there's a way around.

Mar 7 2022, 11:03 AM · Restricted Project, Restricted Project

Feb 28 2022

NoQ added inline comments to D120489: [analyzer] Done some changes to detect Uninitialized read by the char array manipulation functions.
Feb 28 2022, 10:18 AM · Restricted Project, Restricted Project

Feb 24 2022

NoQ added a comment to D120489: [analyzer] Done some changes to detect Uninitialized read by the char array manipulation functions.

Oh wait, should we accept this given this serious limitation?

Feb 24 2022, 1:31 PM · Restricted Project, Restricted Project
NoQ added a comment to D120489: [analyzer] Done some changes to detect Uninitialized read by the char array manipulation functions.

Also I think we might be able to enable this checker for the situation when the buffer is *completely* uninitialized. It is relatively easy for RegionStore to answer whether there are any bindings in a top-level region.

Feb 24 2022, 10:55 AM · Restricted Project, Restricted Project
NoQ added a comment to D120489: [analyzer] Done some changes to detect Uninitialized read by the char array manipulation functions.

I removed the [NFCi] marker because this commit does introduce functional change (a new checker).

Feb 24 2022, 10:53 AM · Restricted Project, Restricted Project
NoQ retitled D120489: [analyzer] Done some changes to detect Uninitialized read by the char array manipulation functions from [analyzer][NFCi] Done some changes to detect Uninitialized read by the char array manipulation functions to [analyzer] Done some changes to detect Uninitialized read by the char array manipulation functions.
Feb 24 2022, 10:53 AM · Restricted Project, Restricted Project
NoQ accepted D120489: [analyzer] Done some changes to detect Uninitialized read by the char array manipulation functions.

This looks like a good check to ultimately have but we probably won't be able to move it out of alpha until the extents issue is fixed (which is going to be a fairly intrusive fix).

Feb 24 2022, 10:51 AM · Restricted Project, Restricted Project
NoQ accepted D120310: [clang][analyzer] Add modeling of 'errno'..

The patch looks great to me now. As soon as you address comments about isErrnoAvailable() (at least, the parameter can now be removed), I think you can commit.

Feb 24 2022, 10:40 AM · Restricted Project

Feb 23 2022

NoQ added inline comments to D120310: [clang][analyzer] Add modeling of 'errno'..
Feb 23 2022, 7:40 PM · Restricted Project
NoQ accepted D119004: [NFC][analyzer] Allow CallDescriptions to be matched with CallExprs.

Looks great, thanks!

Feb 23 2022, 4:36 PM · Restricted Project
NoQ added inline comments to D120310: [clang][analyzer] Add modeling of 'errno'..
Feb 23 2022, 1:17 AM · Restricted Project

Feb 12 2022

NoQ added a comment to D119601: [analyzer] Refactor makeNull to makeNullWithWidth (NFC).

steakhal performed systems testing across a large set of open source projects.

Feb 12 2022, 6:24 PM · Restricted Project, Restricted Project

Feb 11 2022

NoQ added inline comments to D119601: [analyzer] Refactor makeNull to makeNullWithWidth (NFC).
Feb 11 2022, 8:15 PM · Restricted Project, Restricted Project
NoQ updated the diff for D119509: [analyzer] Fix a crash in NoStateChangeVisitor with body-farmed stack frames..

Oh, great point. Added tests that were crashing the other way round so that to demonstrate that this fix is still justified. But I agree that the visitor can totally terminate early so that to make the original tests pass for two reasons!

Feb 11 2022, 1:09 PM · Restricted Project

Feb 10 2022

NoQ requested review of D119509: [analyzer] Fix a crash in NoStateChangeVisitor with body-farmed stack frames..
Feb 10 2022, 7:36 PM · Restricted Project

Feb 8 2022

NoQ accepted D119270: [analyzer] Re-enables trustnonnullchecker_test and removes redundant code from TrustNonNullChecker.

Aha ok. I guess let's try to re-enable the test. Tests are good. Even if these tests weren't fulfilled automatically by changes in the constraint manager, that assertion failure may have been avoided.

Feb 8 2022, 9:12 PM · Restricted Project
NoQ added a comment to D119270: [analyzer] Re-enables trustnonnullchecker_test and removes redundant code from TrustNonNullChecker.

Yes, as long as the maps are there, checkDeadSymbols has to be there. It doesn't have any visible effects (because the symbols are dead, there's in fact a guarantee that these map keys will never be queried anymore) but it keeps the maps small which is essential for performance.

Feb 8 2022, 12:35 PM · Restricted Project
NoQ added a comment to D118690: [analyzer] Prevent misuses of -analyze-function.

Can you post a link to a specific buildbot failure so that we could look at it together?

Feb 8 2022, 9:10 AM · Restricted Project
NoQ accepted D119245: [analyzer][docs][NFC] Fix some broken links and some cosmetic changes.

Do you happen to know how stable are these doxygen hashes?

Feb 8 2022, 9:08 AM · Restricted Project

Feb 7 2022

NoQ added a comment to D119004: [NFC][analyzer] Allow CallDescriptions to be matched with CallExprs.

It's definitely a bug-prone scenario. I can totally see people stuffing whatever happens to be more readily available in the code into the API without thinking too much about the pros and cons. The difference between CallExpr and CallEvent is large in general but with respect to this API it's very subtle. I can easily imagine people missing it even when they know the difference between CallExpr and CallEvent in general. So I think it's worth attracting attention to.

Feb 7 2022, 10:10 AM · Restricted Project
NoQ accepted D119128: [analyzer] Fix taint propagation by remembering to the location context.

Looks correct, thanks for fixing this!

Feb 7 2022, 9:55 AM · Restricted Project
NoQ added inline comments to D119128: [analyzer] Fix taint propagation by remembering to the location context.
Feb 7 2022, 9:55 AM · Restricted Project
NoQ added a comment to D118690: [analyzer] Prevent misuses of -analyze-function.

Thanks!!

Feb 7 2022, 9:46 AM · Restricted Project

Feb 6 2022

NoQ added a comment to D119004: [NFC][analyzer] Allow CallDescriptions to be matched with CallExprs.

The original lookup() isn't exactly precise either, it's just slightly more precise as it has better access to path-sensitive information such as current values of function pointers, but this doesn't necessarily help given that these pointers can still be unknown. And when the information is not available the lookup silently fails in both cases.

Feb 6 2022, 10:06 PM · Restricted Project
NoQ added a comment to D118987: [analyzer] Add failing test case demonstrating buggy taint propagation.

I agree with @martong, LocationContext is the correct key here. The pair (Call expression, Location context) uniquely identifies the call as that call is being evaluated. This is exactly how expression evaluations are identified in the Environment.

Feb 6 2022, 8:44 PM · Restricted Project

Feb 2 2022

NoQ added inline comments to D118690: [analyzer] Prevent misuses of -analyze-function.
Feb 2 2022, 1:46 PM · Restricted Project
NoQ added inline comments to D118690: [analyzer] Prevent misuses of -analyze-function.
Feb 2 2022, 1:37 PM · Restricted Project
NoQ added inline comments to D118690: [analyzer] Prevent misuses of -analyze-function.
Feb 2 2022, 1:30 PM · Restricted Project

Feb 1 2022

NoQ accepted D118657: [analyzer] Adds TrustReturnsNonnullChecker.

Awesome! I'll commit.

Feb 1 2022, 8:20 PM · Restricted Project, Restricted Project
NoQ added a comment to D118657: [analyzer] Adds TrustReturnsNonnullChecker.

The phabricator expects complete patches reuploaded (i.e., diffs against main branch rather than diffs against the previous upload); but it knows how to produce patches-on-patches from complete patches through the History tab. Another reason to upload complete patches is to unconfuse pre-merge buildbots (the "Build Status: patch application failed" part).

Feb 1 2022, 12:21 PM · Restricted Project, Restricted Project

Jan 31 2022

NoQ retitled D118657: [analyzer] Adds TrustReturnsNonnullChecker from Adds TrustReturnsNonnullChecker to [analyzer] Adds TrustReturnsNonnullChecker.
Jan 31 2022, 5:46 PM · Restricted Project, Restricted Project
NoQ edited reviewers for D118657: [analyzer] Adds TrustReturnsNonnullChecker, added: NoQ; removed: dergachev.a.

Lovely! I have some nits.

Jan 31 2022, 5:46 PM · Restricted Project, Restricted Project

Jan 28 2022

NoQ accepted D118388: [analyzer] Restrict CallDescription fuzzy builtin matching.

Looks great overall!

Jan 28 2022, 11:35 AM · Restricted Project
NoQ added inline comments to D118388: [analyzer] Restrict CallDescription fuzzy builtin matching.
Jan 28 2022, 11:35 AM · Restricted Project
NoQ accepted D118439: [scan-build] Fix deadlock at failures in libears/ear.c.

Fair enough!

Jan 28 2022, 11:30 AM · Restricted Project
NoQ added inline comments to D118050: [analyzer] Avoid checking addrspace pointers in cstring checker.
Jan 28 2022, 11:29 AM · Restricted Project, Restricted Project

Jan 19 2022

NoQ added a comment to D117553: [analyzer] Suppress bugreports from constexpr contexts.

Oh interesting, so it's the same problem that causes ConstructionContexts to be necessary: evaluation of a function depends on its AST parents that we didn't yet encounter in the CFG.

Jan 19 2022, 3:08 PM

Jan 18 2022

NoQ added a comment to D117553: [analyzer] Suppress bugreports from constexpr contexts.

Assuming that the code compiles, bugreports coming from constexpr variable initializer expressions are by definition false-positives.

Jan 18 2022, 3:17 PM
NoQ added inline comments to D117568: [Analyzer] Add docs to StdCLibraryFunctionArgsChecker.
Jan 18 2022, 2:02 PM · Restricted Project

Jan 10 2022

NoQ added inline comments to D115932: [Analyzer] Create and handle SymbolCast for pointer to integral conversion.
Jan 10 2022, 1:59 PM · Restricted Project
NoQ accepted D105340: [analyzer] Produce SymbolCast symbols for integral types in SValBuilder::evalCast.

This looks great with the option flag. Landing this patch will enable more people to test the new mode and produce feedback on whether the constraint solver keeps working well enough in presence of the new symbols.

Jan 10 2022, 1:50 PM · Restricted Project

Jan 5 2022

NoQ accepted D116025: [analyzer][NFC] Refactor GenericTaintChecker to use CallDescriptionMap.

I haven't read this whole patch with full scrutiny but it sure looks lovely. I now also see what the problem is with non-static strings in call descriptions.

Jan 5 2022, 10:24 PM · Restricted Project
NoQ added a comment to D116597: [analyzer] Don't track function calls as control dependencies.

Interesting. Might it be that in this scenario in order to be of interest to the user the condition value has to be trackable back to the current stack frame?

Jan 5 2022, 10:14 PM · Restricted Project, Restricted Project
NoQ added a comment to D116636: [WIP] Enable `-Wstrict-calls-without-prototype` by default.

Ooof you fixed a lot of static analyzer tests. If you ever get tired of this, feel free to -w them entirely because the driver's --analyze flag implies -w anyway. Hmm, maybe we should even change %clang_analyze_cc1 to include -w.

Jan 5 2022, 10:05 PM · Restricted Project
NoQ added inline comments to D116635: Add warning to detect when calls passing arguments are made to functions without prototypes..
Jan 5 2022, 4:55 PM · Restricted Project, Restricted Project

Dec 21 2021

NoQ added a comment to D113530: [wip] [analyzer] support use-after-free checking with parameter annotation.

I'm really glad it actually works!

Dec 21 2021, 12:28 PM · Restricted Project

Dec 17 2021

NoQ added a comment to D114622: [clang-tidy][analyzer] Fix false-positive in IdenticalExprChecker and misc-redundant-expression.

P.S. bugprone-branch-clone seems to have attempted to use CloneDetector in the past but now it's no more than a dead #include. I wonder what happened there.

Dec 17 2021, 1:28 PM · Restricted Project
NoQ added a comment to D115932: [Analyzer] Create and handle SymbolCast for pointer to integral conversion.

Oh nice, it's great to see these things moving.

Dec 17 2021, 1:13 PM · Restricted Project
NoQ added a comment to D114622: [clang-tidy][analyzer] Fix false-positive in IdenticalExprChecker and misc-redundant-expression.

These checks are almost 2000 lines of code each and it looks like all they do is figure out if two statements are the same and we have a very flexible reusable solution for this sort of stuff - CloneDetector, but none of them use it. Your patch demonstrates that they all have the same bugs that need to be fixed in each of them separately, so reusability seems really valuable. If I was to work on these checks, the first thing I'd try would be to throw out their machines and plug in a reusable solution.

Dec 17 2021, 12:51 PM · Restricted Project

Dec 15 2021

NoQ added a comment to D113622: [analyzer] support ignoring use-after-free checking with reference_counted attribute.

Could you please share the results to have look? How can I reproduce and evaluate the effect of this change?

Dec 15 2021, 2:40 PM · Restricted Project

Dec 8 2021

NoQ added a comment to D115149: [analyzer][solver] Fix assertion on (NonLoc, Op, Loc) expressions.

Like, that's the whole reason why nonloc::LocAsInteger exists: so that we could cast a pointer to an integer and actually have a way to represent the resulting value as NonLoc.

Dec 8 2021, 5:12 PM · Restricted Project
NoQ added a comment to D115149: [analyzer][solver] Fix assertion on (NonLoc, Op, Loc) expressions.

There is the reinterpret-cast operation which is capable of crossing these two domains, producing an expression that can participate in arithmetic operations, but on the abstract domain side, we still stick to Locs

Dec 8 2021, 5:05 PM · Restricted Project

Dec 6 2021

NoQ added a comment to D115149: [analyzer][solver] Fix assertion on (NonLoc, Op, Loc) expressions.

It can happen if the Loc was perfectly constrained to a concrete
value (nonloc::ConcreteInt)

Dec 6 2021, 4:25 PM · Restricted Project

Nov 29 2021

NoQ added a comment to D114718: [analyzer] Implement a new checker for Strict Aliasing Rule..

Awesome, I love it!

Nov 29 2021, 12:57 PM · Restricted Project

Nov 16 2021

NoQ added a comment to D113593: [analyzer][NFC] CallDescription should own the qualified name parts.

Why though? Are you actually putting anything in there that isn't a static string literal?

Nov 16 2021, 6:11 PM · Restricted Project
NoQ added a comment to D113590: [analyzer][NFC] Introduce CallDescription::matches() in addition to isCalled().

In theory, we should try hard to reduce the matching complexity to O(1), since this operation is heavily used by the checkers.

Nov 16 2021, 6:10 PM · Restricted Project
NoQ added a comment to D110927: [analyzer] Access stored value of a constant array through a pointer to another type.

Taking advantage of strict aliasing is good as long as it produces strictly smaller analysis space (less paths, more constrained states). I.e., we can use it for eliminating possibilities, but not for discovering possibilities.

Nov 16 2021, 6:04 PM · Restricted Project

Nov 3 2021

NoQ added a comment to D113004: [analyzer][docs] Add Configuration section to user-docs.

Some -analyzer-config flags indeed deserve better treatment. I appreciate the effort.

Nov 3 2021, 8:28 AM · Restricted Project

Oct 26 2021

NoQ added inline comments to D112569: -Wformat-nonliteral should not trigger for format strings passed to blocks with __attribute__((format)).
Oct 26 2021, 12:24 PM · Restricted Project