AaronBallman wrote:

Oof, sorry for this falling off my radar!

> To demonstrate the uncertain behaviour, let's take a testcase which @shafik 
> suggested.
> 
> When we track the value of *out pointer though the code, we could see that.
> ```
> #define F() 66
> int x = F;  // This 'F' seems make the `*out` non-null
> 
> void g(int);
> 
> void f() {
>     F + 1; // but this 'F' seems to have `*out` ptr null
>     g(F);  // this one makes  the `*out` ptr non-null 
> }
> ```
> 
> Even though F shouldn't have a typocorrection, given the context.

Unfortunately, I'm not certain why you get that behavior. I think we'd have to 
get into a debugger and really dig around to find out. I would have expected 
all three uses of `F` there to make `*out` ptr non-null. The only distinction I 
can think of is that the odd-man-out is a discarded value expression. But why 
that should matter for typo correction is a mystery to me currently.

https://github.com/llvm/llvm-project/pull/123495
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to