mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
61a1a08d08
Summary: When checking if a constant expression is a noop cast we fetched the IntPtrType by doing DL->getIntPtrType(V->getType())). However, there can be cases where V doesn't return a pointer, and then getIntPtrType() triggers an assertion. Now we pass DataLayout to isNoopCast so the method itself can determine what the IntPtrType is. Reviewers: arsenm Reviewed By: arsenm Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D37894 llvm-svn: 314763
24 lines
560 B
LLVM
24 lines
560 B
LLVM
; RUN: opt -lint < %s
|
|
|
|
; lint shouldn't crash on any of the below functions
|
|
|
|
@g_1 = external global [3 x i32]
|
|
@g_2 = external global [2 x i32]
|
|
|
|
define void @test1() {
|
|
entry:
|
|
tail call void @f1(i16 zext (i1 icmp eq (i32* getelementptr inbounds ([2 x i32], [2 x i32]* @g_2, i64 0, i64 0), i32* getelementptr inbounds ([3 x i32], [3 x i32]* @g_1, i64 0, i64 1)) to i16))
|
|
ret void
|
|
}
|
|
|
|
declare void @f1(i16)
|
|
|
|
define void @test2() {
|
|
tail call void inttoptr (i64 sext (i32 ptrtoint (void ()* @f2 to i32) to i64) to void ()*)()
|
|
|
|
ret void
|
|
}
|
|
|
|
declare void @f2()
|
|
|