================
@@ -847,7 +845,33 @@ template <class Emitter>
 bool ByteCodeExprGen<Emitter>::VisitOpaqueValueExpr(const OpaqueValueExpr *E) {
   if (Initializing)
     return this->visitInitializer(E->getSourceExpr());
-  return this->visit(E->getSourceExpr());
+
+  PrimType CacheVariableTy = classify(E).value_or(PT_Ptr);
----------------
isuckatcs wrote:

I added a test case like that.

```
constexpr int foo() { return X(0) ?: X(0); }
```
```
`-OpaqueValueExpr ... 'X':'X' xvalue
   `-MaterializeTemporaryExpr ... 'X':'X' xvalue
     `-CXXFunctionalCastExpr ... 'X':'X' functional cast to X <NoOp>
       `-CXXParenListInitExpr ... 'X':'X'
         `-IntegerLiteral ... 'int' 0
```

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

Reply via email to