; RUN: opt -annotation-remarks -o /dev/null -S -pass-remarks-output=%t.opt.yaml %s -pass-remarks-missed=annotation-remarks 2>&1 | FileCheck %s
; RUN: cat %t.opt.yaml | FileCheck -check-prefix=YAML %s

; No remarks for this function, no instructions with metadata.
define void @none() {
; YAML-NOT:  Function:        none
  ret void
}

; Emit a remark that reports an instruction we can't analyze.
define void @unknown() {
; CHECK: Initialization inserted by -ftrivial-auto-var-init.
; YAML-LABEL: --- !Missed
; YAML-NEXT: Pass:            annotation-remarks
; YAML-NEXT: Name:            AutoInitUnknownInstruction
; YAML-NEXT: DebugLoc:
; YAML-NEXT: Function:        unknown
; YAML-NEXT: Args:
; YAML-NEXT:   - String:          Initialization inserted by -ftrivial-auto-var-init.
; YAML-NEXT: ...
  ret void, !annotation !0, !dbg !DILocation(scope: !4)
}

; Emit a remark that reports an intrinsic call to an unknown intrinsic.
define void @unknown_intrinsic(i32* %dst) {
; CHECK-NEXT: Initialization inserted by -ftrivial-auto-var-init.
; YAML-LABEL: --- !Missed
; YAML-NEXT: Pass:            annotation-remarks
; YAML-NEXT: Name:            AutoInitUnknownInstruction
; YAML-NEXT: DebugLoc:
; YAML-NEXT: Function:        unknown_intrinsic
  call i8* @llvm.returnaddress(i32 0), !annotation !0, !dbg !DILocation(scope: !4)
  ret void
}

declare i8* @llvm.returnaddress(i32) nounwind readnone

!llvm.module.flags = !{!1}
!0 = !{ !"auto-init" }
!1 = !{i32 2, !"Debug Info Version", i32 3}
!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3)
!3 = !DIFile(filename: "file", directory: "")
!4 = distinct !DISubprogram(name: "function", scope: !3, file: !3, unit: !2)
!5 = !DIBasicType(name: "byte", size: 8)
!6 = !DILocalVariable(name: "destination", scope: !4, file: !3, type: !5)
!7 = !DILocalVariable(name: "destination2", scope: !4, file: !3, type: !5)
