mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-24 11:36:10 +00:00
IR: SrcTy == DstTy doesn't imply that a cast is valid
Cast validity depends on the cast's kind, not just its types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229366 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
415561b6e0
commit
b7a7566165
@ -2864,10 +2864,6 @@ CastInst::castIsValid(Instruction::CastOps op, Value *S, Type *DstTy) {
|
||||
// Check for type sanity on the arguments
|
||||
Type *SrcTy = S->getType();
|
||||
|
||||
// If this is a cast to the same type then it's trivially true.
|
||||
if (SrcTy == DstTy)
|
||||
return true;
|
||||
|
||||
if (!SrcTy->isFirstClassType() || !DstTy->isFirstClassType() ||
|
||||
SrcTy->isAggregateType() || DstTy->isAggregateType())
|
||||
return false;
|
||||
|
4
test/Assembler/invalid_cast4.ll
Normal file
4
test/Assembler/invalid_cast4.ll
Normal file
@ -0,0 +1,4 @@
|
||||
; RUN: not llvm-as < %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: invalid cast opcode for cast from 'i64' to 'i64'
|
||||
global i64* inttoptr (i64 0 to i64)
|
Loading…
x
Reference in New Issue
Block a user