Page MenuHomePhabricator

vsavchenko (Valeriy Savchenko)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 6 2020, 5:32 AM (154 w, 6 d)

Recent Activity

Jan 15 2023

vsavchenko added a comment to D100955: [-Wcalled-once] Do not run analysis on Obj-C++.

Can you say a few words on _why_ this is emitted in only Objective-C? What's missing for Objective-C++? I was surprised that this warning fired in a .m file but not in a .mm file.

Jan 15 2023, 7:33 AM · Restricted Project, Restricted Project

Apr 28 2022

vsavchenko accepted D124619: [llvm] Ignore .rej files in .gitignore.

I guess the only possible scenario that I can imagine here for including these files is tests. Tests for some code tools dealing with patches.
Otherwise, 100% reasonable.

Apr 28 2022, 8:24 AM · Restricted Project, Restricted Project

Sep 21 2021

vsavchenko added a comment to D110125: [analyzer] Add a Fourier-Motzkin elimination solver backend..

Ooooh, delicious! Diving in!

Sep 21 2021, 12:53 AM

Sep 6 2021

vsavchenko added a comment to D93110: [analyzer] Implement fine-grained suppressions via attributes.

@aaron.ballman a gentle ping

Sep 6 2021, 8:09 AM · Restricted Project

Aug 20 2021

vsavchenko added a comment to D93110: [analyzer] Implement fine-grained suppressions via attributes.

Finally I had a chance to come back to this patch.
@aaron.ballman what do you think about it? I tried to address your notes and implemented both features under one attribute.

Aug 20 2021, 7:19 AM · Restricted Project
vsavchenko updated the diff for D93110: [analyzer] Implement fine-grained suppressions via attributes.

Join 'suppress' and 'analyzer_suppress' attributes.

Aug 20 2021, 7:17 AM · Restricted Project

Aug 17 2021

vsavchenko accepted D107366: [analyzer] Adjust JS code of analyzer's HTML report for IE support..

Now it looks good! Thanks again!

Aug 17 2021, 1:40 AM · Restricted Project

Aug 6 2021

vsavchenko added a comment to D107636: [analyzer][solver] Compute adjustment for unsupported symbols as well.

Seems reasonable to me. Let's wait for someone else as well.

Aug 6 2021, 8:18 AM · Restricted Project, Restricted Project
vsavchenko requested review of D107636: [analyzer][solver] Compute adjustment for unsupported symbols as well.
Aug 6 2021, 4:13 AM · Restricted Project, Restricted Project

Aug 5 2021

vsavchenko added inline comments to D107366: [analyzer] Adjust JS code of analyzer's HTML report for IE support..
Aug 5 2021, 2:13 AM · Restricted Project
vsavchenko added a comment to D107366: [analyzer] Adjust JS code of analyzer's HTML report for IE support..

Now it captures (and makes bold) one extra arrow from the previous note.
Correct example attached!

Aug 5 2021, 2:12 AM · Restricted Project
vsavchenko requested changes to D107366: [analyzer] Adjust JS code of analyzer's HTML report for IE support..

Oh, wait! I found a bug!

Aug 5 2021, 2:09 AM · Restricted Project

Aug 4 2021

vsavchenko accepted D107366: [analyzer] Adjust JS code of analyzer's HTML report for IE support..

Works in Firefox on macOS as well!

Great!
@vsavchenko , any suggestions?

Aug 4 2021, 1:59 PM · Restricted Project
vsavchenko added a comment to D107366: [analyzer] Adjust JS code of analyzer's HTML report for IE support..

Can you please also attach an HTML file just to verify that it works?

