summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2009-02-21 20:50:42 +0000
committerNick Lewycky <nicholas@mxc.ca>2009-02-21 20:50:42 +0000
commit2ec0dbf9616e91952c90ad1c7f7404d9d1ee053c (patch)
tree3fbadd8df185a94fe0acde1a751dd495d18b124f /lib
parent92acef0e9409d782e5ec829c4acd56242ad83586 (diff)
downloadllvm-2ec0dbf9616e91952c90ad1c7f7404d9d1ee053c.tar.gz
llvm-2ec0dbf9616e91952c90ad1c7f7404d9d1ee053c.tar.bz2
llvm-2ec0dbf9616e91952c90ad1c7f7404d9d1ee053c.tar.xz
Don't sign extend the char when expanding char -> int during
load(bitcast(char[4] to i32*)) evaluation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65246 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Transforms/Scalar/InstructionCombining.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp
index 9f72910cb7..cfd1bac7ba 100644
--- a/lib/Transforms/Scalar/InstructionCombining.cpp
+++ b/lib/Transforms/Scalar/InstructionCombining.cpp
@@ -11028,12 +11028,12 @@ static Instruction *InstCombineLoadCast(InstCombiner &IC, LoadInst &LI,
APInt SingleChar(numBits, 0);
if (TD->isLittleEndian()) {
for (signed i = len-1; i >= 0; i--) {
- SingleChar = (uint64_t) Str[i];
+ SingleChar = (uint64_t) Str[i] & UCHAR_MAX;
StrVal = (StrVal << 8) | SingleChar;
}
} else {
for (unsigned i = 0; i < len; i++) {
- SingleChar = (uint64_t) Str[i];
+ SingleChar = (uint64_t) Str[i] & UCHAR_MAX;
StrVal = (StrVal << 8) | SingleChar;
}
// Append NULL at the end.