mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 05:22:04 +00:00
Readonly/readnone functions are allowed to throw
exceptions, so don't turn invokes of them into calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44278 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
; RUN: llvm-upgrade < %s | llvm-as | opt -adce | llvm-dis | not grep null
|
||||
; RUN: llvm-as < %s | opt -adce | llvm-dis | grep null
|
||||
|
||||
declare int %strlen(sbyte*)
|
||||
declare i32 @strlen(i8*) readnone
|
||||
|
||||
int %test() {
|
||||
;; Dead call should be deleted!
|
||||
invoke int %strlen(sbyte *null) to label %Cont unwind label %Other
|
||||
Cont:
|
||||
ret int 0
|
||||
Other:
|
||||
ret int 1
|
||||
define i32 @test() {
|
||||
; invoke of pure function should not be deleted!
|
||||
invoke i32 @strlen( i8* null ) readnone
|
||||
to label %Cont unwind label %Other ; <i32>:1 [#uses=0]
|
||||
|
||||
Cont: ; preds = %0
|
||||
ret i32 0
|
||||
|
||||
Other: ; preds = %0
|
||||
ret i32 1
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user