Aug 4 2021, 4:00 AM · Restricted Project
vsavchenko added a comment to D106823: [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants.

Looking great!
I have a couple of nit picks and I kind of want to check that it doesn't affect the performance on a different set of projects as well.

Aug 4 2021, 2:17 AM · Restricted Project

Aug 3 2021

vsavchenko added inline comments to D104647: [analyzer] Support SVal::getType for pointer-to-member values.
Aug 3 2021, 7:57 AM · Restricted Project, Restricted Project
vsavchenko added inline comments to D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator.
Aug 3 2021, 7:40 AM · Restricted Project
vsavchenko added a comment to D107339: [analyzer] Retrieve a character from StringLiteral as an initializer for constant arrays..

That looks interesting!
Can you please add tests, though?

Aug 3 2021, 4:08 AM · Restricted Project

Aug 2 2021

vsavchenko committed rG9e02f58780ab: [analyzer] Highlight arrows for currently selected event (authored by vsavchenko).
[analyzer] Highlight arrows for currently selected event
Aug 2 2021, 9:32 AM
vsavchenko committed rG97bcafa28deb: [analyzer] Add control flow arrows to the analyzer's HTML reports (authored by vsavchenko).
[analyzer] Add control flow arrows to the analyzer's HTML reports
Aug 2 2021, 9:32 AM
vsavchenko closed D92928: [analyzer] Highlight arrows for currently selected event.
Aug 2 2021, 9:31 AM · Restricted Project
vsavchenko closed D92639: [analyzer] Add control flow arrows to the analyzer's HTML reports.
Aug 2 2021, 9:31 AM · Restricted Project
vsavchenko added a comment to D92928: [analyzer] Highlight arrows for currently selected event.

Or, we can find another symbiotic way. You can make changes the way without painfull part of thinking about IE. And I will prepare the next patch adjusting it. Thus, revisions would be smaller. That's would be easier for you to test all the things before the load. I will take a charge for IE part on my own and prepare a new revision.

Aug 2 2021, 9:13 AM · Restricted Project

Jul 29 2021

vsavchenko accepted D107026: [Clang] Add support for attribute 'escape'.

Awesome, I have nothing to add at this point!
Let's still wait for @aaron.ballman to check it.

Jul 29 2021, 1:55 PM · Restricted Project
vsavchenko added inline comments to D105821: [analyzer] [WIP] Model destructor for std::unique_ptr.
Jul 29 2021, 5:52 AM · Restricted Project
vsavchenko added inline comments to D105821: [analyzer] [WIP] Model destructor for std::unique_ptr.
Jul 29 2021, 4:13 AM · Restricted Project
vsavchenko added a comment to D107026: [Clang] Add support for attribute 'escape'.

Great job! It looks good, but I have a couple of minor tweaks to suggest.

Jul 29 2021, 4:03 AM · Restricted Project

Jul 27 2021

vsavchenko accepted D106739: [analyzer] Add option to SATest.py for extra checkers.
Jul 27 2021, 7:09 AM · Restricted Project
vsavchenko added a comment to D106739: [analyzer] Add option to SATest.py for extra checkers.

Looks good! Thanks!

Jul 27 2021, 7:06 AM · Restricted Project

Jul 23 2021

vsavchenko accepted D106285: [Analyzer][solver] Fix inconsistent equivalence class data.

Oh, I didn't accept it? Sorry!

Jul 23 2021, 2:52 AM · Restricted Project

Jul 22 2021

vsavchenko added a comment to D106131: Fix FindZ3.cmake to support static libraries and Windows.

It looks reasonable to me, but I can't say that I'm an expert here, and I'm definitely not a frequent z3 user.

Jul 22 2021, 4:00 AM · Restricted Project
vsavchenko accepted D106416: [analyzer] Fix build dependency issues for SATest.

Awesome! Thanks!

Jul 22 2021, 2:01 AM · Restricted Project, Restricted Project

Jul 21 2021

vsavchenko added a comment to D106296: [analyzer] Fix for faulty namespace test in SmartPtrModelling.

Can we please land the fix?

Jul 21 2021, 3:34 AM · Restricted Project

Jul 20 2021

vsavchenko added a comment to D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator.

Here is the proof of correctness of the algorithm using Z3: https://gist.github.com/weirdsmiley/ad6a9dbf3370e96d29f9e90068931d25

Jul 20 2021, 11:58 PM · Restricted Project
vsavchenko added inline comments to D106367: [ADT][NFC] Correct the wrong header comment of ImmutableSet::add_internal.
Jul 20 2021, 8:52 AM · Restricted Project
vsavchenko added a comment to D92928: [analyzer] Highlight arrows for currently selected event.

I want to say that I really appreciate the effort you put into finding all the workarounds for IE, but it makes adding new features here incredibly painful because IE doesn't seem to support anything. And the majority of developers (on Linux and on MacOS) have literally no way to test it. What we gain from supporting IE for non-existing users, we lose in the ability to actually improve this code!

Jul 20 2021, 7:59 AM · Restricted Project
vsavchenko added a comment to D92928: [analyzer] Highlight arrows for currently selected event.

Maybe I'm missing something, but do we really need to care about IE? The last version was released in 2013, and even Microsoft itself stops supporting IE. Why should we care? Is there anyone who uses old deprecated browser that is not maintained? classList thing was here for almost 4 years and no one seemed to care. Am I missing something here?

Jul 20 2021, 7:52 AM · Restricted Project
vsavchenko accepted D106296: [analyzer] Fix for faulty namespace test in SmartPtrModelling.

Great, LGTM!
But let's wait for @xazax.hun anyways

Jul 20 2021, 3:02 AM · Restricted Project
vsavchenko added inline comments to D106296: [analyzer] Fix for faulty namespace test in SmartPtrModelling.
Jul 20 2021, 2:53 AM · Restricted Project
vsavchenko added inline comments to D106296: [analyzer] Fix for faulty namespace test in SmartPtrModelling.
Jul 20 2021, 1:52 AM · Restricted Project
vsavchenko added a comment to D106296: [analyzer] Fix for faulty namespace test in SmartPtrModelling.

Also, I tested this fix on a set of open-source projects and I don't see any problems.

Jul 20 2021, 1:15 AM · Restricted Project
vsavchenko added a comment to D106285: [Analyzer][solver] Fix inconsistent equivalence class data.

Ah, I see now! I think we could've put together a somewhat easier test knowing what's wrong, but it's not important at all.
Thanks for addressing this issue!

Jul 20 2021, 1:12 AM · Restricted Project
vsavchenko added a comment to D106136: [Analyzer][solver] Fix equivalence class invariant violation in removeDeadBindings.

Thanks for taking your time to take a look. And I accept your statements. Nevertheless, let me explain my motivation.

I thought that a class is trivial if it has only one member. And it seemed perfectly logical to not store equivalence classes with one member. I.e a equals to a does not hold any meaningful information it just takes precious memory. When we add a new constraint we take careful steps to avoid adding a new class with one member. However, when remove dead kicks in, suddenly we end up having classes stored with one member, which is a somewhat inconsistent design IMHO. Perhaps some better documentation could have helped.

Representative symbol gives its equivalence class an ID. We use this ID for everything, for comparing and for mapping. Since we live in a persistent world, we can't just change this ID at some point, it will basically mean that we want to replace a class with another class. So, all maps where this class participated (constraints, class, members, disequality) should remove the old class and add the new class. This is a huge burden. You need to carefully do all this, and bloat existing data structures.

Trivial class is an optimization for the vast majority of symbols that never get into any classes. We still need to associate constraints with those. This is where implicit Symbol to Class conversion comes in handy.

Now let's imagine that something else is merged into it. We are obliged to officially map the symbol to its class, and the class to its members. When this happens, it goes into the data structure FOREVER. And when in the future, with only one member, instead of keeping something that we already have from other versions of the data structure, you decide to remove the item from the class map, you actually use more memory when it was there! This is how persistent data structures work, different versions of the same data structure share data. And I'm not even talking here about the fact that you now need to replace the class with one ID with the class with another ID in every relationship.

You can probably measure memory footprint in your example and see it for yourself.

Yeah, makes sense. Thanks for taking more time for further explanations. Still, IMHO, the definition of a trivial class needs a clear written documentation in the code itself, so other developers can easier understand and maintain this code. I am going to create an NFC patch that summarizes this discussion in a comment attached to the isTrivial function.

Jul 20 2021, 1:08 AM · Restricted Project
vsavchenko added inline comments to D106296: [analyzer] Fix for faulty namespace test in SmartPtrModelling.
Jul 20 2021, 1:05 AM · Restricted Project

Jul 16 2021

vsavchenko added a comment to D106136: [Analyzer][solver] Fix equivalence class invariant violation in removeDeadBindings.

Thanks for taking your time to take a look. And I accept your statements. Nevertheless, let me explain my motivation.

I thought that a class is trivial if it has only one member. And it seemed perfectly logical to not store equivalence classes with one member. I.e a equals to a does not hold any meaningful information it just takes precious memory. When we add a new constraint we take careful steps to avoid adding a new class with one member. However, when remove dead kicks in, suddenly we end up having classes stored with one member, which is a somewhat inconsistent design IMHO. Perhaps some better documentation could have helped.

Jul 16 2021, 10:22 AM · Restricted Project
vsavchenko requested changes to D106136: [Analyzer][solver] Fix equivalence class invariant violation in removeDeadBindings.
Jul 16 2021, 3:14 AM · Restricted Project
vsavchenko added a comment to D106136: [Analyzer][solver] Fix equivalence class invariant violation in removeDeadBindings.

Thanks for working on it, but it is a quite large change that I don't get the motivation for (it doesn't even fix the recently found bug).

