aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-12-22 22:45:38 +0000
committerChris Lattner <sabre@nondot.org>2007-12-22 22:45:38 +0000
commitd3ada751c3e5f4e0de419c83e0f7975a050f893e (patch)
tree474c708b8948611028d5a3ec6279a52920eaa2a0
parent2ceb2cfa8e8580a7d080f5c6235ab133b97fb8fb (diff)
fix strict-aliasing violation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45324 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/CellSPU/SPUISelDAGToDAG.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/Target/CellSPU/SPUISelDAGToDAG.cpp b/lib/Target/CellSPU/SPUISelDAGToDAG.cpp
index 59de205f94..b3c910a3d7 100644
--- a/lib/Target/CellSPU/SPUISelDAGToDAG.cpp
+++ b/lib/Target/CellSPU/SPUISelDAGToDAG.cpp
@@ -143,9 +143,7 @@ namespace {
{
MVT::ValueType vt = FPN->getValueType(0);
if (vt == MVT::f32) {
- const APFloat &apf = FPN->getValueAPF();
- float fval = apf.convertToFloat();
- int val = *((int *) &fval);
+ int val = FloatToBits(FPN->getValueAPF().convertToFloat());
int sval = (int) ((val << 16) >> 16);
Imm = (short) val;
return val == sval;