2013-02-11 09:34:57 +01:00
|
|
|
; RUN: opt < %s -deadargelim -S | FileCheck %s
|
2008-01-12 00:13:45 +01:00
|
|
|
|
2013-02-11 09:34:57 +01:00
|
|
|
%struct = type { }
|
2007-12-21 20:16:16 +01:00
|
|
|
|
|
|
|
@g = global i8 0
|
|
|
|
|
2013-02-22 10:09:42 +01:00
|
|
|
; CHECK: define internal void @foo(i8 signext %y) [[NUW:#[0-9]+]]
|
2013-02-11 09:34:57 +01:00
|
|
|
|
2011-06-17 05:14:27 +02:00
|
|
|
define internal zeroext i8 @foo(i8* inreg %p, i8 signext %y, ... ) nounwind {
|
2013-02-11 09:34:57 +01:00
|
|
|
store i8 %y, i8* @g
|
|
|
|
ret i8 0
|
2007-12-21 20:16:16 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
define i32 @bar() {
|
2013-02-22 10:09:42 +01:00
|
|
|
; CHECK: call void @foo(i8 signext 1) [[NUW]]
|
2013-02-11 09:34:57 +01:00
|
|
|
%A = call zeroext i8(i8*, i8, ...)* @foo(i8* inreg null, i8 signext 1, %struct* byval null ) nounwind
|
|
|
|
ret i32 0
|
2007-12-21 20:16:16 +01:00
|
|
|
}
|
2013-02-20 08:21:42 +01:00
|
|
|
|
2013-02-22 10:09:42 +01:00
|
|
|
; CHECK: attributes [[NUW]] = { nounwind }
|