Jul 16 2021, 3:10 AM · Restricted Project
vsavchenko added inline comments to D106102: [analyzer][solver] Introduce reasoning for not equal to operator.
Jul 16 2021, 1:53 AM · Restricted Project

Jul 15 2021

vsavchenko added inline comments to D103096: [analyzer] Implement cast for ranges of symbolic integers.
Jul 15 2021, 9:36 AM · Restricted Project, Restricted Project
vsavchenko added inline comments to D103096: [analyzer] Implement cast for ranges of symbolic integers.
Jul 15 2021, 9:15 AM · Restricted Project, Restricted Project
vsavchenko accepted D106063: [Analyzer][solver] Remove unused functions.

Yes, let's do this! Thanks for addressing it!

Jul 15 2021, 6:53 AM · Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

Made ignoreCast non-virtual.
P.S. IMO, this change is not something that can be taken as a pattern, though.

Jul 15 2021, 12:40 AM · Restricted Project, Restricted Project

Jul 14 2021

vsavchenko added inline comments to D103096: [analyzer] Implement cast for ranges of symbolic integers.
Jul 14 2021, 10:38 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.
// 1. `VisitSymbolCast`.
// Get a range for main `reg_$0<int x>` - [-2147483648, 2147483647]
// Cast main range to `short` - [-2147483648, 2147483647] -> [-32768, 32767].
// Now we get a valid range for further bifurcation - [-32768, 32767].
Jul 14 2021, 4:24 AM · Restricted Project, Restricted Project

