; Generated from frame.c on Darwin with '-arch i386 -g -emit-llvm'
; ModuleID = 'frame.c'
target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128"
target triple = "i386-apple-macosx10.11.0"

; Function Attrs: nounwind ssp
define i32 @bar(i32 %b) #0 !dbg !4 {
entry:
  %b.addr = alloca i32, align 4
  %var = alloca i32, align 4
  store i32 %b, i32* %b.addr, align 4
  call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !13, metadata !14), !dbg !15
  call void @llvm.dbg.declare(metadata i32* %var, metadata !16, metadata !14), !dbg !17
  %0 = load i32, i32* %b.addr, align 4, !dbg !18
  %add = add nsw i32 %0, 1, !dbg !19
  store i32 %add, i32* %var, align 4, !dbg !17
  %call = call i32 @foo(i32* %var), !dbg !20
  ret i32 %call, !dbg !21
}

; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

declare i32 @foo(i32*) #2

; Function Attrs: nounwind ssp
define i32 @baz(i32 %b) #0 !dbg !8 {
entry:
  %b.addr = alloca i32, align 4
  store i32 %b, i32* %b.addr, align 4
  call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !22, metadata !14), !dbg !23
  %0 = load i32, i32* %b.addr, align 4, !dbg !24
  %call = call i32 @bar(i32 %0), !dbg !25
  ret i32 %call, !dbg !26
}

attributes #0 = { nounwind ssp "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="yonah" "target-features"="+cx16,+sse,+sse2,+sse3" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="yonah" "target-features"="+cx16,+sse,+sse2,+sse3" "unsafe-fp-math"="false" "use-soft-float"="false" }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!9, !10, !11}
!llvm.ident = !{!12}

!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (trunk 239176) (llvm/trunk 239190)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
!1 = !DIFile(filename: "frame.c", directory: "/tmp")
!2 = !{}
!4 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
!5 = !DISubroutineType(types: !6)
!6 = !{!7, !7}
!7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
!8 = distinct !DISubprogram(name: "baz", scope: !1, file: !1, line: 8, type: !5, isLocal: false, isDefinition: true, scopeLine: 8, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
!9 = !{i32 2, !"Dwarf Version", i32 2}
!10 = !{i32 2, !"Debug Info Version", i32 3}
!11 = !{i32 1, !"PIC Level", i32 2}
!12 = !{!"clang version 3.7.0 (trunk 239176) (llvm/trunk 239190)"}
!13 = !DILocalVariable(name: "b", arg: 1, scope: !4, file: !1, line: 3, type: !7)
!14 = !DIExpression()
!15 = !DILocation(line: 3, column: 13, scope: !4)
!16 = !DILocalVariable(name: "var", scope: !4, file: !1, line: 4, type: !7)
!17 = !DILocation(line: 4, column: 6, scope: !4)
!18 = !DILocation(line: 4, column: 12, scope: !4)
!19 = !DILocation(line: 4, column: 14, scope: !4)
!20 = !DILocation(line: 5, column: 9, scope: !4)
!21 = !DILocation(line: 5, column: 2, scope: !4)
!22 = !DILocalVariable(name: "b", arg: 1, scope: !8, file: !1, line: 8, type: !7)
!23 = !DILocation(line: 8, column: 13, scope: !8)
!24 = !DILocation(line: 9, column: 13, scope: !8)
!25 = !DILocation(line: 9, column: 9, scope: !8)
!26 = !DILocation(line: 9, column: 2, scope: !8)
