- User Since
- Sep 3 2015, 9:16 AM (171 w, 2 d)
Fri, Dec 14
Reverted in rC349233 - fails on a Windows buildbot (http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/2642/steps/annotate/logs/stdio).
These are boring, i guess i just commit.
Yup, squash these! Even if there was a plan to use ProgramState separately for some other sort of analysis that doesn't involve a sub-engine, it is currently long forgotten.
Thanks! Neat test.
I approve this for Static Analyzer. As long as this is the correct thing to do in the compiler, Static Analyzer should ideally behave similarly to the compiler. Exposing portability bugs that would show up on other compilers is generally less important than behaving similarly to Clang itself.
Yup, looks good, and i keep passively cheering for this project to be successful.
Thu, Dec 13
Thanks, looks perfectly sane to me!
Wed, Dec 12
I poked Devin offline. It kinda seems to both of us that Sphinx is great for documentation that is updated regularly, but our fancy front page should probably stay. Similarly to how we still have the llvm.org front page, despite all the documentation. It's kinda atmospheric and friendly and people like it and/or are used to it.
Added a test in rC349000.
Tue, Dec 11
That is, it is modified within the recursive call.
I think that it is modified, at least, when Memoization[C] is evaluated. The object needs to be created and put into the map in order to obtain a reference to it.
Hmm, i think i get it. Cached is a reference. Changing Memoization will invalidate references because DenseMap doesn't provide the respective guarantee.
Add documentation, fix checker help message.
Mon, Dec 10
Let's commit without a test because of the urgency, and add the test soon.
Should we also pass CheckerManager into shouldRegister...? Or is it entirely useless?
Fri, Dec 7
Also you might need to rebase on top of D55400.
Generally, because the primary user of checker names is clang-tidy, the correct name to display is the name of the specific checker that the user needs to disable in order to get rid of the warning.
I'm seeing no problems with this patch and i'm happy that we're replacing hacks with well-defined patterns :)
Aha, ok, so what's the final procedure now to register a checker that's artificially split in two? Something like this, right?
def CommonModel : Checker<"Common">, HelpText<"Doesn't emit warnings but models common stuff.">;
Yeah, this part looks easy :)
Thu, Dec 6
I just generally wish for a function that would return the most specific known range for the given arbitrary symbol. This is something we can put, for example, into visitor path notes.
I think the idea is great, thanks!
Add one more important case: std::optional. When moved, it moves the object within it into the new optional, if any. So the object is left in unspecified state, but the state of the optional itself is well-specified.
Wed, Dec 5
Address comments :)
Convert the pointer to a reference.
Tue, Dec 4
It's a flag that was removed but old soft doesn't know that it was removed, and it won't be fixed because it's old. I guess a typo would have caused the same problem.
Ugh. We broke backwards compatibility when an invalid -analyzer-config is specified but -analyze isn't specified. Yes, people are accidentally relying on that :/ :/ :/
Mon, Dec 3
Hmm, i shouldn't have included shrink_to_fit. It definitely keeps the object in unspecified state if it is already in unspecified state.
Looks great, thanks!
Double-checked - this terminology does indeed come from the Standard:
I'm glad you brought this stuff up, found two more bugs to fix.
Add a TODO.