Jul 13 2021

vsavchenko committed rG60bd8cbc0c84: [analyzer][solver][NFC] Refactor how we detect (dis)equalities (authored by vsavchenko).
[analyzer][solver][NFC] Refactor how we detect (dis)equalities
Jul 13 2021, 11:01 AM
vsavchenko committed rGf26deb4e6ba7: [analyzer][solver][NFC] Introduce ConstraintAssignor (authored by vsavchenko).
[analyzer][solver][NFC] Introduce ConstraintAssignor
Jul 13 2021, 11:01 AM
vsavchenko closed D105693: [analyzer][solver][NFC] Refactor how we detect (dis)equalities.
Jul 13 2021, 11:01 AM · Restricted Project
vsavchenko closed D105692: [analyzer][solver][NFC] Introduce ConstraintAssignor.
Jul 13 2021, 11:01 AM · Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

OK, thanks for putting a summary. I now got a good idea why you need both.
At the same time, take a look at D105692. I'm about to land it and I think it's going to be useful for you.

Jul 13 2021, 10:40 AM · Restricted Project, Restricted Project
vsavchenko added inline comments to D105693: [analyzer][solver][NFC] Refactor how we detect (dis)equalities.
Jul 13 2021, 10:35 AM · Restricted Project
vsavchenko updated the diff for D105693: [analyzer][solver][NFC] Refactor how we detect (dis)equalities.

Fix comments

Jul 13 2021, 10:35 AM · Restricted Project
vsavchenko updated the diff for D105692: [analyzer][solver][NFC] Introduce ConstraintAssignor.

Fix comments

Jul 13 2021, 10:32 AM · Restricted Project
vsavchenko added inline comments to D103096: [analyzer] Implement cast for ranges of symbolic integers.
Jul 13 2021, 8:01 AM · Restricted Project, Restricted Project
vsavchenko added inline comments to D103096: [analyzer] Implement cast for ranges of symbolic integers.
Jul 13 2021, 6:59 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

I'll allocate some time to get into your summary, but for now here are my concerns about SymbolRangeInferrer and VisitSymbolCast.

