Author: xazax Date: Thu Oct 19 04:58:21 2017 New Revision: 316157 URL: http://llvm.org/viewvc/llvm-project?rev=316157&view=rev Log: [analyzer] Dump signed integers in SymIntExpr and IntSymExpr correctly
Patch by: Adam Balogh! Differential Revision: https://reviews.llvm.org/D39048 Modified: cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp cfe/trunk/test/Analysis/expr-inspection.c Modified: cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp?rev=316157&r1=316156&r2=316157&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Core/SymbolManager.cpp Thu Oct 19 04:58:21 2017 @@ -31,14 +31,20 @@ void SymIntExpr::dumpToStream(raw_ostrea os << '('; getLHS()->dumpToStream(os); os << ") " - << BinaryOperator::getOpcodeStr(getOpcode()) << ' ' - << getRHS().getZExtValue(); + << BinaryOperator::getOpcodeStr(getOpcode()) << ' '; + if (getRHS().isUnsigned()) + os << getRHS().getZExtValue(); + else + os << getRHS().getSExtValue(); if (getRHS().isUnsigned()) os << 'U'; } void IntSymExpr::dumpToStream(raw_ostream &os) const { - os << getLHS().getZExtValue(); + if (getLHS().isUnsigned()) + os << getLHS().getZExtValue(); + else + os << getLHS().getSExtValue(); if (getLHS().isUnsigned()) os << 'U'; os << ' ' Modified: cfe/trunk/test/Analysis/expr-inspection.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/expr-inspection.c?rev=316157&r1=316156&r2=316157&view=diff ============================================================================== --- cfe/trunk/test/Analysis/expr-inspection.c (original) +++ cfe/trunk/test/Analysis/expr-inspection.c Thu Oct 19 04:58:21 2017 @@ -8,6 +8,7 @@ void clang_analyzer_numTimesReached(); void foo(int x) { clang_analyzer_dump(x); // expected-warning{{reg_$0<int x>}} + clang_analyzer_dump(x + (-1)); // expected-warning{{(reg_$0<int x>) + -1}} int y = 1; clang_analyzer_printState(); for (; y < 3; ++y) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits