HighCommander4 wrote:

> The failures are related to new diagnostics that are issued as a side effect 
> of running additional checks in BuildDeclarationNameExpr().

A closer investigation has revealed that this diagnosis wasn't quite accurate.

The three `SemaCXX` failures were not in fact caused by new diagnostics issued 
as part of doing extra semantic analysis in `BuildDeclarationNameExpr()`. 
Rather, the original version of the patch had the unintended effect of having 
[this 
overload](https://searchfox.org/llvm/rev/9b832b726c9c9bb0672c5f0912f6f131e3e27a10/clang/lib/Sema/SemaExpr.cpp#3431)
 of `BuildDeclarationNameExpr()` construct an `UnresolvedLookupExpr` even when 
the only lookup result was an invalid decl, where previously it would fail in 
that scenario.

In my updated patch, I made an adjustment to this function to behave similarly 
to the other overload, i.e. wrap the resulting expression in a `RecoveryExpr` 
in the invalid-decl case. This fixed all three `SemaCXX` failures.

The `OpenMP` failure remains, though there too it's not the case that the extra 
diagnostic is **directly** produced by the extra checks that now run in 
`BuildDeclarationNameExpr()`. Rather, I suspect that the extra semantic 
analysis we're doing **indirectly** leads to extra diagnostics. I haven't yet 
tracked down the chain of causation there.

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

Reply via email to