; RUN: llc < %s -mtriple=i386-apple-darwin9 -relocation-model=pic -disable-fp-elim | FileCheck %s



; PR7353 PR7334 rdar://8072315 rdar://8018308

define available_externally hidden 
void @_ZNSbIcED1Ev() nounwind readnone ssp align 2 {
entry:
  ret void
}

define void()* @test1() nounwind {
entry:
  ret void()* @_ZNSbIcED1Ev
}

; This must use movl of the stub, not an lea, since the function isn't being
; emitted here.
; CHECK: movl L__ZNSbIcED1Ev$non_lazy_ptr-L0$pb(




; <rdar://problem/7383328>

@.str = private constant [12 x i8] c"hello world\00", align 1 ; <[12 x i8]*> [#uses=1]

define hidden void @func() nounwind ssp uwtable {
entry:
  %0 = call i32 @puts(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
  br label %return

return:                                           ; preds = %entry
  ret void
}

declare i32 @puts(i8*)

define hidden i32 @main() nounwind ssp uwtable {
entry:
  %retval = alloca i32                            ; <i32*> [#uses=1]
  %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
  call void @func() nounwind
  br label %return

return:                                           ; preds = %entry
  %retval1 = load i32, i32* %retval                    ; <i32> [#uses=1]
  ret i32 %retval1
}
