steakhal wrote:

I'll check the code more thorough and come up with concrete suggestions.
For now, I only did some AI-assisted testing of the change set and found one 
interesting case:

```c++
  char *strchrnul(const char *s, int c);
  void clang_analyzer_eval(int);

  void t(void) {
    const char *s = "hello";
    clang_analyzer_eval(strchrnul(s, 'z') == 0);  // analyzer says UNKNOWN; 
should be FALSE
  }
```

Allegedly, there is no addTransition in this case, and we fall through to 
conservative eval call this function, leading to the same class of FPs, but for 
`strchrnul`. The rest of the handlers looked correct.

At glance, this implementation looks a lot better. Thank you for taking your 
time and circling back!
I felt I might have been a bit too harsh initially, and I regret that.
I'll have a deeper look once I have a bit of free time.

https://github.com/llvm/llvm-project/pull/210154
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to