1*d8584475SCarlos Alberto Enciso; REQUIRES: x86-registered-target 2*d8584475SCarlos Alberto Enciso 34f06d46fSCarlos Alberto Enciso; Test case 1 - General options. 44f06d46fSCarlos Alberto Enciso 54f06d46fSCarlos Alberto Enciso; test.cpp 64f06d46fSCarlos Alberto Enciso; 1 using INTPTR = const int *; 74f06d46fSCarlos Alberto Enciso; 2 int foo(INTPTR ParamPtr, unsigned ParamUnsigned, bool ParamBool) { 84f06d46fSCarlos Alberto Enciso; 3 if (ParamBool) { 94f06d46fSCarlos Alberto Enciso; 4 typedef int INTEGER; 104f06d46fSCarlos Alberto Enciso; 5 const INTEGER CONSTANT = 7; 114f06d46fSCarlos Alberto Enciso; 6 return CONSTANT; 124f06d46fSCarlos Alberto Enciso; 7 } 134f06d46fSCarlos Alberto Enciso; 8 return ParamUnsigned; 144f06d46fSCarlos Alberto Enciso; 9 } 154f06d46fSCarlos Alberto Enciso 164f06d46fSCarlos Alberto Enciso; Print basic details. 174f06d46fSCarlos Alberto Enciso; The following command prints basic details for all the logical elements 184f06d46fSCarlos Alberto Enciso; sorted by the debug information internal offset; it includes its lexical 194f06d46fSCarlos Alberto Enciso; level and debug info format. 204f06d46fSCarlos Alberto Enciso 214f06d46fSCarlos Alberto Enciso; RUN: llvm-debuginfo-analyzer --attribute=level,format \ 224f06d46fSCarlos Alberto Enciso; RUN: --output-sort=offset \ 234f06d46fSCarlos Alberto Enciso; RUN: --print=scopes,symbols,types,lines,instructions \ 244f06d46fSCarlos Alberto Enciso; RUN: %p/Inputs/test-dwarf-clang.o 2>&1 | \ 254f06d46fSCarlos Alberto Enciso; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s 264f06d46fSCarlos Alberto Enciso 274f06d46fSCarlos Alberto Enciso; RUN: llvm-debuginfo-analyzer --attribute=level,format \ 284f06d46fSCarlos Alberto Enciso; RUN: --output-sort=offset \ 294f06d46fSCarlos Alberto Enciso; RUN: --print=elements \ 304f06d46fSCarlos Alberto Enciso; RUN: %p/Inputs/test-dwarf-clang.o 2>&1 | \ 314f06d46fSCarlos Alberto Enciso; RUN: FileCheck --strict-whitespace -check-prefix=ONE %s 324f06d46fSCarlos Alberto Enciso 334f06d46fSCarlos Alberto Enciso; ONE: Logical View: 344f06d46fSCarlos Alberto Enciso; ONE-NEXT: [000] {File} 'test-dwarf-clang.o' -> elf64-x86-64 354f06d46fSCarlos Alberto Enciso; ONE-EMPTY: 364f06d46fSCarlos Alberto Enciso; ONE-NEXT: [001] {CompileUnit} 'test.cpp' 374f06d46fSCarlos Alberto Enciso; ONE-NEXT: [002] 2 {Function} extern not_inlined 'foo' -> 'int' 384f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 2 {Parameter} 'ParamPtr' -> 'INTPTR' 394f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 2 {Parameter} 'ParamUnsigned' -> 'unsigned int' 404f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 2 {Parameter} 'ParamBool' -> 'bool' 414f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Block} 424f06d46fSCarlos Alberto Enciso; ONE-NEXT: [004] 5 {Variable} 'CONSTANT' -> 'const INTEGER' 434f06d46fSCarlos Alberto Enciso; ONE-NEXT: [004] 5 {Line} 444f06d46fSCarlos Alberto Enciso; ONE-NEXT: [004] {Code} 'movl $0x7, -0x1c(%rbp)' 454f06d46fSCarlos Alberto Enciso; ONE-NEXT: [004] 6 {Line} 464f06d46fSCarlos Alberto Enciso; ONE-NEXT: [004] {Code} 'movl $0x7, -0x4(%rbp)' 474f06d46fSCarlos Alberto Enciso; ONE-NEXT: [004] {Code} 'jmp 0x6' 484f06d46fSCarlos Alberto Enciso; ONE-NEXT: [004] 8 {Line} 494f06d46fSCarlos Alberto Enciso; ONE-NEXT: [004] {Code} 'movl -0x14(%rbp), %eax' 504f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 4 {TypeAlias} 'INTEGER' -> 'int' 514f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 2 {Line} 524f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'pushq %rbp' 534f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'movq %rsp, %rbp' 544f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'movb %dl, %al' 554f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'movq %rdi, -0x10(%rbp)' 564f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'movl %esi, -0x14(%rbp)' 574f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'andb $0x1, %al' 584f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'movb %al, -0x15(%rbp)' 594f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 3 {Line} 604f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'testb $0x1, -0x15(%rbp)' 614f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'je 0x13' 624f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 8 {Line} 634f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'movl %eax, -0x4(%rbp)' 644f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 9 {Line} 654f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'movl -0x4(%rbp), %eax' 664f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'popq %rbp' 674f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] {Code} 'retq' 684f06d46fSCarlos Alberto Enciso; ONE-NEXT: [003] 9 {Line} 694f06d46fSCarlos Alberto Enciso; ONE-NEXT: [002] 1 {TypeAlias} 'INTPTR' -> '* const int' 70