================
@@ -67,7 +67,7 @@ void ExprEngine::VisitBinaryOperator(const BinaryOperator* B,
       if (RightV.isUnknown()) {
         unsigned Count = currBldrCtx->blockCount();
         RightV = svalBuilder.conjureSymbolVal(nullptr, getCFGElementRef(), 
LCtx,
-                                              Count);
+                                              RHS->getType(), Count);
----------------
balazs-benics-sonarsource wrote:

Interestingly in #137355 @fangyi-zhou changed the behavior of this line, thus 
needed a tiny bit of adjustment to make the new test pass while I was uplifting 
this downstream patch to current llvm main.
I didn't investigate the case beyond that this was the line that conjured a 
symbol of a wrong type after #137355, probably because in the past we directly 
passed a QualType here but after that change we rely on deducing the type from 
`getCFGElementRef()` - which is apparently wrong. To see the behavior, revert 
this hunk and see the broken test. There could be more places where this type 
mismatch on conjure could cause issues, but I didn't audit the code further.

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

Reply via email to