diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2009-02-21 20:50:42 +0000 |
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2009-02-21 20:50:42 +0000 |
| commit | 1803a02ff3017e9f18216aa41b9aa24903494960 (patch) | |
| tree | 3fbadd8df185a94fe0acde1a751dd495d18b124f /lib/Transforms | |
| parent | 190b3d58f930623d3edd58d9c94d1e5ffed96f0a (diff) | |
| download | external_llvm-1803a02ff3017e9f18216aa41b9aa24903494960.zip external_llvm-1803a02ff3017e9f18216aa41b9aa24903494960.tar.gz external_llvm-1803a02ff3017e9f18216aa41b9aa24903494960.tar.bz2 | |
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/Transforms')
| -rw-r--r-- | lib/Transforms/Scalar/InstructionCombining.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 9f72910..cfd1bac 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. |
