; RUN: llc -mtriple=x86_64-windows-msvc < %s -filetype=obj | llvm-readobj --codeview - | FileCheck %s --check-prefix=OBJ

; This LL file was generated by running 'clang -g -gcodeview' on the
; following code:
; void useint(int);
; void constant_var() {
;   int x = 42;
;   useint(x);
;   useint(x);
; }

; FIXME: Find a way to describe variables optimized to constants.

; OBJ:        {{.*}}Proc{{.*}}Sym {
; OBJ:           DisplayName: constant_var
; OBJ:         }
; OBJ:         LocalSym {
; OBJ-NEXT:      Kind:
; OBJ-NEXT:      Type: int (0x74)
; OBJ-NEXT:      Flags [ (0x100)
; OBJ-NEXT:        IsOptimizedOut (0x100)
; OBJ-NEXT:      ]
; OBJ-NEXT:      VarName: x
; OBJ-NEXT:    }
; OBJ-NOT:     DefRange
; OBJ:         ProcEnd

; ModuleID = 't.cpp'
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc18.0.0"

; Function Attrs: nounwind uwtable
define void @"\01?constant_var@@YAXXZ"() #0 !dbg !4 {
entry:
  tail call void @llvm.dbg.value(metadata i32 42, metadata !8, metadata !14), !dbg !15
  tail call void @"\01?useint@@YAXH@Z"(i32 42) #3, !dbg !16
  tail call void @"\01?useint@@YAXH@Z"(i32 42) #3, !dbg !17
  ret void, !dbg !18
}

declare void @"\01?useint@@YAXH@Z"(i32) #1

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

attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #2 = { nounwind readnone }
attributes #3 = { nounwind }

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

!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.9.0 (trunk 260957)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
!1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
!2 = !{}
!4 = distinct !DISubprogram(name: "constant_var", linkageName: "\01?constant_var@@YAXXZ", scope: !1, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !7)
!5 = !DISubroutineType(types: !6)
!6 = !{null}
!7 = !{!8}
!8 = !DILocalVariable(name: "x", scope: !4, file: !1, line: 3, type: !9)
!9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
!10 = !{i32 2, !"CodeView", i32 1}
!11 = !{i32 2, !"Debug Info Version", i32 3}
!12 = !{i32 1, !"PIC Level", i32 2}
!13 = !{!"clang version 3.9.0 (trunk 260957)"}
!14 = !DIExpression()
!15 = !DILocation(line: 3, column: 7, scope: !4)
!16 = !DILocation(line: 4, column: 3, scope: !4)
!17 = !DILocation(line: 5, column: 3, scope: !4)
!18 = !DILocation(line: 6, column: 1, scope: !4)
