================
@@ -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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits