aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorJay Foad <jay.foad@gmail.com>2010-12-07 08:25:34 +0000
committerJay Foad <jay.foad@gmail.com>2010-12-07 08:25:34 +0000
commit9f71a8f4c7a182a5236da9e747d57cc1d1bd24c2 (patch)
treede2e74ed442ebccd54b82089e7953960c93a27ec /lib/Sema/SemaChecking.cpp
parentdd182ff10b9145e432dea1fd2fb67100ccca3b10 (diff)
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method trunc(), to be const and to return a new value instead of modifying the object in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121121 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaChecking.cpp')
-rw-r--r--lib/Sema/SemaChecking.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp
index d6aa4ce885..f53086e33c 100644
--- a/lib/Sema/SemaChecking.cpp
+++ b/lib/Sema/SemaChecking.cpp
@@ -2243,7 +2243,7 @@ IntRange GetValueRange(ASTContext &C, llvm::APSInt &value, unsigned MaxWidth) {
return IntRange(value.getMinSignedBits(), false);
if (value.getBitWidth() > MaxWidth)
- value.trunc(MaxWidth);
+ value = value.trunc(MaxWidth);
// isNonNegative() just checks the sign bit without considering
// signedness.
@@ -2656,16 +2656,15 @@ bool AnalyzeBitFieldAssignment(Sema &S, FieldDecl *Bitfield, Expr *Init,
if (OriginalWidth <= FieldWidth)
return false;
- llvm::APSInt TruncatedValue = Value;
- TruncatedValue.trunc(FieldWidth);
+ llvm::APSInt TruncatedValue = Value.trunc(FieldWidth);
// It's fairly common to write values into signed bitfields
// that, if sign-extended, would end up becoming a different
// value. We don't want to warn about that.
if (Value.isSigned() && Value.isNegative())
- TruncatedValue.sext(OriginalWidth);
+ TruncatedValue = TruncatedValue.sext(OriginalWidth);
else
- TruncatedValue.zext(OriginalWidth);
+ TruncatedValue = TruncatedValue.zext(OriginalWidth);
if (Value == TruncatedValue)
return false;
@@ -2712,7 +2711,7 @@ std::string PrettyPrintInRange(const llvm::APSInt &Value, IntRange Range) {
llvm::APSInt ValueInRange = Value;
ValueInRange.setIsSigned(!Range.NonNegative);
- ValueInRange.trunc(Range.Width);
+ ValueInRange = ValueInRange.trunc(Range.Width);
return ValueInRange.toString(10);
}