Don't do SRA for unions with long double fields.
authorDale Johannesen <dalej@apple.com>
Fri, 28 Sep 2007 00:21:38 +0000 (00:21 +0000)
committerDale Johannesen <dalej@apple.com>
Fri, 28 Sep 2007 00:21:38 +0000 (00:21 +0000)
Fixes a SWB crash.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42422 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/ScalarReplAggregates.cpp

index 1092b8892771f090100a4f8c787212e3ac6a7561..1d9e402494ab8f00bff8c94317633121ba6dd910 100644 (file)
@@ -905,6 +905,9 @@ static bool MergeInType(const Type *In, const Type *&Accum,
     case Type::PointerTyID: Accum = TD.getIntPtrType(); break;
     case Type::FloatTyID:   Accum = Type::Int32Ty; break;
     case Type::DoubleTyID:  Accum = Type::Int64Ty; break;
+    case Type::X86_FP80TyID:  return true;
+    case Type::FP128TyID: return true;
+    case Type::PPC_FP128TyID: return true;
     default:
       assert(Accum->isInteger() && "Unknown FP type!");
       break;
@@ -914,6 +917,9 @@ static bool MergeInType(const Type *In, const Type *&Accum,
     case Type::PointerTyID: In = TD.getIntPtrType(); break;
     case Type::FloatTyID:   In = Type::Int32Ty; break;
     case Type::DoubleTyID:  In = Type::Int64Ty; break;
+    case Type::X86_FP80TyID:  return true;
+    case Type::FP128TyID: return true;
+    case Type::PPC_FP128TyID: return true;
     default:
       assert(In->isInteger() && "Unknown FP type!");
       break;