Jul 13 2021, 6:48 AM · Restricted Project, Restricted Project
vsavchenko accepted D105421: [analyzer] Handle << operator for std::unique_ptr.

Removed stupid mistakes

Jul 13 2021, 2:36 AM · Restricted Project

Jul 12 2021

vsavchenko committed rG1af97c9d0b02: [analyzer] LoopUnrolling: fix crash when a loop counter is captured in a lambda… (authored by AbbasSabra).
[analyzer] LoopUnrolling: fix crash when a loop counter is captured in a lambda…
Jul 12 2021, 7:06 AM
vsavchenko closed D102273: [analyzer] LoopUnrolling: fix crash when a loop counter is captured in a lambda by reference.
Jul 12 2021, 7:06 AM · Restricted Project
vsavchenko added inline comments to D105421: [analyzer] Handle << operator for std::unique_ptr.
Jul 12 2021, 6:30 AM · Restricted Project

Jul 9 2021

vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

@vsavchenko

Why did you write it this way!?

I want the map contains only valid constraints at any time, so we can easely get them without traversing with all variants intersecting with each other. I'm gonna move updateExistingConstraints logic to VisitSymbolCast. I think your suggestion can even improve the feature and cover some more cases. I'll add more tests in the next update. Thanks!

Jul 9 2021, 10:56 AM · Restricted Project, Restricted Project
vsavchenko added inline comments to D105692: [analyzer][solver][NFC] Introduce ConstraintAssignor.
Jul 9 2021, 9:00 AM · Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

@vsavchenko

I still want to hear a good explanation why is it done this way. Here c is mapped to (char)x, and we have [-10, 10] directly associated with it, but we also have (short)x associated with [8, 8]. Why can't VisitSymbolCast look up constraints for (short)x it already looks up for constraints for different casts already.

Hm, you've confused me. I'll make some debugging and report.

Jul 9 2021, 8:09 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

Generally, with this patch we kinda have several constraints for each cast of a single symbol. And we shall care for all of that constraints and timely update them (if possible).
For instance, we have int x and meet casts of this symbol in code:

int x;
(char)x; // we can reason about the 1st byte
(short)x; // we can reason about the 2 lowest bytes
(ushort)x; // we can reason about the 2 lowest bytes (in this case we may not store for unsigned separately, as we already stored 2 bytes for signed)

That's like we have a knowledge of a lower part of the integer. And every time we have a new constraints, for example, for (short)x; (aka 2 bytes) then we have to update all the constraints that have two bytes or lower ((char)xin this case) as well to make them consistent.

Jul 9 2021, 8:07 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

That's not the question I'm asking. Why do you need to set constraints for other symbolic expressions, when SymbolicInferrer can look them up on its own? Which cases will fail if we remove that part altogether?

I see. Here is what fails in case if we don't update other constraints:

void test(int x) {
  if ((char)x > -10 && (char)x < 10) {
    if ((short)x == 8) {
      // If you remove updateExistingConstraints,
      // then `c` won't be 8. It would be [-10, 10] instead.
      char c = x;
      if (c != 8)
        clang_analyzer_warnIfReached(); // should no-warning, but fail
    }
  }
}
Jul 9 2021, 7:43 AM · Restricted Project, Restricted Project
vsavchenko requested review of D105693: [analyzer][solver][NFC] Refactor how we detect (dis)equalities.
Jul 9 2021, 4:51 AM · Restricted Project
vsavchenko requested review of D105692: [analyzer][solver][NFC] Introduce ConstraintAssignor.
Jul 9 2021, 4:50 AM · Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.
Jul 9 2021, 3:47 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

Can you please explain why you do the same thing in two different ways?

Jul 9 2021, 3:11 AM · Restricted Project, Restricted Project
vsavchenko accepted D102273: [analyzer] LoopUnrolling: fix crash when a loop counter is captured in a lambda by reference.

Great! Thanks for addressing all of the comments!

Jul 9 2021, 2:25 AM · Restricted Project
vsavchenko added a comment to D105421: [analyzer] Handle << operator for std::unique_ptr.

Great, thanks for addressing my comments! I still have a couple of minor suggestions though.

Jul 9 2021, 1:35 AM · Restricted Project

Jul 8 2021

