1 ; RUN: opt < %s -inline -S | FileCheck %s 2 target triple = "x86_64-apple-darwin" 3 4 ; In inliner, we assume that inline asm does not throw. This testing case makes 5 ; sure that the inliner does not convert "call asm" to "invoke asm". 6 ; rdar://15317907 7 ; CHECK-LABEL: @caller 8 ; Make sure we are generating "call asm" instead of "invoke asm". 9 ; CHECK: call void asm 10 ; CHECK-LABEL: @callee_with_asm 11 define void @caller() personality i8* bitcast (i32 (...)* @__objc_personality_v0 to i8*) { 12 br i1 undef, label %1, label %4 13 14 ; <label>:1 15 invoke void @callee_with_asm() 16 to label %4 unwind label %2 17 18 ; <label>:2 19 %3 = landingpad { i8*, i32 } 20 cleanup 21 resume { i8*, i32 } undef 22 23 ; <label>:4 24 ret void 25 } 26 27 define void @callee_with_asm() { 28 call void asm sideeffect "mov\09r7, r7\09\09@ marker for objc_retainAutoreleaseReturnValue", ""() 29 ret void 30 } 31 32 declare i32 @__objc_personality_v0(...) 33