-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[analyzer] Handle [[assume(cond)]]
as __builtin_assume(cond)
#100762
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi! This issue may be a good introductory issue for people new to working on LLVM. If you would like to work on this issue, your first steps are:
If you have any further questions about this issue, don't hesitate to ask via a comment in the thread below. |
@llvm/issue-subscribers-clang-static-analyzer Author: Balazs Benics (steakhal)
We already handle `__builtin_assume` calls inside the `BuiltinFunctionChecker`.
We should also handle the attribute variant of this, e.g.:
https://compiler-explorer.com/z/oq6nY7eqE
```c++
void clang_analyzer_printState();
extern int arr[10];
void using_assume_attr(int x) { void using_builtin(int x) {
|
@llvm/issue-subscribers-good-first-issue Author: Balazs Benics (steakhal)
We already handle `__builtin_assume` calls inside the `BuiltinFunctionChecker`.
We should also handle the attribute variant of this, e.g.:
https://compiler-explorer.com/z/oq6nY7eqE
```c++
void clang_analyzer_printState();
extern int arr[10];
void using_assume_attr(int x) { void using_builtin(int x) {
|
I'm working on this issue. |
Hi, |
Hi, |
We usually don't assign issues. Contributors are expected to file a PR with their improvements when they have something. |
Hi! Just to confirm, I'm fully committed to working on this issue and have started making progress on a solution. I'm looking forward to raising the PR soon. I hit the issue that was seen in #101063, and I think I've moved around it by adding the AttributedStmt to the CFG, now I'm trying to get the right SVal to update the ProgramState similar to how it's done in the |
Resolves #100762 Gist of the change: 1. All the symbol analysis, constraint manager and expression parsing logic was already present, but the previous code didn't "visit" the expressions within `assume()` by parsing those expressions, all of the code "just works" by evaluating the SVals, and hence leaning on the same logic that makes the code with `__builtin_assume` work 2. "Ignore" an expression from adding in CFG if it has side-effects ( similar to CGStmt.cpp (todo add link)) 3. Add additional test case for ternary operator handling and modify CFG.cpp's VisitGuardedExpr code for `continue`-ing if the `ProgramPoint` is a `StmtPoint` --------- Co-authored-by: Balazs Benics <[email protected]>
We already handle
__builtin_assume
calls inside theBuiltinFunctionChecker
.We should also handle the attribute variant of this, e.g.:
https://compiler-explorer.com/z/oq6nY7eqE
The text was updated successfully, but these errors were encountered: