]> granicus.if.org Git - clang/commitdiff
When conjuring symbols for compound assignments, use the promoted type to determine...
authorTed Kremenek <kremenek@apple.com>
Tue, 21 Oct 2008 19:49:01 +0000 (19:49 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 21 Oct 2008 19:49:01 +0000 (19:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57917 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/GRExprEngine.cpp

index e6780161d7a08e9f0c26dbba4dc833737afe0eb6..fa33028495ca81d853cdcef5fb0e366d2e75b2f9 100644 (file)
@@ -2208,13 +2208,13 @@ void GRExprEngine::VisitBinaryOperator(BinaryOperator* B,
 
         // EXPERIMENTAL: "Conjured" symbols.
         // FIXME: Handle structs.
-        QualType T = RHS->getType();
-        
-        if (Result.isUnknown() && (T->isIntegerType() || Loc::IsLocType(T))) {            
+        if (Result.isUnknown() &&
+            (CTy->isIntegerType() || Loc::IsLocType(CTy))) {
+          
           unsigned Count = Builder->getCurrentBlockCount();
           SymbolID Sym = SymMgr.getConjuredSymbol(B->getRHS(), Count);
           
-          Result = Loc::IsLocType(B->getRHS()->getType()
+          Result = Loc::IsLocType(CTy
                  ? cast<SVal>(loc::SymbolVal(Sym)) 
                  : cast<SVal>(nonloc::SymbolVal(Sym));            
         }