[clang] [clang][c++20] Fix code coverage mapping crash with generalized NTTPs (PR #85837)

Andrey Ali Khan Bolshakov via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 16 08:22:01 PDT 2024


================
@@ -2177,7 +2177,8 @@ struct CounterCoverageMappingBuilder
   }
 
   void VisitOpaqueValueExpr(const OpaqueValueExpr* OVE) {
-    Visit(OVE->getSourceExpr());
+    if (const Expr *SE = OVE->getSourceExpr())
----------------
bolshakov-a wrote:

Makes sense, thanks! Moreover, I've really found a couple of bugs when some expressions referred by `OpaqueValueExpr` are handled more than once (#88881 and #88898). Regarding `BinaryConditionalOperator`, I've decided to refactor it [in a separate PR](https://github.com/llvm/llvm-project/pull/88910) and then to introduce the `isUnique()` check in this PR, hoping that there will be no more regressions.

https://github.com/llvm/llvm-project/pull/85837


More information about the cfe-commits mailing list