mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-18 06:38:41 +00:00
Don't do SRA for unions with long double fields.
Fixes a SWB crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42422 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
58ec8825d4
commit
ef0ab932ef
@ -905,6 +905,9 @@ static bool MergeInType(const Type *In, const Type *&Accum,
|
|||||||
case Type::PointerTyID: Accum = TD.getIntPtrType(); break;
|
case Type::PointerTyID: Accum = TD.getIntPtrType(); break;
|
||||||
case Type::FloatTyID: Accum = Type::Int32Ty; break;
|
case Type::FloatTyID: Accum = Type::Int32Ty; break;
|
||||||
case Type::DoubleTyID: Accum = Type::Int64Ty; 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:
|
default:
|
||||||
assert(Accum->isInteger() && "Unknown FP type!");
|
assert(Accum->isInteger() && "Unknown FP type!");
|
||||||
break;
|
break;
|
||||||
@ -914,6 +917,9 @@ static bool MergeInType(const Type *In, const Type *&Accum,
|
|||||||
case Type::PointerTyID: In = TD.getIntPtrType(); break;
|
case Type::PointerTyID: In = TD.getIntPtrType(); break;
|
||||||
case Type::FloatTyID: In = Type::Int32Ty; break;
|
case Type::FloatTyID: In = Type::Int32Ty; break;
|
||||||
case Type::DoubleTyID: In = Type::Int64Ty; 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:
|
default:
|
||||||
assert(In->isInteger() && "Unknown FP type!");
|
assert(In->isInteger() && "Unknown FP type!");
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user