vsavchenko added a comment to D105421: [analyzer] Handle << operator for std::unique_ptr.

Good job, great to see how you are going through the whole list of methods!

Jul 8 2021, 1:19 AM · Restricted Project

Jul 7 2021

vsavchenko accepted D105447: [analyzer] Allow cmake options to be passed to satest container.

Awesome, thanks!

Jul 7 2021, 11:07 AM · Restricted Project
vsavchenko added a comment to D105552: [analyzer][NFC] NoStoreFuncVisitor: Compact parameters for region pretty printing into a class.

Honestly, I don't really see how this is better.
IMO Printer is something that prints, it should be everything that it does. It can accept different parameters tweaking how it prints in its constructor, but if it is a region printer, you should give it a region, and it should print it. It's not a one-use thing.

Jul 7 2021, 7:54 AM · Restricted Project

Jul 6 2021

vsavchenko added inline comments to D103096: [analyzer] Implement cast for ranges of symbolic integers.
Jul 6 2021, 9:07 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D103096: [analyzer] Implement cast for ranges of symbolic integers.

This is a very complicated patch, I think we'll have to iterate on it quite a lot.
Additionally, we have to be sure that this doesn't crash our performance.

Jul 6 2021, 4:12 AM · Restricted Project, Restricted Project
vsavchenko added inline comments to D105436: [analyzer][solver] Use all sources of constraints.
Jul 6 2021, 3:10 AM · Restricted Project
vsavchenko added inline comments to D105436: [analyzer][solver] Use all sources of constraints.
Jul 6 2021, 2:46 AM · Restricted Project
vsavchenko committed rG6017cb31bb35: [analyzer][solver] Use all sources of constraints (authored by vsavchenko).
[analyzer][solver] Use all sources of constraints
Jul 6 2021, 1:09 AM
vsavchenko closed D105436: [analyzer][solver] Use all sources of constraints.
Jul 6 2021, 1:09 AM · Restricted Project
vsavchenko added inline comments to D105447: [analyzer] Allow cmake options to be passed to satest container.
Jul 6 2021, 12:52 AM · Restricted Project

Jul 5 2021

vsavchenko added a comment to D105436: [analyzer][solver] Use all sources of constraints.

I compared issues produced by this patch to the issues produced before that on all projects from clang/utils/analyzer/projects, and didn't find any difference.

Jul 5 2021, 9:41 AM · Restricted Project
vsavchenko requested review of D105436: [analyzer][solver] Use all sources of constraints.
Jul 5 2021, 9:37 AM · Restricted Project

Jul 2 2021

vsavchenko added inline comments to D105273: [analyzer] Introduce range-based reasoning for subtraction operator.
Jul 2 2021, 11:56 AM · Restricted Project
vsavchenko added inline comments to D105340: [analyzer] Produce SymbolCast symbols for integral types in SValBuilder::evalCast.
Jul 2 2021, 8:17 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D105340: [analyzer] Produce SymbolCast symbols for integral types in SValBuilder::evalCast.

Also, although the test is very extensive, it is pretty lopsided at the same time. C-style cast is only one case out of the myriad of all explicit and, more importantly, implicit casts.

Jul 2 2021, 8:13 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D105273: [analyzer] Introduce range-based reasoning for subtraction operator.

Hey Manas! Great job, you put this together real quick!

Jul 2 2021, 8:10 AM · Restricted Project
vsavchenko added inline comments to D105340: [analyzer] Produce SymbolCast symbols for integral types in SValBuilder::evalCast.
Jul 2 2021, 6:29 AM · Restricted Project, Restricted Project
vsavchenko added inline comments to D105340: [analyzer] Produce SymbolCast symbols for integral types in SValBuilder::evalCast.
Jul 2 2021, 4:14 AM · Restricted Project, Restricted Project
vsavchenko added a comment to D105340: [analyzer] Produce SymbolCast symbols for integral types in SValBuilder::evalCast.

Hey, thanks for starting on splitting into more pieces!

Jul 2 2021, 3:29 AM · Restricted Project, Restricted Project

Jun 30 2021

vsavchenko accepted D105167: [analyzer] Fix HTML report deduplication..

This is incredible! Thanks for addressing it! I've encountered this many times.

Jun 30 2021, 6:42 AM · Restricted Project