; REQUIRES: x86-registered-target

; Test case 2 - Assembler instructions.

; hello-world.cpp
;  1  extern int printf(const char * format, ... );
;  2
;  3  int main()
;  4  {
;  5    printf("Hello, World\n");
;  6    return 0;
;  7  }

; Logical lines.
; The logical views shows the intermixed lines and assembler instructions,
; allowing to compare the code generated by the different toolchains.

; RUN: llvm-debuginfo-analyzer --attribute=language,level,format,producer \
; RUN:                         --print=lines,instructions \
; RUN:                         %p/Inputs/hello-world-codeview-clang.o \
; RUN:                         %p/Inputs/hello-world-codeview-msvc.o 2>&1 | \
; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s

; ONE:      Logical View:
; ONE-NEXT: [000]           {File} 'hello-world-codeview-clang.o' -> COFF-x86-64
; ONE-EMPTY:
; ONE-NEXT: [001]             {CompileUnit} 'hello-world.cpp'
; ONE-NEXT: [002]               {Producer} 'clang version 15.0.0 {{.*}}'
; ONE-NEXT: [002]               {Language} 'Cpp'
; ONE-NEXT: [002]               {Function} extern not_inlined 'main' -> 'int'
; ONE-NEXT: [003]     4           {Line}
; ONE-NEXT: [003]                 {Code} 'subq	$0x28, %rsp'
; ONE-NEXT: [003]                 {Code} 'movl	$0x0, 0x24(%rsp)'
; ONE-NEXT: [003]     5           {Line}
; ONE-NEXT: [003]                 {Code} 'leaq	(%rip), %rcx'
; ONE-NEXT: [003]                 {Code} 'callq	0x0'
; ONE-NEXT: [003]     6           {Line}
; ONE-NEXT: [003]                 {Code} 'xorl	%eax, %eax'
; ONE-NEXT: [003]                 {Code} 'addq	$0x28, %rsp'
; ONE-NEXT: [003]                 {Code} 'retq'
; ONE-EMPTY:
; ONE-NEXT: Logical View:
; ONE-NEXT: [000]           {File} 'hello-world-codeview-msvc.o' -> COFF-x86-64
; ONE-EMPTY:
; ONE-NEXT: [001]             {CompileUnit} 'hello-world.cpp'
; ONE-NEXT: [002]               {Producer} 'Microsoft (R) Optimizing Compiler'
; ONE-NEXT: [002]               {Language} 'Cpp'
; ONE-NEXT: [002]               {Function} extern not_inlined 'main' -> 'int'
; ONE-NEXT: [003]     4           {Line}
; ONE-NEXT: [003]                 {Code} 'subq	$0x28, %rsp'
; ONE-NEXT: [003]     5           {Line}
; ONE-NEXT: [003]                 {Code} 'leaq	(%rip), %rcx'
; ONE-NEXT: [003]                 {Code} 'callq	0x0'
; ONE-NEXT: [003]     6           {Line}
; ONE-NEXT: [003]                 {Code} 'xorl	%eax, %eax'
; ONE-NEXT: [003]     7           {Line}
; ONE-NEXT: [003]                 {Code} 'addq	$0x28, %rsp'
; ONE-NEXT: [003]                 {Code} 'retq'
