1; RUN: opt < %s -inline -S | FileCheck %s 2target 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 11define 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 27define void @callee_with_asm() { 28 call void asm sideeffect "mov\09r7, r7\09\09@ marker for objc_retainAutoreleaseReturnValue", ""() 29 ret void 30} 31 32declare i32 @__objc_personality_v0(...) 33