diff options
Diffstat (limited to 'lit/SymbolFile')
100 files changed, 0 insertions, 6380 deletions
diff --git a/lit/SymbolFile/Breakpad/Inputs/basic-elf.yaml b/lit/SymbolFile/Breakpad/Inputs/basic-elf.yaml deleted file mode 100644 index 4d6a1e15b604..000000000000 --- a/lit/SymbolFile/Breakpad/Inputs/basic-elf.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# A very basic ELF file to serve as a recipient of breakpad info - ---- !ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_EXEC - Machine: EM_X86_64 - Entry: 0x00000000004000D0 -Sections: - - Name: .text1 - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - Address: 0x0000000000400000 - AddressAlign: 0x0000000000001000 - Size: 0xb0 - - Name: .text2 - Type: SHT_PROGBITS - Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - Address: 0x00000000004000B0 - AddressAlign: 0x0000000000000010 - Size: 0x42 -Symbols: -DynamicSymbols: -ProgramHeaders: - - Type: PT_LOAD - Flags: [ PF_X, PF_R ] - VAddr: 0x400000 - Align: 0x1000 - Sections: - - Section: .text1 - - Section: .text2 -... diff --git a/lit/SymbolFile/Breakpad/Inputs/symtab.syms b/lit/SymbolFile/Breakpad/Inputs/symtab.syms deleted file mode 100644 index ab03b50a75a9..000000000000 --- a/lit/SymbolFile/Breakpad/Inputs/symtab.syms +++ /dev/null @@ -1,7 +0,0 @@ -MODULE Linux x86_64 761550E08086333960A9074A9CE2895C0 a.out -INFO CODE_ID E05015768680393360A9074A9CE2895C -FILE 0 /tmp/a.c -PUBLIC b0 0 f1 -PUBLIC m c0 0 f2 -PUBLIC d0 0 _start -PUBLIC ff 0 _out_of_range_ignored diff --git a/lit/SymbolFile/Breakpad/symtab.test b/lit/SymbolFile/Breakpad/symtab.test deleted file mode 100644 index 6bb26eb108c9..000000000000 --- a/lit/SymbolFile/Breakpad/symtab.test +++ /dev/null @@ -1,23 +0,0 @@ -# RUN: yaml2obj %S/Inputs/basic-elf.yaml > %T/symtab.out -# RUN: %lldb %T/symtab.out -o "target symbols add -s symtab.out %S/Inputs/symtab.syms" \ -# RUN: -s %s | FileCheck %s - -# CHECK-LABEL: (lldb) image dump symtab symtab.out -# CHECK: Symtab, file = {{.*}}symtab.out, num_symbols = 3: -# CHECK: Index UserID DSX Type File Address/Value Load Address Size Flags Name -# CHECK: [ 0] 0 X Code 0x00000000004000b0 0x0000000000000010 0x00000000 f1 -# CHECK: [ 1] 0 X Code 0x00000000004000c0 0x0000000000000010 0x00000000 f2 -# CHECK: [ 2] 0 X Code 0x00000000004000d0 0x0000000000000022 0x00000000 _start - -# CHECK-LABEL: (lldb) image lookup -a 0x4000b0 -v -# CHECK: Address: symtab.out[0x00000000004000b0] (symtab.out.PT_LOAD[0]..text2 + 0) -# CHECK: Symbol: id = {0x00000000}, range = [0x00000000004000b0-0x00000000004000c0), name="f1" - -# CHECK-LABEL: (lldb) image lookup -n f2 -v -# CHECK: Address: symtab.out[0x00000000004000c0] (symtab.out.PT_LOAD[0]..text2 + 16) -# CHECK: Symbol: id = {0x00000000}, range = [0x00000000004000c0-0x00000000004000d0), name="f2" - -image dump symtab symtab.out -image lookup -a 0x4000b0 -v -image lookup -n f2 -v -exit diff --git a/lit/SymbolFile/DWARF/Inputs/find-variable-file-2.cpp b/lit/SymbolFile/DWARF/Inputs/find-variable-file-2.cpp deleted file mode 100644 index cd02cb07c62c..000000000000 --- a/lit/SymbolFile/DWARF/Inputs/find-variable-file-2.cpp +++ /dev/null @@ -1,3 +0,0 @@ -namespace two { -int foo; -} diff --git a/lit/SymbolFile/DWARF/apple-index-is-used.cpp b/lit/SymbolFile/DWARF/apple-index-is-used.cpp deleted file mode 100644 index 00440531e99f..000000000000 --- a/lit/SymbolFile/DWARF/apple-index-is-used.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// Test that we use the apple indexes. -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols %t | FileCheck %s - -// CHECK: .apple_names index present -// CHECK: .apple_types index present - -int foo; diff --git a/lit/SymbolFile/DWARF/array-sizes.s b/lit/SymbolFile/DWARF/array-sizes.s deleted file mode 100644 index c472d54a489c..000000000000 --- a/lit/SymbolFile/DWARF/array-sizes.s +++ /dev/null @@ -1,147 +0,0 @@ -# This tests a bug where we would incorrectly parse the size of an array if that -# size happened to match an existing DIE offset. This happened because we -# misinterpreted that value as a reference to a DIE specifying the VLA size even -# though the form was a data form (as it should be). - -# REQUIRES: lld - -# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj > %t.o -# RUN: ld.lld %t.o -o %t -# RUN: lldb-test symbols %t | FileCheck %s - -# CHECK: Variable{0xffffffff0000001e}, name = "X" -# CHECK-SAME: type = {ffffffff00000033} 0x{{[0-9a-f]*}} (char [56]) - - -# Generated from "char X[47];" -# The array size was modified by hand. - - .text - .file "-" - .file 1 "/tmp" "<stdin>" - .type X,@object # @X - .comm X,63,16 - .section .debug_str,"MS",@progbits,1 -.Linfo_string0: - .asciz "clang version 8.0.0 (trunk 349604) (llvm/trunk 349608)" # string offset=0 -.Linfo_string1: - .asciz "-" # string offset=55 -.Linfo_string2: - .asciz "/tmp" # string offset=57 -.Linfo_string3: - .asciz "X" # string offset=62 -.Linfo_string4: - .asciz "char" # string offset=64 -.Linfo_string5: - .asciz "__ARRAY_SIZE_TYPE__" # string offset=69 - .section .debug_abbrev,"",@progbits - .byte 1 # Abbreviation Code - .byte 17 # DW_TAG_compile_unit - .byte 1 # DW_CHILDREN_yes - .byte 37 # DW_AT_producer - .byte 14 # DW_FORM_strp - .byte 19 # DW_AT_language - .byte 5 # DW_FORM_data2 - .byte 3 # DW_AT_name - .byte 14 # DW_FORM_strp - .byte 16 # DW_AT_stmt_list - .byte 23 # DW_FORM_sec_offset - .byte 27 # DW_AT_comp_dir - .byte 14 # DW_FORM_strp - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 2 # Abbreviation Code - .byte 52 # DW_TAG_variable - .byte 0 # DW_CHILDREN_no - .byte 3 # DW_AT_name - .byte 14 # DW_FORM_strp - .byte 73 # DW_AT_type - .byte 19 # DW_FORM_ref4 - .byte 63 # DW_AT_external - .byte 25 # DW_FORM_flag_present - .byte 58 # DW_AT_decl_file - .byte 11 # DW_FORM_data1 - .byte 59 # DW_AT_decl_line - .byte 11 # DW_FORM_data1 - .byte 2 # DW_AT_location - .byte 24 # DW_FORM_exprloc - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 3 # Abbreviation Code - .byte 1 # DW_TAG_array_type - .byte 1 # DW_CHILDREN_yes - .byte 73 # DW_AT_type - .byte 19 # DW_FORM_ref4 - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 4 # Abbreviation Code - .byte 33 # DW_TAG_subrange_type - .byte 0 # DW_CHILDREN_no - .byte 73 # DW_AT_type - .byte 19 # DW_FORM_ref4 - .byte 55 # DW_AT_count - .byte 11 # DW_FORM_data1 - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 5 # Abbreviation Code - .byte 36 # DW_TAG_base_type - .byte 0 # DW_CHILDREN_no - .byte 3 # DW_AT_name - .byte 14 # DW_FORM_strp - .byte 62 # DW_AT_encoding - .byte 11 # DW_FORM_data1 - .byte 11 # DW_AT_byte_size - .byte 11 # DW_FORM_data1 - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 6 # Abbreviation Code - .byte 36 # DW_TAG_base_type - .byte 0 # DW_CHILDREN_no - .byte 3 # DW_AT_name - .byte 14 # DW_FORM_strp - .byte 11 # DW_AT_byte_size - .byte 11 # DW_FORM_data1 - .byte 62 # DW_AT_encoding - .byte 11 # DW_FORM_data1 - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 0 # EOM(3) - .section .debug_info,"",@progbits -.Lcu_begin0: - .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit -.Ldebug_info_start0: - .short 4 # DWARF version number - .long .debug_abbrev # Offset Into Abbrev. Section - .byte 8 # Address Size (in bytes) - .byte 1 # Abbrev [1] 0xb:0x43 DW_TAG_compile_unit - .long .Linfo_string0 # DW_AT_producer - .short 12 # DW_AT_language - .long .Linfo_string1 # DW_AT_name - .long 0 # DW_AT_stmt_list - .long .Linfo_string2 # DW_AT_comp_dir - .byte 2 # Abbrev [2] 0x1e:0x15 DW_TAG_variable - .long .Linfo_string3 # DW_AT_name - .long 51 # DW_AT_type - # DW_AT_external - .byte 1 # DW_AT_decl_file - .byte 1 # DW_AT_decl_line - .byte 9 # DW_AT_location - .byte 3 - .quad X - .byte 3 # Abbrev [3] 0x33:0xc DW_TAG_array_type - .long 63 # DW_AT_type -.Ldie: - .byte 4 # Abbrev [4] 0x38:0x6 DW_TAG_subrange_type - .long 70 # DW_AT_type - .byte .Ldie-.Lcu_begin0 # DW_AT_count - should match the offset of an existing die - .byte 0 # End Of Children Mark - .byte 5 # Abbrev [5] 0x3f:0x7 DW_TAG_base_type - .long .Linfo_string4 # DW_AT_name - .byte 6 # DW_AT_encoding - .byte 1 # DW_AT_byte_size - .byte 6 # Abbrev [6] 0x46:0x7 DW_TAG_base_type - .long .Linfo_string5 # DW_AT_name - .byte 8 # DW_AT_byte_size - .byte 7 # DW_AT_encoding - .byte 0 # End Of Children Mark -.Ldebug_info_end0: diff --git a/lit/SymbolFile/DWARF/childless-compile-unit.s b/lit/SymbolFile/DWARF/childless-compile-unit.s deleted file mode 100644 index d167e0503c52..000000000000 --- a/lit/SymbolFile/DWARF/childless-compile-unit.s +++ /dev/null @@ -1,45 +0,0 @@ -# Test that we don't crash when parsing slightly invalid DWARF. The compile -# unit in this file sets DW_CHILDREN_no, but it still includes an -# end-of-children marker in its contribution. - -# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj > %t.o -# RUN: lldb-test symbols %t.o - - .section .debug_str,"MS",@progbits,1 -.Linfo_string0: - .asciz "Hand-written DWARF" -.Linfo_string1: - .asciz "-" -.Linfo_string2: - .asciz "/tmp" - - .section .debug_abbrev,"",@progbits - .byte 1 # Abbreviation Code - .byte 17 # DW_TAG_compile_unit - .byte 0 # DW_CHILDREN_no - .byte 37 # DW_AT_producer - .byte 14 # DW_FORM_strp - .byte 19 # DW_AT_language - .byte 5 # DW_FORM_data2 - .byte 3 # DW_AT_name - .byte 14 # DW_FORM_strp - .byte 27 # DW_AT_comp_dir - .byte 14 # DW_FORM_strp - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 0 # EOM(3) - - .section .debug_info,"",@progbits -.Lcu_begin0: - .long .Lcu_length_end-.Lcu_length_start # Length of Unit -.Lcu_length_start: - .short 4 # DWARF version number - .long .debug_abbrev # Offset Into Abbrev. Section - .byte 8 # Address Size (in bytes) - .byte 1 # Abbrev [1] 0xb:0x30 DW_TAG_compile_unit - .long .Linfo_string0 # DW_AT_producer - .short 12 # DW_AT_language - .long .Linfo_string1 # DW_AT_name - .long .Linfo_string2 # DW_AT_comp_dir - .byte 0 # Bogus End Of Children Mark -.Lcu_length_end: diff --git a/lit/SymbolFile/DWARF/debug-names-compressed.cpp b/lit/SymbolFile/DWARF/debug-names-compressed.cpp deleted file mode 100644 index aeb0ff1d01b1..000000000000 --- a/lit/SymbolFile/DWARF/debug-names-compressed.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// Test for a bug where we crashed while processing a compressed debug_names -// section (use after free). - -// REQUIRES: lld, zlib - -// RUN: %clang -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf %s -// RUN: ld.lld %t.o -o %t --compress-debug-sections=zlib -// RUN: lldb-test symbols --find=variable --name=foo %t | FileCheck %s - -// CHECK: Found 1 variables: -int foo; -// ONE-DAG: name = "foo", type = {{.*}} (int), {{.*}} decl = debug-names-compressed.cpp:[[@LINE-1]] - -extern "C" void _start() {} diff --git a/lit/SymbolFile/DWARF/dwarf5-index-is-used.cpp b/lit/SymbolFile/DWARF/dwarf5-index-is-used.cpp deleted file mode 100644 index f5122ebadae2..000000000000 --- a/lit/SymbolFile/DWARF/dwarf5-index-is-used.cpp +++ /dev/null @@ -1,13 +0,0 @@ -// Test that we use the DWARF v5 name indexes. - -// REQUIRES: lld - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf -gpubnames -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols %t | FileCheck %s - -// CHECK: Name Index -// CHECK: String: 0x{{.*}} "_start" -// CHECK: Tag: DW_TAG_subprogram - -extern "C" void _start() {} diff --git a/lit/SymbolFile/DWARF/dwarf5-partial-index.cpp b/lit/SymbolFile/DWARF/dwarf5-partial-index.cpp deleted file mode 100644 index 84e3b62e17bb..000000000000 --- a/lit/SymbolFile/DWARF/dwarf5-partial-index.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// Test that we return complete results when only a part of the binary is built -// with an index. - -// REQUIRES: lld - -// RUN: %clang %s -g -c -o %t-1.o --target=x86_64-pc-linux -DONE -mllvm -accel-tables=Dwarf -// RUN: %clang %s -g -c -o %t-2.o --target=x86_64-pc-linux -DTWO -mllvm -accel-tables=Dwarf -// RUN: ld.lld %t-1.o %t-2.o -o %t -// RUN: lldb-test symbols --find=variable --name=foo %t | FileCheck %s - -// CHECK: Found 2 variables: -#ifdef ONE -namespace one { -int foo; -// CHECK-DAG: name = "foo", {{.*}} decl = dwarf5-partial-index.cpp:[[@LINE-1]] -} // namespace one -extern "C" void _start() {} -#else -namespace two { -int foo; -// CHECK-DAG: name = "foo", {{.*}} decl = dwarf5-partial-index.cpp:[[@LINE-1]] -} // namespace two -#endif diff --git a/lit/SymbolFile/DWARF/find-basic-function.cpp b/lit/SymbolFile/DWARF/find-basic-function.cpp deleted file mode 100644 index 3d175f63e047..000000000000 --- a/lit/SymbolFile/DWARF/find-basic-function.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// REQUIRES: lld - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Disable -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=function --function-flags=base %t | \ -// RUN: FileCheck --check-prefix=BASE %s -// RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ -// RUN: FileCheck --check-prefix=METHOD %s -// RUN: lldb-test symbols --name=foo --find=function --function-flags=full %t | \ -// RUN: FileCheck --check-prefix=FULL %s -// RUN: lldb-test symbols --name=_Z3fooi --find=function --function-flags=full %t | \ -// RUN: FileCheck --check-prefix=FULL-MANGLED %s -// RUN: lldb-test symbols --name=foo --context=context --find=function --function-flags=base %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=function %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s -// -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols --name=foo --find=function --function-flags=base %t | \ -// RUN: FileCheck --check-prefix=BASE %s -// RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ -// RUN: FileCheck --check-prefix=METHOD %s -// RUN: lldb-test symbols --name=foo --find=function --function-flags=full %t | \ -// RUN: FileCheck --check-prefix=FULL %s -// RUN: lldb-test symbols --name=_Z3fooi --find=function --function-flags=full %t | \ -// RUN: FileCheck --check-prefix=FULL-MANGLED %s -// RUN: lldb-test symbols --name=foo --context=context --find=function --function-flags=base %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=function %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=function --function-flags=base %t | \ -// RUN: FileCheck --check-prefix=BASE %s -// RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ -// RUN: FileCheck --check-prefix=METHOD %s -// RUN: lldb-test symbols --name=foo --find=function --function-flags=full %t | \ -// RUN: FileCheck --check-prefix=FULL %s -// RUN: lldb-test symbols --name=_Z3fooi --find=function --function-flags=full %t | \ -// RUN: FileCheck --check-prefix=FULL-MANGLED %s -// RUN: lldb-test symbols --name=foo --context=context --find=function --function-flags=base %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=function %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s - -// BASE: Found 4 functions: -// BASE-DAG: name = "foo()", mangled = "_Z3foov" -// BASE-DAG: name = "foo(int)", mangled = "_Z3fooi" -// BASE-DAG: name = "bar::foo()", mangled = "_ZN3bar3fooEv" -// BASE-DAG: name = "bar::baz::foo()", mangled = "_ZN3bar3baz3fooEv" - -// METHOD: Found 3 functions: -// METHOD-DAG: name = "sbar::foo()", mangled = "_ZN4sbar3fooEv" -// METHOD-DAG: name = "sbar::foo(int)", mangled = "_ZN4sbar3fooEi" -// METHOD-DAG: name = "ffbar()::sbaz::foo()", mangled = "_ZZ5ffbarvEN4sbaz3fooEv" - -// FULL: Found 7 functions: -// FULL-DAG: name = "foo()", mangled = "_Z3foov" -// FULL-DAG: name = "foo(int)", mangled = "_Z3fooi" -// FULL-DAG: name = "bar::foo()", mangled = "_ZN3bar3fooEv" -// FULL-DAG: name = "bar::baz::foo()", mangled = "_ZN3bar3baz3fooEv" -// FULL-DAG: name = "sbar::foo()", mangled = "_ZN4sbar3fooEv" -// FULL-DAG: name = "sbar::foo(int)", mangled = "_ZN4sbar3fooEi" -// FULL-DAG: name = "ffbar()::sbaz::foo()", mangled = "_ZZ5ffbarvEN4sbaz3fooEv" - -// FULL-MANGLED: Found 1 functions: -// FULL-MANGLED-DAG: name = "foo(int)", mangled = "_Z3fooi" - -// CONTEXT: Found 1 functions: -// CONTEXT-DAG: name = "bar::foo()", mangled = "_ZN3bar3fooEv" - -// EMPTY: Found 0 functions: - -void foo() {} -void foo(int) {} - -namespace bar { -int context; -void foo() {} -namespace baz { -void foo() {} -} // namespace baz -} // namespace bar - -struct foo {}; -void fbar(struct foo) {} - -void Foo() {} - -struct sbar { - void foo(); - static void foo(int); -}; -void sbar::foo() {} -void sbar::foo(int) {} - -void ffbar() { - struct sbaz { - void foo() {} - }; - sbaz a; - a.foo(); -} - -extern "C" void _start() {} diff --git a/lit/SymbolFile/DWARF/find-basic-namespace.cpp b/lit/SymbolFile/DWARF/find-basic-namespace.cpp deleted file mode 100644 index e7655a37053c..000000000000 --- a/lit/SymbolFile/DWARF/find-basic-namespace.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// REQUIRES: lld - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Disable -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=namespace %t | \ -// RUN: FileCheck --check-prefix=FOO %s -// RUN: lldb-test symbols --name=foo --find=namespace --context=context %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=namespace %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s -// -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols --name=foo --find=namespace %t | \ -// RUN: FileCheck --check-prefix=FOO %s -// RUN: lldb-test symbols --name=foo --find=namespace --context=context %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=namespace %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=namespace %t | \ -// RUN: FileCheck --check-prefix=FOO %s -// RUN: lldb-test symbols --name=foo --find=namespace --context=context %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=namespace %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s - -// FOO: Found namespace: foo - -// CONTEXT: Found namespace: bar::foo - -// EMPTY: Namespace not found. - -namespace foo { -int X; -} - -namespace bar { -int context; -namespace foo { -int X; -} -} // namespace bar - -extern "C" void _start() {} diff --git a/lit/SymbolFile/DWARF/find-basic-type.cpp b/lit/SymbolFile/DWARF/find-basic-type.cpp deleted file mode 100644 index 060a5b41eebc..000000000000 --- a/lit/SymbolFile/DWARF/find-basic-type.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// REQUIRES: lld - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Disable -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=type %t | \ -// RUN: FileCheck --check-prefix=NAME %s -// RUN: lldb-test symbols --name=foo --context=context --find=type %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=type %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s -// -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols --name=foo --find=type %t | \ -// RUN: FileCheck --check-prefix=NAME %s -// RUN: lldb-test symbols --name=foo --context=context --find=type %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=type %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=type %t | \ -// RUN: FileCheck --check-prefix=NAME %s -// RUN: lldb-test symbols --name=foo --context=context --find=type %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=not_there --find=type %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s - -// EMPTY: Found 0 types: -// NAME: Found 4 types: -// CONTEXT: Found 1 types: -struct foo { }; -// NAME-DAG: name = "foo", {{.*}} decl = find-basic-type.cpp:[[@LINE-1]] - -namespace bar { -int context; -struct foo {}; -// NAME-DAG: name = "foo", {{.*}} decl = find-basic-type.cpp:[[@LINE-1]] -// CONTEXT-DAG: name = "foo", {{.*}} decl = find-basic-type.cpp:[[@LINE-2]] -namespace baz { -struct foo {}; -// NAME-DAG: name = "foo", {{.*}} decl = find-basic-type.cpp:[[@LINE-1]] -} -} - -struct sbar { - struct foo {}; -// NAME-DAG: name = "foo", {{.*}} decl = find-basic-type.cpp:[[@LINE-1]] -}; - -struct foobar {}; - -struct Foo {}; - -extern "C" void _start(foo, bar::foo, bar::baz::foo, sbar::foo, foobar, Foo) {} diff --git a/lit/SymbolFile/DWARF/find-basic-variable.cpp b/lit/SymbolFile/DWARF/find-basic-variable.cpp deleted file mode 100644 index bca8f27e1d4e..000000000000 --- a/lit/SymbolFile/DWARF/find-basic-variable.cpp +++ /dev/null @@ -1,76 +0,0 @@ -// REQUIRES: lld - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Disable -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=variable --context=context %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=foo --find=variable %t | \ -// RUN: FileCheck --check-prefix=NAME %s -// RUN: lldb-test symbols --regex --name=foo --find=variable %t | \ -// RUN: FileCheck --check-prefix=REGEX %s -// RUN: lldb-test symbols --name=not_there --find=variable %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s -// -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols --name=foo --find=variable --context=context %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=foo --find=variable %t | \ -// RUN: FileCheck --check-prefix=NAME %s -// RUN: lldb-test symbols --regex --name=foo --find=variable %t | \ -// RUN: FileCheck --check-prefix=REGEX %s -// RUN: lldb-test symbols --name=not_there --find=variable %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s -// -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=variable --context=context %t | \ -// RUN: FileCheck --check-prefix=CONTEXT %s -// RUN: lldb-test symbols --name=foo --find=variable %t | \ -// RUN: FileCheck --check-prefix=NAME %s -// RUN: lldb-test symbols --regex --name=foo --find=variable %t | \ -// RUN: FileCheck --check-prefix=REGEX %s -// RUN: lldb-test symbols --name=not_there --find=variable %t | \ -// RUN: FileCheck --check-prefix=EMPTY %s - -// EMPTY: Found 0 variables: -// NAME: Found 4 variables: -// CONTEXT: Found 1 variables: -// REGEX: Found 5 variables: -int foo; -// NAME-DAG: name = "foo", type = {{.*}} (int), {{.*}} decl = find-basic-variable.cpp:[[@LINE-1]] -// REGEX-DAG: name = "foo", type = {{.*}} (int), {{.*}} decl = find-basic-variable.cpp:[[@LINE-2]] -namespace bar { -int context; -long foo; -// NAME-DAG: name = "foo", type = {{.*}} (long int), {{.*}} decl = find-basic-variable.cpp:[[@LINE-1]] -// CONTEXT-DAG: name = "foo", type = {{.*}} (long int), {{.*}} decl = find-basic-variable.cpp:[[@LINE-2]] -// REGEX-DAG: name = "foo", type = {{.*}} (long int), {{.*}} decl = find-basic-variable.cpp:[[@LINE-3]] -namespace baz { -static short foo; -// NAME-DAG: name = "foo", type = {{.*}} (short), {{.*}} decl = find-basic-variable.cpp:[[@LINE-1]] -// REGEX-DAG: name = "foo", type = {{.*}} (short), {{.*}} decl = find-basic-variable.cpp:[[@LINE-2]] -} -} - -struct sbar { - static int foo; -// NAME-DAG: name = "foo", type = {{.*}} (int), {{.*}} decl = find-basic-variable.cpp:[[@LINE-1]] -// REGEX-DAG: name = "foo", type = {{.*}} (int), {{.*}} decl = find-basic-variable.cpp:[[@LINE-2]] -}; -int sbar::foo; - -int foobar; -// REGEX-DAG: name = "foobar", type = {{.*}} (int), {{.*}} decl = find-basic-variable.cpp:[[@LINE-1]] - -int fbar() { - static int foo; - return foo + bar::baz::foo; -} - -int Foo; - -struct ssbar { - int foo; -}; - -extern "C" void _start(sbar, ssbar) {} diff --git a/lit/SymbolFile/DWARF/find-function-regex.cpp b/lit/SymbolFile/DWARF/find-function-regex.cpp deleted file mode 100644 index b1e9d10e82ac..000000000000 --- a/lit/SymbolFile/DWARF/find-function-regex.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// REQUIRES: lld - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Disable -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=f.o --regex --find=function %t | FileCheck %s -// -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols --name=f.o --regex --find=function %t | FileCheck %s - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=f.o --regex --find=function %t | FileCheck %s - -// CHECK: Found 3 functions: -// CHECK-DAG: name = "foo()", mangled = "_Z3foov" -// CHECK-DAG: name = "ffo()", mangled = "_Z3ffov" -// CHECK-DAG: name = "bar::foo()", mangled = "_ZN3bar3fooEv" - -void foo() {} -void ffo() {} -namespace bar { -void foo() {} -} // namespace bar -void fof() {} - -extern "C" void _start() {} diff --git a/lit/SymbolFile/DWARF/find-inline-method.s b/lit/SymbolFile/DWARF/find-inline-method.s deleted file mode 100644 index 6910130ee92c..000000000000 --- a/lit/SymbolFile/DWARF/find-inline-method.s +++ /dev/null @@ -1,152 +0,0 @@ -# REQUIRES: lld - -# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj > %t.o -# RUN: ld.lld %t.o -o %t -# RUN: lldb-test symbols --find=function --name=inl --function-flags=method %t \ -# RUN: | FileCheck %s - -# CHECK: Function: {{.*}} mangled = "_Z8externali" -# CHECK: Blocks: {{.*}} range = [0x00201000-0x00201002) -# CHECK-NEXT: range = [0x00201000-0x00201002), name = "inl", mangled = _ZN1S3inlEi - - -# Generated via: -# clang -O2 -g -S - -# from file: -# int forward(int); -# struct S { -# static int inl(int a) { return forward(a); } -# }; -# int external(int a) { return S::inl(a); } - -# and then simplified. - - .text -_Z8externali: -.Lfunc_begin0: - jmp _Z7forwardi -.Lfunc_end0: - -.globl _start -_start: -_Z7forwardi: - ret - - .section .debug_str,"MS",@progbits,1 -.Linfo_string0: - .asciz "clang version 7.0.0 (trunk 332830) (llvm/trunk 332835) with manual modifications" -.Linfo_string3: - .asciz "_ZN1S3inlEi" -.Linfo_string4: - .asciz "inl" -.Linfo_string6: - .asciz "S" -.Linfo_string8: - .asciz "_Z8externali" -.Linfo_string9: - .asciz "external" - .section .debug_abbrev,"",@progbits - .byte 1 # Abbreviation Code - .byte 17 # DW_TAG_compile_unit - .byte 1 # DW_CHILDREN_yes - .byte 37 # DW_AT_producer - .byte 14 # DW_FORM_strp - .byte 19 # DW_AT_language - .byte 5 # DW_FORM_data2 - .byte 17 # DW_AT_low_pc - .byte 1 # DW_FORM_addr - .byte 18 # DW_AT_high_pc - .byte 6 # DW_FORM_data4 - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 2 # Abbreviation Code - .byte 19 # DW_TAG_structure_type - .byte 1 # DW_CHILDREN_yes - .byte 3 # DW_AT_name - .byte 14 # DW_FORM_strp - .byte 11 # DW_AT_byte_size - .byte 11 # DW_FORM_data1 - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 3 # Abbreviation Code - .byte 46 # DW_TAG_subprogram - .byte 0 # DW_CHILDREN_no - .byte 110 # DW_AT_linkage_name - .byte 14 # DW_FORM_strp - .byte 3 # DW_AT_name - .byte 14 # DW_FORM_strp - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 6 # Abbreviation Code - .byte 46 # DW_TAG_subprogram - .byte 0 # DW_CHILDREN_no - .byte 71 # DW_AT_specification - .byte 19 # DW_FORM_ref4 - .byte 32 # DW_AT_inline - .byte 11 # DW_FORM_data1 - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 8 # Abbreviation Code - .byte 46 # DW_TAG_subprogram - .byte 1 # DW_CHILDREN_yes - .byte 17 # DW_AT_low_pc - .byte 1 # DW_FORM_addr - .byte 18 # DW_AT_high_pc - .byte 6 # DW_FORM_data4 - .byte 110 # DW_AT_linkage_name - .byte 14 # DW_FORM_strp - .byte 3 # DW_AT_name - .byte 14 # DW_FORM_strp - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 10 # Abbreviation Code - .byte 29 # DW_TAG_inlined_subroutine - .byte 1 # DW_CHILDREN_yes - .byte 49 # DW_AT_abstract_origin - .byte 19 # DW_FORM_ref4 - .byte 17 # DW_AT_low_pc - .byte 1 # DW_FORM_addr - .byte 18 # DW_AT_high_pc - .byte 6 # DW_FORM_data4 - .byte 0 # EOM(1) - .byte 0 # EOM(2) - .byte 0 # EOM(3) - .section .debug_info,"",@progbits -.Lcu_begin0: - .long .Lcu_end0-.Lcu_start0 # Length of Unit -.Lcu_start0: - .short 4 # DWARF version number - .long .debug_abbrev # Offset Into Abbrev. Section - .byte 8 # Address Size (in bytes) - .byte 1 # Abbrev [1] 0xb:0x9e DW_TAG_compile_unit - .long .Linfo_string0 # DW_AT_producer - .short 4 # DW_AT_language - .quad .Lfunc_begin0 # DW_AT_low_pc - .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc - .byte 2 # Abbrev [2] 0x2a:0x1f DW_TAG_structure_type - .long .Linfo_string6 # DW_AT_name - .byte 1 # DW_AT_byte_size -.Linl_spec: - .byte 3 # Abbrev [3] 0x33:0x15 DW_TAG_subprogram - .long .Linfo_string3 # DW_AT_linkage_name - .long .Linfo_string4 # DW_AT_name - .byte 0 # End Of Children Mark -.Linl_abstract: - .byte 6 # Abbrev [6] 0x50:0x12 DW_TAG_subprogram - .long .Linl_spec # DW_AT_specification - .byte 1 # DW_AT_inline -.Linl_a_abstract: - .byte 8 # Abbrev [8] 0x62:0x46 DW_TAG_subprogram - .quad .Lfunc_begin0 # DW_AT_low_pc - .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc - .long .Linfo_string8 # DW_AT_linkage_name - .long .Linfo_string9 # DW_AT_name - .byte 10 # Abbrev [10] 0x8c:0x1b DW_TAG_inlined_subroutine - .long .Linl_abstract # DW_AT_abstract_origin - .quad .Lfunc_begin0 # DW_AT_low_pc - .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc - .byte 0 # End Of Children Mark - .byte 0 # End Of Children Mark - .byte 0 # End Of Children Mark -.Lcu_end0: diff --git a/lit/SymbolFile/DWARF/find-method-local-struct.cpp b/lit/SymbolFile/DWARF/find-method-local-struct.cpp deleted file mode 100644 index 3da4a4a23f8a..000000000000 --- a/lit/SymbolFile/DWARF/find-method-local-struct.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ -// RUN: FileCheck %s - -// CHECK-DAG: name = "sbar::foo()", mangled = "_ZN4sbar3fooEv" -// CHECK-DAG: name = "ffbar()::sbar::foo()", mangled = "_ZZ5ffbarvEN4sbar3fooEv" - -struct sbar { - void foo(); -}; -void sbar::foo() {} - -void ffbar() { - struct sbar { - void foo() {} - }; - sbar a; - a.foo(); -} diff --git a/lit/SymbolFile/DWARF/find-method.cpp b/lit/SymbolFile/DWARF/find-method.cpp deleted file mode 100644 index 7e7710fd472b..000000000000 --- a/lit/SymbolFile/DWARF/find-method.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// REQUIRES: lld - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -mllvm -accel-tables=Disable -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ -// RUN: FileCheck %s -// -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \ -// RUN: FileCheck %s - -// CHECK-DAG: name = "A::foo()", mangled = "_ZN1A3fooEv" -// CHECK-DAG: name = "B::foo()", mangled = "_ZN1B3fooEv" -// CHECK-DAG: name = "C::foo()", mangled = "_ZN1C3fooEv" - -struct A { - void foo(); -}; -void A::foo() {} - -class B { - void foo(); -}; -void B::foo() {} - -union C { - void foo(); -}; -void C::foo() {} - -extern "C" void _start() {} diff --git a/lit/SymbolFile/DWARF/find-qualified-variable.cpp b/lit/SymbolFile/DWARF/find-qualified-variable.cpp deleted file mode 100644 index 1ad3e7fbadf5..000000000000 --- a/lit/SymbolFile/DWARF/find-qualified-variable.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx -// RUN: lldb-test symbols --name=A::foo --find=variable %t | FileCheck %s - -// CHECK: Found 1 variables: - -struct A { - static int foo; -}; -int A::foo; -// NAME-DAG: name = "foo", {{.*}} decl = find-qualified-variable.cpp:[[@LINE-1]] - -struct B { - static int foo; -}; -int B::foo; diff --git a/lit/SymbolFile/DWARF/find-type-in-function.cpp b/lit/SymbolFile/DWARF/find-type-in-function.cpp deleted file mode 100644 index 5c1b4b44523d..000000000000 --- a/lit/SymbolFile/DWARF/find-type-in-function.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// REQUIRES: lld - -// XFAIL: * - -// RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -// RUN: ld.lld %t.o -o %t -// RUN: lldb-test symbols --name=foo --find=type %t | \ -// RUN: FileCheck --check-prefix=NAME %s - -// Lookup for "foo" should find either both "struct foo" types or just the -// global one. Right now, it finds the definition inside bar(), which is -// definitely wrong. - -// NAME: Found 2 types: -struct foo {}; -// NAME-DAG: name = "foo", {{.*}} decl = find-type-in-function.cpp:[[@LINE-1]] - -void bar() { - struct foo {}; -// NAME-DAG: name = "foo", {{.*}} decl = find-type-in-function.cpp:[[@LINE-1]] - foo a; -} - -extern "C" void _start(foo) {} diff --git a/lit/SymbolFile/DWARF/find-variable-dwo.cpp b/lit/SymbolFile/DWARF/find-variable-dwo.cpp deleted file mode 100644 index b2fb1a375cf2..000000000000 --- a/lit/SymbolFile/DWARF/find-variable-dwo.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// REQUIRES: lld - -// RUN: %clang %s -g -gsplit-dwarf -c -emit-llvm -o - --target=x86_64-pc-linux -DONE | \ -// RUN: llc -accel-tables=Dwarf -filetype=obj -split-dwarf-file=%t-1.dwo -o %t-1.o -// RUN: llvm-objcopy --split-dwo=%t-1.dwo %t-1.o -// RUN: %clang %s -g -gsplit-dwarf -c -emit-llvm -o - --target=x86_64-pc-linux -DTWO | \ -// RUN: llc -accel-tables=Dwarf -filetype=obj -split-dwarf-file=%t-2.dwo -o %t-2.o -// RUN: llvm-objcopy --split-dwo=%t-2.dwo %t-2.o -// RUN: ld.lld %t-1.o %t-2.o -o %t -// RUN: lldb-test symbols --name=foo --find=variable %t | FileCheck %s - -// CHECK: Found 2 variables: -#ifdef ONE -namespace one { -int foo; -// CHECK-DAG: name = "foo", type = {{.*}} (int), {{.*}} decl = find-variable-dwo.cpp:[[@LINE-1]] -} // namespace one - -extern "C" void _start() {} -#else -namespace two { -int foo; -// CHECK-DAG: name = "foo", type = {{.*}} (int), {{.*}} decl = find-variable-dwo.cpp:[[@LINE-1]] -} // namespace two -#endif diff --git a/lit/SymbolFile/DWARF/find-variable-file.cpp b/lit/SymbolFile/DWARF/find-variable-file.cpp deleted file mode 100644 index 5a95c5338f8f..000000000000 --- a/lit/SymbolFile/DWARF/find-variable-file.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// REQUIRES: lld - -// RUN: %clang -g -c -o %t-1.o --target=x86_64-pc-linux -mllvm -accel-tables=Disable %s -// RUN: %clang -g -c -o %t-2.o --target=x86_64-pc-linux -mllvm -accel-tables=Disable %S/Inputs/find-variable-file-2.cpp -// RUN: ld.lld %t-1.o %t-2.o -o %t -// RUN: lldb-test symbols --file=find-variable-file.cpp --find=variable %t | \ -// RUN: FileCheck --check-prefix=ONE %s -// RUN: lldb-test symbols --file=find-variable-file-2.cpp --find=variable %t | \ -// RUN: FileCheck --check-prefix=TWO %s - -// RUN: %clang -g -c -o %t-1.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf %s -// RUN: %clang -g -c -o %t-2.o --target=x86_64-pc-linux -mllvm -accel-tables=Dwarf %S/Inputs/find-variable-file-2.cpp -// RUN: ld.lld %t-1.o %t-2.o -o %t -// RUN: lldb-test symbols --file=find-variable-file.cpp --find=variable %t | \ -// RUN: FileCheck --check-prefix=ONE %s -// RUN: lldb-test symbols --file=find-variable-file-2.cpp --find=variable %t | \ -// RUN: FileCheck --check-prefix=TWO %s - -// ONE: Found 1 variables: -namespace one { -int foo; -// ONE-DAG: name = "foo", type = {{.*}} (int), {{.*}} decl = find-variable-file.cpp:[[@LINE-1]] -} // namespace one - -extern "C" void _start() {} - -// TWO: Found 1 variables: -// TWO-DAG: name = "foo", {{.*}} decl = find-variable-file-2.cpp:2 diff --git a/lit/SymbolFile/DWARF/lit.local.cfg b/lit/SymbolFile/DWARF/lit.local.cfg deleted file mode 100644 index 2f03ed183547..000000000000 --- a/lit/SymbolFile/DWARF/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.cpp', '.s'] diff --git a/lit/SymbolFile/NativePDB/Inputs/ast-functions.lldbinit b/lit/SymbolFile/NativePDB/Inputs/ast-functions.lldbinit deleted file mode 100644 index c25d96c531d5..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/ast-functions.lldbinit +++ /dev/null @@ -1,8 +0,0 @@ - -break set -n main -break set -n static_fn -break set -n varargs_fn - -target modules dump ast - -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/ast-types.lldbinit b/lit/SymbolFile/NativePDB/Inputs/ast-types.lldbinit deleted file mode 100644 index 3c0cf6d3cdfd..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/ast-types.lldbinit +++ /dev/null @@ -1,20 +0,0 @@ -target variable TC -target variable TS -target variable TU -target variable TE - -target variable ABCInt -target variable ABCFloat -target variable ABCVoid - -target variable AC0 -target variable ACNeg1 - -target variable AC0D -target variable ACNeg1D -target variable AD -target variable ADE - -target modules dump ast - -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/bitfields.lldbinit b/lit/SymbolFile/NativePDB/Inputs/bitfields.lldbinit deleted file mode 100644 index cf06c494e678..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/bitfields.lldbinit +++ /dev/null @@ -1,5 +0,0 @@ -settings set auto-one-line-summaries false - -target variable -T TheStruct - -target modules dump ast diff --git a/lit/SymbolFile/NativePDB/Inputs/break-by-function.lldbinit b/lit/SymbolFile/NativePDB/Inputs/break-by-function.lldbinit deleted file mode 100644 index ff9bf21a8864..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/break-by-function.lldbinit +++ /dev/null @@ -1,6 +0,0 @@ -break set -n main -break set -n OvlGlobalFn -break set -n StaticFn -break set -n DoesntExist -break list -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/break-by-line.lldbinit b/lit/SymbolFile/NativePDB/Inputs/break-by-line.lldbinit deleted file mode 100644 index 7daa53ba24e0..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/break-by-line.lldbinit +++ /dev/null @@ -1,3 +0,0 @@ -break set -f break-by-line.cpp -l 14 -break list -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/disassembly.lldbinit b/lit/SymbolFile/NativePDB/Inputs/disassembly.lldbinit deleted file mode 100644 index 2b552a0b01dd..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/disassembly.lldbinit +++ /dev/null @@ -1,2 +0,0 @@ -disassemble --flavor=intel -m -n main -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/function-types-builtins.lldbinit b/lit/SymbolFile/NativePDB/Inputs/function-types-builtins.lldbinit deleted file mode 100644 index fe29896b5f52..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/function-types-builtins.lldbinit +++ /dev/null @@ -1,70 +0,0 @@ -command alias dv target variable - -dv aa -dv ab -dv ac -dv ad -dv ae -dv af -dv ag -dv ah -dv ai -dv aj -dv ak -dv al -dv am -dv an -dv ao -dv aq -dv ar -dv as -dv at -dv au -dv av -dv aw -dv ax -dv ay -dv az -dv aaa -dv aab -dv aac -dv aad -dv ra -dv rb -dv rc -dv rd -dv re -dv rf -dv rg -dv rh -dv ri -dv rj -dv rk -dv rl -dv rm -dv rn -dv ro -dv rq -dv rr -dv rs -dv rt -dv ru -dv rv -dv rw -dv rx -dv ry -dv rz -dv raa -dv rab -dv rac -dv rad -dv ref -dv ref2 -dv ref3 -dv binp -dv binr -dv null -dv rae -dv aae - -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/function-types-calling-conv.lldbinit b/lit/SymbolFile/NativePDB/Inputs/function-types-calling-conv.lldbinit deleted file mode 100644 index 8664881b262a..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/function-types-calling-conv.lldbinit +++ /dev/null @@ -1,7 +0,0 @@ -target variable sfn -target variable ffn -target variable tfn -target variable cfn -target variable vfn - -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/function-types-classes.lldbinit b/lit/SymbolFile/NativePDB/Inputs/function-types-classes.lldbinit deleted file mode 100644 index c06c650e1c45..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/function-types-classes.lldbinit +++ /dev/null @@ -1,14 +0,0 @@ -target variable a -target variable b -target variable c -target variable d -target variable e -target variable f -target variable g -target variable h -target variable i -target variable incomplete - -target modules dump ast - -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/globals-bss.lldbinit b/lit/SymbolFile/NativePDB/Inputs/globals-bss.lldbinit deleted file mode 100644 index 9bf066ee2af9..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/globals-bss.lldbinit +++ /dev/null @@ -1,3 +0,0 @@ -target variable GlobalVariable - -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/globals-classes.lldbinit b/lit/SymbolFile/NativePDB/Inputs/globals-classes.lldbinit deleted file mode 100644 index cafb863d85fe..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/globals-classes.lldbinit +++ /dev/null @@ -1,16 +0,0 @@ -settings set auto-one-line-summaries false - -target variable -T ClassWithPaddingInstance -target variable -T ClassNoPaddingInstance -target variable -T DC -target variable -T EBOC -target variable -T PBC - -target variable -T UnnamedClassInstance - -target variable -T PointersInstance -target variable -T ReferencesInstance - -target modules dump ast - -quit
\ No newline at end of file diff --git a/lit/SymbolFile/NativePDB/Inputs/globals-fundamental.lldbinit b/lit/SymbolFile/NativePDB/Inputs/globals-fundamental.lldbinit deleted file mode 100644 index 4af8b658742b..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/globals-fundamental.lldbinit +++ /dev/null @@ -1,222 +0,0 @@ -target variable BFalse -target variable BTrue -target variable CA -target variable CZ -target variable SCa -target variable SCz -target variable UC24 -target variable UC42 -target variable C16_24 -target variable C32_42 -target variable WC1 -target variable WCP -target variable SMax -target variable SMin -target variable USMax -target variable USMin -target variable IMax -target variable IMin -target variable UIMax -target variable UIMin -target variable LMax -target variable LMin -target variable ULMax -target variable ULMin -target variable LLMax -target variable LLMin -target variable ULLMax -target variable ULLMin -target variable F -target variable D - -target variable CBFalse -target variable CBTrue -target variable CCA -target variable CCZ -target variable CSCa -target variable CSCz -target variable CUC24 -target variable CUC42 -target variable CC16_24 -target variable CC32_42 -target variable CWC1 -target variable CWCP -target variable CSMax -target variable CSMin -target variable CUSMax -target variable CUSMin -target variable CIMax -target variable CIMin -target variable CUIMax -target variable CUIMin -target variable CLMax -target variable CLMin -target variable CULMax -target variable CULMin -target variable CLLMax -target variable CLLMin -target variable CULLMax -target variable CULLMin -target variable CF -target variable CD - -target variable ConstexprBFalse -target variable ConstexprBTrue -target variable ConstexprCA -target variable ConstexprCZ -target variable ConstexprSCa -target variable ConstexprSCz -target variable ConstexprUC24 -target variable ConstexprUC42 -target variable ConstexprC16_24 -target variable ConstexprC32_42 -target variable ConstexprWC1 -target variable ConstexprWCP -target variable ConstexprSMax -target variable ConstexprSMin -target variable ConstexprUSMax -target variable ConstexprUSMin -target variable ConstexprIMax -target variable ConstexprIMin -target variable ConstexprUIMax -target variable ConstexprUIMin -target variable ConstexprLMax -target variable ConstexprLMin -target variable ConstexprULMax -target variable ConstexprULMin -target variable ConstexprLLMax -target variable ConstexprLLMin -target variable ConstexprULLMax -target variable ConstexprULLMin -target variable ConstexprF -target variable ConstexprD - -target variable PBFalse -target variable PBTrue -target variable PCA -target variable PCZ -target variable PSCa -target variable PSCz -target variable PUC24 -target variable PUC42 -target variable PC16_24 -target variable PC32_42 -target variable PWC1 -target variable PWCP -target variable PSMax -target variable PSMin -target variable PUSMax -target variable PUSMin -target variable PIMax -target variable PIMin -target variable PUIMax -target variable PUIMin -target variable PLMax -target variable PLMin -target variable PULMax -target variable PULMin -target variable PLLMax -target variable PLLMin -target variable PULLMax -target variable PULLMin -target variable PF -target variable PD - -target variable CPBFalse -target variable CPBTrue -target variable CPCA -target variable CPCZ -target variable CPSCa -target variable CPSCz -target variable CPUC24 -target variable CPUC42 -target variable CPC16_24 -target variable CPC32_42 -target variable CPWC1 -target variable CPWCP -target variable CPSMax -target variable CPSMin -target variable CPUSMax -target variable CPUSMin -target variable CPIMax -target variable CPIMin -target variable CPUIMax -target variable CPUIMin -target variable CPLMax -target variable CPLMin -target variable CPULMax -target variable CPULMin -target variable CPLLMax -target variable CPLLMin -target variable CPULLMax -target variable CPULLMin -target variable CPF -target variable CPD - -target variable RBFalse -target variable RBTrue -target variable RCA -target variable RCZ -target variable RSCa -target variable RSCz -target variable RUC24 -target variable RUC42 -target variable RSMax -target variable RSMin -target variable RUSMax -target variable RUSMin -target variable RIMax -target variable RIMin -target variable RUIMax -target variable RUIMin -target variable RLMax -target variable RLMin -target variable RULMax -target variable RULMin -target variable RLLMax -target variable RLLMin -target variable RULLMax -target variable RULLMin -target variable RF -target variable RD - -target variable CRBFalse -target variable CRBTrue -target variable CRCA -target variable CRCZ -target variable CRSCa -target variable CRSCz -target variable CRUC24 -target variable CRUC42 -target variable CRSMax -target variable CRSMin -target variable CRUSMax -target variable CRUSMin -target variable CRIMax -target variable CRIMin -target variable CRUIMax -target variable CRUIMin -target variable CRLMax -target variable CRLMin -target variable CRULMax -target variable CRULMin -target variable CRLLMax -target variable CRLLMin -target variable CRULLMax -target variable CRULLMin -target variable CRF -target variable CRD - -target variable RC16_24 -target variable RC32_42 -target variable RWC1 -target variable RWCP -target variable CRC16_24 -target variable CRC32_42 -target variable CRWC1 -target variable CRWCP - -target modules dump ast - - -quit
\ No newline at end of file diff --git a/lit/SymbolFile/NativePDB/Inputs/local-variables.lldbinit b/lit/SymbolFile/NativePDB/Inputs/local-variables.lldbinit deleted file mode 100644 index 0d7371e86f1c..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/local-variables.lldbinit +++ /dev/null @@ -1,32 +0,0 @@ -break set -n main -run a b c d e f g -p argc -step -p SomeLocal -step -p Param1 -p Param2 -step -p Param1 -p Param2 -p Local1 -step -p Param1 -p Param2 -p Local1 -p Local2 -step -p Param1 -p Param2 -p Local1 -p Local2 -step -p Param1 -p Param2 -p Local1 -p Local2 -continue - -target modules dump ast - -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/nested-types.lldbinit b/lit/SymbolFile/NativePDB/Inputs/nested-types.lldbinit deleted file mode 100644 index 466df81fc421..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/nested-types.lldbinit +++ /dev/null @@ -1,13 +0,0 @@ -settings set auto-one-line-summaries false - -target variable -T GlobalA -target variable -T GlobalB -target variable -T GlobalC -target variable -T GlobalD -target variable -T GlobalE -target variable -T GlobalF -target variable -T GlobalG -target variable -T GlobalH -target variable -T GlobalEnum - -target modules dump ast diff --git a/lit/SymbolFile/NativePDB/Inputs/s_constant.lldbinit b/lit/SymbolFile/NativePDB/Inputs/s_constant.lldbinit deleted file mode 100644 index 1a50d808cdc2..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/s_constant.lldbinit +++ /dev/null @@ -1,25 +0,0 @@ -target variable GlobalLUEA -target variable GlobalLUEB -target variable GlobalLUEC - -target variable GlobalLSEA -target variable GlobalLSEB -target variable GlobalLSEC - -target variable GlobalUEA -target variable GlobalUEB -target variable GlobalUEC - -target variable GlobalSEA -target variable GlobalSEB -target variable GlobalSEC - -target variable GlobalSUEA -target variable GlobalSUEB -target variable GlobalSUEC - -target variable GlobalSSEA -target variable GlobalSSEB -target variable GlobalSSEC - -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/s_constant.s b/lit/SymbolFile/NativePDB/Inputs/s_constant.s deleted file mode 100644 index 553a5ce06dbf..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/s_constant.s +++ /dev/null @@ -1,971 +0,0 @@ - .text - .def @feat.00; - .scl 3; - .type 0; - .endef - .globl @feat.00 -.set @feat.00, 0 - .intel_syntax noprefix - .def main; - .scl 2; - .type 32; - .endef - .globl main # -- Begin function main - .p2align 4, 0x90 -main: # @main -.Lfunc_begin0: - .cv_func_id 0 - .cv_file 1 "D:\\src\\llvm-mono\\lldb\\lit\\SymbolFile\\NativePDB\\s_constant.cpp" "7F1DA683A9B72A1360C1FDEDD7550E06" 1 - .cv_loc 0 1 79 0 # D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp:79:0 -.seh_proc main -# %bb.0: # %entry - sub rsp, 24 - .seh_stackalloc 24 - .seh_endprologue - xor eax, eax - mov dword ptr [rsp + 20], 0 - mov qword ptr [rsp + 8], rdx - mov dword ptr [rsp + 4], ecx -.Ltmp0: - .cv_loc 0 1 80 0 # D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp:80:0 - add rsp, 24 - ret -.Ltmp1: -.Lfunc_end0: - .seh_handlerdata - .text - .seh_endproc - # -- End function - .section .rdata,"dr" - .p2align 3 # @GlobalLUEA -GlobalLUEA: - .quad 0 # 0x0 - - .p2align 3 # @GlobalLUEB -GlobalLUEB: - .quad 1000 # 0x3e8 - - .p2align 3 # @GlobalLUEC -GlobalLUEC: - .quad -16 # 0xfffffffffffffff0 - - .p2align 3 # @GlobalLSEA -GlobalLSEA: - .quad 0 # 0x0 - - .p2align 3 # @GlobalLSEB -GlobalLSEB: - .quad 9223372036854775000 # 0x7ffffffffffffcd8 - - .p2align 3 # @GlobalLSEC -GlobalLSEC: - .quad -9223372036854775000 # 0x8000000000000328 - - .p2align 2 # @GlobalUEA -GlobalUEA: - .long 0 # 0x0 - - .p2align 2 # @GlobalUEB -GlobalUEB: - .long 1000 # 0x3e8 - - .p2align 2 # @GlobalUEC -GlobalUEC: - .long 4294000000 # 0xfff13d80 - - .p2align 2 # @GlobalSEA -GlobalSEA: - .long 0 # 0x0 - - .p2align 2 # @GlobalSEB -GlobalSEB: - .long 2147000000 # 0x7ff89ec0 - - .p2align 2 # @GlobalSEC -GlobalSEC: - .long 2147967296 # 0x80076140 - -GlobalSUEA: # @GlobalSUEA - .byte 0 # 0x0 - -GlobalSUEB: # @GlobalSUEB - .byte 100 # 0x64 - -GlobalSUEC: # @GlobalSUEC - .byte 200 # 0xc8 - -GlobalSSEA: # @GlobalSSEA - .byte 0 # 0x0 - -GlobalSSEB: # @GlobalSSEB - .byte 100 # 0x64 - -GlobalSSEC: # @GlobalSSEC - .byte 156 # 0x9c - - .section .drectve,"yn" - .ascii " /DEFAULTLIB:libcmt.lib" - .ascii " /DEFAULTLIB:oldnames.lib" - .section .debug$S,"dr" - .p2align 2 - .long 4 # Debug section magic - .long 241 - .long .Ltmp3-.Ltmp2 # Subsection size -.Ltmp2: - .short .Ltmp5-.Ltmp4 # Record length -.Ltmp4: - .short 4412 # Record kind: S_COMPILE3 - .long 1 # Flags and language - .short 208 # CPUType - .short 8 # Frontend version - .short 0 - .short 0 - .short 0 - .short 8000 # Backend version - .short 0 - .short 0 - .short 0 - .asciz "clang version 8.0.0 " # Null-terminated compiler version string -.Ltmp5: -.Ltmp3: - .p2align 2 - .long 241 # Symbol subsection for main - .long .Ltmp7-.Ltmp6 # Subsection size -.Ltmp6: - .short .Ltmp9-.Ltmp8 # Record length -.Ltmp8: - .short 4423 # Record kind: S_GPROC32_ID - .long 0 # PtrParent - .long 0 # PtrEnd - .long 0 # PtrNext - .long .Lfunc_end0-main # Code size - .long 0 # Offset after prologue - .long 0 # Offset before epilogue - .long 4099 # Function type index - .secrel32 main # Function section relative address - .secidx main # Function section index - .byte 0 # Flags - .asciz "main" # Function name -.Ltmp9: - .short .Ltmp11-.Ltmp10 # Record length -.Ltmp10: - .short 4114 # Record kind: S_FRAMEPROC - .long 24 # FrameSize - .long 0 # Padding - .long 0 # Offset of padding - .long 0 # Bytes of callee saved registers - .long 0 # Exception handler offset - .short 0 # Exception handler section - .long 81920 # Flags (defines frame register) -.Ltmp11: - .short .Ltmp13-.Ltmp12 # Record length -.Ltmp12: - .short 4414 # Record kind: S_LOCAL - .long 116 # TypeIndex - .short 1 # Flags - .asciz "argc" -.Ltmp13: - .cv_def_range .Ltmp0 .Ltmp1, "B\021\004\000\000\000" - .short .Ltmp15-.Ltmp14 # Record length -.Ltmp14: - .short 4414 # Record kind: S_LOCAL - .long 4096 # TypeIndex - .short 1 # Flags - .asciz "argv" -.Ltmp15: - .cv_def_range .Ltmp0 .Ltmp1, "B\021\b\000\000\000" - .short 2 # Record length - .short 4431 # Record kind: S_PROC_ID_END -.Ltmp7: - .p2align 2 - .cv_linetable 0, main, .Lfunc_end0 - .long 241 # Symbol subsection for globals - .long .Ltmp17-.Ltmp16 # Subsection size -.Ltmp16: - .short .Ltmp19-.Ltmp18 # Record length -.Ltmp18: - .short 4359 # Record kind: S_CONSTANT - .long 4104 # Type - .short 0 # Value - .asciz "GlobalLUEA" # Name -.Ltmp19: - .short .Ltmp21-.Ltmp20 # Record length -.Ltmp20: - .short 4359 # Record kind: S_CONSTANT - .long 4104 # Type - .short 1000 # Value - .asciz "GlobalLUEB" # Name -.Ltmp21: - .short .Ltmp23-.Ltmp22 # Record length -.Ltmp22: - .short 4359 # Record kind: S_CONSTANT - .long 4104 # Type - .byte 0x00, 0x80, 0xf0 # Value - .asciz "GlobalLUEC" # Name -.Ltmp23: - .short .Ltmp25-.Ltmp24 # Record length -.Ltmp24: - .short 4359 # Record kind: S_CONSTANT - .long 4108 # Type - .byte 0x00, 0x00 # Value - .asciz "GlobalLSEA" # Name -.Ltmp25: - .short .Ltmp27-.Ltmp26 # Record length -.Ltmp26: - .short 4359 # Record kind: S_CONSTANT - .long 4108 # Type - .byte 0x0A, 0x80, 0xD8, 0xFC # Value - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0x7F - .asciz "GlobalLSEB" # Name -.Ltmp27: - .short .Ltmp29-.Ltmp28 # Record length -.Ltmp28: - .short 4359 # Record kind: S_CONSTANT - .long 4108 # Type - .byte 0x09, 0x80, 0x28, 0x03 # Value - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x80 - .asciz "GlobalLSEC" # Name -.Ltmp29: - .short .Ltmp31-.Ltmp30 # Record length -.Ltmp30: - .short 4359 # Record kind: S_CONSTANT - .long 4112 # Type - .byte 0x00, 0x00 # Value - .asciz "GlobalUEA" # Name -.Ltmp31: - .short .Ltmp33-.Ltmp32 # Record length -.Ltmp32: - .short 4359 # Record kind: S_CONSTANT - .long 4112 # Type - .byte 0xe8, 0x03 # Value - .asciz "GlobalUEB" # Name -.Ltmp33: - .short .Ltmp35-.Ltmp34 # Record length -.Ltmp34: - .short 4359 # Record kind: S_CONSTANT - .long 4112 # Type - .byte 0x04, 0x80, 0x80, 0x3d # Value - .byte 0xf1, 0xff - .asciz "GlobalUEC" # Name -.Ltmp35: - .short .Ltmp37-.Ltmp36 # Record length -.Ltmp36: - .short 4359 # Record kind: S_CONSTANT - .long 4116 # Type - .byte 0x00, 0x00 # Value - .asciz "GlobalSEA" # Name -.Ltmp37: - .short .Ltmp39-.Ltmp38 # Record length -.Ltmp38: - .short 4359 # Record kind: S_CONSTANT - .long 4116 # Type - .byte 0x04, 0x80, 0xc0, 0x9e # Value - .byte 0xf8, 0x7f - .asciz "GlobalSEB" # Name -.Ltmp39: - .short .Ltmp41-.Ltmp40 # Record length -.Ltmp40: - .short 4359 # Record kind: S_CONSTANT - .long 4116 # Type - .byte 0x03, 0x80, 0x40, 0x61 # Value - .byte 0x07, 0x80 - .asciz "GlobalSEC" # Name -.Ltmp41: - .short .Ltmp43-.Ltmp42 # Record length -.Ltmp42: - .short 4359 # Record kind: S_CONSTANT - .long 4120 # Type - .byte 0x00, 0x00 # Value - .asciz "GlobalSUEA" # Name -.Ltmp43: - .short .Ltmp45-.Ltmp44 # Record length -.Ltmp44: - .short 4359 # Record kind: S_CONSTANT - .long 4120 # Type - .byte 0x64, 0x00 # Value - .asciz "GlobalSUEB" # Name -.Ltmp45: - .short .Ltmp47-.Ltmp46 # Record length -.Ltmp46: - .short 4359 # Record kind: S_CONSTANT - .long 4120 # Type - .byte 0xc8, 0x00 # Value - .asciz "GlobalSUEC" # Name -.Ltmp47: - .short .Ltmp49-.Ltmp48 # Record length -.Ltmp48: - .short 4359 # Record kind: S_CONSTANT - .long 4124 # Type - .byte 0x00, 0x00 # Value - .asciz "GlobalSSEA" # Name -.Ltmp49: - .short .Ltmp51-.Ltmp50 # Record length -.Ltmp50: - .short 4359 # Record kind: S_CONSTANT - .long 4124 # Type - .byte 0x64, 0x00 # Value - .asciz "GlobalSSEB" # Name -.Ltmp51: - .short .Ltmp53-.Ltmp52 # Record length -.Ltmp52: - .short 4359 # Record kind: S_CONSTANT - .long 4124 # Type - .byte 0x00, 0x80, 0x9c # Value - .asciz "GlobalSSEC" # Name -.Ltmp53: -.Ltmp17: - .p2align 2 - .cv_filechecksums # File index to string table offset subsection - .cv_stringtable # String table - .long 241 - .long .Ltmp55-.Ltmp54 # Subsection size -.Ltmp54: - .short 6 # Record length - .short 4428 # Record kind: S_BUILDINFO - .long 4127 # LF_BUILDINFO index -.Ltmp55: - .p2align 2 - .section .debug$T,"dr" - .p2align 2 - .long 4 # Debug section magic - # Pointer (0x1000) { - # TypeLeafKind: LF_POINTER (0x1002) - # PointeeType: char* (0x670) - # PointerAttributes: 0x1000C - # PtrType: Near64 (0xC) - # PtrMode: Pointer (0x0) - # IsFlat: 0 - # IsConst: 0 - # IsVolatile: 0 - # IsUnaligned: 0 - # IsRestrict: 0 - # SizeOf: 8 - # } - .byte 0x0a, 0x00, 0x02, 0x10 - .byte 0x70, 0x06, 0x00, 0x00 - .byte 0x0c, 0x00, 0x01, 0x00 - # ArgList (0x1001) { - # TypeLeafKind: LF_ARGLIST (0x1201) - # NumArgs: 2 - # Arguments [ - # ArgType: int (0x74) - # ArgType: char** (0x1000) - # ] - # } - .byte 0x0e, 0x00, 0x01, 0x12 - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x74, 0x00, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00 - # Procedure (0x1002) { - # TypeLeafKind: LF_PROCEDURE (0x1008) - # ReturnType: int (0x74) - # CallingConvention: NearC (0x0) - # FunctionOptions [ (0x0) - # ] - # NumParameters: 2 - # ArgListType: (int, char**) (0x1001) - # } - .byte 0x0e, 0x00, 0x08, 0x10 - .byte 0x74, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x02, 0x00 - .byte 0x01, 0x10, 0x00, 0x00 - # FuncId (0x1003) { - # TypeLeafKind: LF_FUNC_ID (0x1601) - # ParentScope: 0x0 - # FunctionType: int (int, char**) (0x1002) - # Name: main - # } - .byte 0x12, 0x00, 0x01, 0x16 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x10, 0x00, 0x00 - .byte 0x6d, 0x61, 0x69, 0x6e - .byte 0x00, 0xf3, 0xf2, 0xf1 - # FieldList (0x1004) { - # TypeLeafKind: LF_FIELDLIST (0x1203) - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 0 - # Name: LUE_A - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 1000 - # Name: LUE_B - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 18446744073709551600 - # Name: LUE_C - # } - # } - .byte 0x2e, 0x00, 0x03, 0x12 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x00, 0x00, 0x4c, 0x55 - .byte 0x45, 0x5f, 0x41, 0x00 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0xe8, 0x03, 0x4c, 0x55 - .byte 0x45, 0x5f, 0x42, 0x00 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x0a, 0x80, 0xf0, 0xff - .byte 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0x4c, 0x55 - .byte 0x45, 0x5f, 0x43, 0x00 - # Enum (0x1005) { - # TypeLeafKind: LF_ENUM (0x1507) - # NumEnumerators: 3 - # Properties [ (0x200) - # HasUniqueName (0x200) - # ] - # UnderlyingType: unsigned __int64 (0x23) - # FieldListType: <field list> (0x1004) - # Name: A::B::C::LargeUnsignedEnum - # LinkageName: .?AW4LargeUnsignedEnum@C@B@A@@ - # } - .byte 0x4a, 0x00, 0x07, 0x15 - .byte 0x03, 0x00, 0x00, 0x02 - .byte 0x23, 0x00, 0x00, 0x00 - .byte 0x04, 0x10, 0x00, 0x00 - .byte 0x41, 0x3a, 0x3a, 0x42 - .byte 0x3a, 0x3a, 0x43, 0x3a - .byte 0x3a, 0x4c, 0x61, 0x72 - .byte 0x67, 0x65, 0x55, 0x6e - .byte 0x73, 0x69, 0x67, 0x6e - .byte 0x65, 0x64, 0x45, 0x6e - .byte 0x75, 0x6d, 0x00, 0x2e - .byte 0x3f, 0x41, 0x57, 0x34 - .byte 0x4c, 0x61, 0x72, 0x67 - .byte 0x65, 0x55, 0x6e, 0x73 - .byte 0x69, 0x67, 0x6e, 0x65 - .byte 0x64, 0x45, 0x6e, 0x75 - .byte 0x6d, 0x40, 0x43, 0x40 - .byte 0x42, 0x40, 0x41, 0x40 - .byte 0x40, 0x00, 0xf2, 0xf1 - # StringId (0x1006) { - # TypeLeafKind: LF_STRING_ID (0x1605) - # Id: 0x0 - # StringData: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp - # } - .byte 0x46, 0x00, 0x05, 0x16 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x44, 0x3a, 0x5c, 0x73 - .byte 0x72, 0x63, 0x5c, 0x6c - .byte 0x6c, 0x76, 0x6d, 0x2d - .byte 0x6d, 0x6f, 0x6e, 0x6f - .byte 0x5c, 0x6c, 0x6c, 0x64 - .byte 0x62, 0x5c, 0x6c, 0x69 - .byte 0x74, 0x5c, 0x53, 0x79 - .byte 0x6d, 0x62, 0x6f, 0x6c - .byte 0x46, 0x69, 0x6c, 0x65 - .byte 0x5c, 0x4e, 0x61, 0x74 - .byte 0x69, 0x76, 0x65, 0x50 - .byte 0x44, 0x42, 0x5c, 0x73 - .byte 0x5f, 0x63, 0x6f, 0x6e - .byte 0x73, 0x74, 0x61, 0x6e - .byte 0x74, 0x2e, 0x63, 0x70 - .byte 0x70, 0x00, 0xf2, 0xf1 - # UdtSourceLine (0x1007) { - # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) - # UDT: A::B::C::LargeUnsignedEnum (0x1005) - # SourceFile: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp (0x1006) - # LineNumber: 14 - # } - .byte 0x0e, 0x00, 0x06, 0x16 - .byte 0x05, 0x10, 0x00, 0x00 - .byte 0x06, 0x10, 0x00, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - # Modifier (0x1008) { - # TypeLeafKind: LF_MODIFIER (0x1001) - # ModifiedType: A::B::C::LargeUnsignedEnum (0x1005) - # Modifiers [ (0x1) - # Const (0x1) - # ] - # } - .byte 0x0a, 0x00, 0x01, 0x10 - .byte 0x05, 0x10, 0x00, 0x00 - .byte 0x01, 0x00, 0xf2, 0xf1 - # FieldList (0x1009) { - # TypeLeafKind: LF_FIELDLIST (0x1203) - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 0 - # Name: LSE_A - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 9223372036854775000 - # Name: LSE_B - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 9223372036854776616 - # Name: LSE_C - # } - # } - .byte 0x36, 0x00, 0x03, 0x12 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x00, 0x00, 0x4c, 0x53 - .byte 0x45, 0x5f, 0x41, 0x00 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x0a, 0x80, 0xd8, 0xfc - .byte 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0x7f, 0x4c, 0x53 - .byte 0x45, 0x5f, 0x42, 0x00 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x0a, 0x80, 0x28, 0x03 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x80, 0x4c, 0x53 - .byte 0x45, 0x5f, 0x43, 0x00 - # Enum (0x100A) { - # TypeLeafKind: LF_ENUM (0x1507) - # NumEnumerators: 3 - # Properties [ (0x200) - # HasUniqueName (0x200) - # ] - # UnderlyingType: __int64 (0x13) - # FieldListType: <field list> (0x1009) - # Name: A::B::C::LargeSignedEnum - # LinkageName: .?AW4LargeSignedEnum@C@B@A@@ - # } - .byte 0x46, 0x00, 0x07, 0x15 - .byte 0x03, 0x00, 0x00, 0x02 - .byte 0x13, 0x00, 0x00, 0x00 - .byte 0x09, 0x10, 0x00, 0x00 - .byte 0x41, 0x3a, 0x3a, 0x42 - .byte 0x3a, 0x3a, 0x43, 0x3a - .byte 0x3a, 0x4c, 0x61, 0x72 - .byte 0x67, 0x65, 0x53, 0x69 - .byte 0x67, 0x6e, 0x65, 0x64 - .byte 0x45, 0x6e, 0x75, 0x6d - .byte 0x00, 0x2e, 0x3f, 0x41 - .byte 0x57, 0x34, 0x4c, 0x61 - .byte 0x72, 0x67, 0x65, 0x53 - .byte 0x69, 0x67, 0x6e, 0x65 - .byte 0x64, 0x45, 0x6e, 0x75 - .byte 0x6d, 0x40, 0x43, 0x40 - .byte 0x42, 0x40, 0x41, 0x40 - .byte 0x40, 0x00, 0xf2, 0xf1 - # UdtSourceLine (0x100B) { - # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) - # UDT: A::B::C::LargeSignedEnum (0x100A) - # SourceFile: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp (0x1006) - # LineNumber: 20 - # } - .byte 0x0e, 0x00, 0x06, 0x16 - .byte 0x0a, 0x10, 0x00, 0x00 - .byte 0x06, 0x10, 0x00, 0x00 - .byte 0x14, 0x00, 0x00, 0x00 - # Modifier (0x100C) { - # TypeLeafKind: LF_MODIFIER (0x1001) - # ModifiedType: A::B::C::LargeSignedEnum (0x100A) - # Modifiers [ (0x1) - # Const (0x1) - # ] - # } - .byte 0x0a, 0x00, 0x01, 0x10 - .byte 0x0a, 0x10, 0x00, 0x00 - .byte 0x01, 0x00, 0xf2, 0xf1 - # FieldList (0x100D) { - # TypeLeafKind: LF_FIELDLIST (0x1203) - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 0 - # Name: UE_A - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 1000 - # Name: UE_B - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 4294000000 - # Name: UE_C - # } - # } - .byte 0x2a, 0x00, 0x03, 0x12 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x00, 0x00, 0x55, 0x45 - .byte 0x5f, 0x41, 0x00, 0xf1 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0xe8, 0x03, 0x55, 0x45 - .byte 0x5f, 0x42, 0x00, 0xf1 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x04, 0x80, 0x80, 0x3d - .byte 0xf1, 0xff, 0x55, 0x45 - .byte 0x5f, 0x43, 0x00, 0xf1 - # Enum (0x100E) { - # TypeLeafKind: LF_ENUM (0x1507) - # NumEnumerators: 3 - # Properties [ (0x200) - # HasUniqueName (0x200) - # ] - # UnderlyingType: unsigned (0x75) - # FieldListType: <field list> (0x100D) - # Name: A::B::C::UnsignedEnum - # LinkageName: .?AW4UnsignedEnum@C@B@A@@ - # } - .byte 0x3e, 0x00, 0x07, 0x15 - .byte 0x03, 0x00, 0x00, 0x02 - .byte 0x75, 0x00, 0x00, 0x00 - .byte 0x0d, 0x10, 0x00, 0x00 - .byte 0x41, 0x3a, 0x3a, 0x42 - .byte 0x3a, 0x3a, 0x43, 0x3a - .byte 0x3a, 0x55, 0x6e, 0x73 - .byte 0x69, 0x67, 0x6e, 0x65 - .byte 0x64, 0x45, 0x6e, 0x75 - .byte 0x6d, 0x00, 0x2e, 0x3f - .byte 0x41, 0x57, 0x34, 0x55 - .byte 0x6e, 0x73, 0x69, 0x67 - .byte 0x6e, 0x65, 0x64, 0x45 - .byte 0x6e, 0x75, 0x6d, 0x40 - .byte 0x43, 0x40, 0x42, 0x40 - .byte 0x41, 0x40, 0x40, 0x00 - # UdtSourceLine (0x100F) { - # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) - # UDT: A::B::C::UnsignedEnum (0x100E) - # SourceFile: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp (0x1006) - # LineNumber: 26 - # } - .byte 0x0e, 0x00, 0x06, 0x16 - .byte 0x0e, 0x10, 0x00, 0x00 - .byte 0x06, 0x10, 0x00, 0x00 - .byte 0x1a, 0x00, 0x00, 0x00 - # Modifier (0x1010) { - # TypeLeafKind: LF_MODIFIER (0x1001) - # ModifiedType: A::B::C::UnsignedEnum (0x100E) - # Modifiers [ (0x1) - # Const (0x1) - # ] - # } - .byte 0x0a, 0x00, 0x01, 0x10 - .byte 0x0e, 0x10, 0x00, 0x00 - .byte 0x01, 0x00, 0xf2, 0xf1 - # FieldList (0x1011) { - # TypeLeafKind: LF_FIELDLIST (0x1203) - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 0 - # Name: SE_A - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 2147000000 - # Name: SE_B - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 18446744071562551616 - # Name: SE_C - # } - # } - .byte 0x32, 0x00, 0x03, 0x12 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x00, 0x00, 0x53, 0x45 - .byte 0x5f, 0x41, 0x00, 0xf1 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x04, 0x80, 0xc0, 0x9e - .byte 0xf8, 0x7f, 0x53, 0x45 - .byte 0x5f, 0x42, 0x00, 0xf1 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x0a, 0x80, 0x40, 0x61 - .byte 0x07, 0x80, 0xff, 0xff - .byte 0xff, 0xff, 0x53, 0x45 - .byte 0x5f, 0x43, 0x00, 0xf1 - # Enum (0x1012) { - # TypeLeafKind: LF_ENUM (0x1507) - # NumEnumerators: 3 - # Properties [ (0x200) - # HasUniqueName (0x200) - # ] - # UnderlyingType: int (0x74) - # FieldListType: <field list> (0x1011) - # Name: A::B::C::SignedEnum - # LinkageName: .?AW4SignedEnum@C@B@A@@ - # } - .byte 0x3a, 0x00, 0x07, 0x15 - .byte 0x03, 0x00, 0x00, 0x02 - .byte 0x74, 0x00, 0x00, 0x00 - .byte 0x11, 0x10, 0x00, 0x00 - .byte 0x41, 0x3a, 0x3a, 0x42 - .byte 0x3a, 0x3a, 0x43, 0x3a - .byte 0x3a, 0x53, 0x69, 0x67 - .byte 0x6e, 0x65, 0x64, 0x45 - .byte 0x6e, 0x75, 0x6d, 0x00 - .byte 0x2e, 0x3f, 0x41, 0x57 - .byte 0x34, 0x53, 0x69, 0x67 - .byte 0x6e, 0x65, 0x64, 0x45 - .byte 0x6e, 0x75, 0x6d, 0x40 - .byte 0x43, 0x40, 0x42, 0x40 - .byte 0x41, 0x40, 0x40, 0x00 - # UdtSourceLine (0x1013) { - # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) - # UDT: A::B::C::SignedEnum (0x1012) - # SourceFile: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp (0x1006) - # LineNumber: 32 - # } - .byte 0x0e, 0x00, 0x06, 0x16 - .byte 0x12, 0x10, 0x00, 0x00 - .byte 0x06, 0x10, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00 - # Modifier (0x1014) { - # TypeLeafKind: LF_MODIFIER (0x1001) - # ModifiedType: A::B::C::SignedEnum (0x1012) - # Modifiers [ (0x1) - # Const (0x1) - # ] - # } - .byte 0x0a, 0x00, 0x01, 0x10 - .byte 0x12, 0x10, 0x00, 0x00 - .byte 0x01, 0x00, 0xf2, 0xf1 - # FieldList (0x1015) { - # TypeLeafKind: LF_FIELDLIST (0x1203) - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 0 - # Name: SUE_A - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 100 - # Name: SUE_B - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 200 - # Name: SUE_C - # } - # } - .byte 0x26, 0x00, 0x03, 0x12 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x00, 0x00, 0x53, 0x55 - .byte 0x45, 0x5f, 0x41, 0x00 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x64, 0x00, 0x53, 0x55 - .byte 0x45, 0x5f, 0x42, 0x00 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0xc8, 0x00, 0x53, 0x55 - .byte 0x45, 0x5f, 0x43, 0x00 - # Enum (0x1016) { - # TypeLeafKind: LF_ENUM (0x1507) - # NumEnumerators: 3 - # Properties [ (0x200) - # HasUniqueName (0x200) - # ] - # UnderlyingType: unsigned char (0x20) - # FieldListType: <field list> (0x1015) - # Name: A::B::C::SmallUnsignedEnum - # LinkageName: .?AW4SmallUnsignedEnum@C@B@A@@ - # } - .byte 0x4a, 0x00, 0x07, 0x15 - .byte 0x03, 0x00, 0x00, 0x02 - .byte 0x20, 0x00, 0x00, 0x00 - .byte 0x15, 0x10, 0x00, 0x00 - .byte 0x41, 0x3a, 0x3a, 0x42 - .byte 0x3a, 0x3a, 0x43, 0x3a - .byte 0x3a, 0x53, 0x6d, 0x61 - .byte 0x6c, 0x6c, 0x55, 0x6e - .byte 0x73, 0x69, 0x67, 0x6e - .byte 0x65, 0x64, 0x45, 0x6e - .byte 0x75, 0x6d, 0x00, 0x2e - .byte 0x3f, 0x41, 0x57, 0x34 - .byte 0x53, 0x6d, 0x61, 0x6c - .byte 0x6c, 0x55, 0x6e, 0x73 - .byte 0x69, 0x67, 0x6e, 0x65 - .byte 0x64, 0x45, 0x6e, 0x75 - .byte 0x6d, 0x40, 0x43, 0x40 - .byte 0x42, 0x40, 0x41, 0x40 - .byte 0x40, 0x00, 0xf2, 0xf1 - # UdtSourceLine (0x1017) { - # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) - # UDT: A::B::C::SmallUnsignedEnum (0x1016) - # SourceFile: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp (0x1006) - # LineNumber: 38 - # } - .byte 0x0e, 0x00, 0x06, 0x16 - .byte 0x16, 0x10, 0x00, 0x00 - .byte 0x06, 0x10, 0x00, 0x00 - .byte 0x26, 0x00, 0x00, 0x00 - # Modifier (0x1018) { - # TypeLeafKind: LF_MODIFIER (0x1001) - # ModifiedType: A::B::C::SmallUnsignedEnum (0x1016) - # Modifiers [ (0x1) - # Const (0x1) - # ] - # } - .byte 0x0a, 0x00, 0x01, 0x10 - .byte 0x16, 0x10, 0x00, 0x00 - .byte 0x01, 0x00, 0xf2, 0xf1 - # FieldList (0x1019) { - # TypeLeafKind: LF_FIELDLIST (0x1203) - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 0 - # Name: SSE_A - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 100 - # Name: SSE_B - # } - # Enumerator { - # TypeLeafKind: LF_ENUMERATE (0x1502) - # AccessSpecifier: Public (0x3) - # EnumValue: 18446744073709551516 - # Name: SSE_C - # } - # } - .byte 0x2e, 0x00, 0x03, 0x12 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x00, 0x00, 0x53, 0x53 - .byte 0x45, 0x5f, 0x41, 0x00 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x64, 0x00, 0x53, 0x53 - .byte 0x45, 0x5f, 0x42, 0x00 - .byte 0x02, 0x15, 0x03, 0x00 - .byte 0x0a, 0x80, 0x9c, 0xff - .byte 0xff, 0xff, 0xff, 0xff - .byte 0xff, 0xff, 0x53, 0x53 - .byte 0x45, 0x5f, 0x43, 0x00 - # Enum (0x101A) { - # TypeLeafKind: LF_ENUM (0x1507) - # NumEnumerators: 3 - # Properties [ (0x200) - # HasUniqueName (0x200) - # ] - # UnderlyingType: char (0x70) - # FieldListType: <field list> (0x1019) - # Name: A::B::C::SmallSignedEnum - # LinkageName: .?AW4SmallSignedEnum@C@B@A@@ - # } - .byte 0x46, 0x00, 0x07, 0x15 - .byte 0x03, 0x00, 0x00, 0x02 - .byte 0x70, 0x00, 0x00, 0x00 - .byte 0x19, 0x10, 0x00, 0x00 - .byte 0x41, 0x3a, 0x3a, 0x42 - .byte 0x3a, 0x3a, 0x43, 0x3a - .byte 0x3a, 0x53, 0x6d, 0x61 - .byte 0x6c, 0x6c, 0x53, 0x69 - .byte 0x67, 0x6e, 0x65, 0x64 - .byte 0x45, 0x6e, 0x75, 0x6d - .byte 0x00, 0x2e, 0x3f, 0x41 - .byte 0x57, 0x34, 0x53, 0x6d - .byte 0x61, 0x6c, 0x6c, 0x53 - .byte 0x69, 0x67, 0x6e, 0x65 - .byte 0x64, 0x45, 0x6e, 0x75 - .byte 0x6d, 0x40, 0x43, 0x40 - .byte 0x42, 0x40, 0x41, 0x40 - .byte 0x40, 0x00, 0xf2, 0xf1 - # UdtSourceLine (0x101B) { - # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) - # UDT: A::B::C::SmallSignedEnum (0x101A) - # SourceFile: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\s_constant.cpp (0x1006) - # LineNumber: 44 - # } - .byte 0x0e, 0x00, 0x06, 0x16 - .byte 0x1a, 0x10, 0x00, 0x00 - .byte 0x06, 0x10, 0x00, 0x00 - .byte 0x2c, 0x00, 0x00, 0x00 - # Modifier (0x101C) { - # TypeLeafKind: LF_MODIFIER (0x1001) - # ModifiedType: A::B::C::SmallSignedEnum (0x101A) - # Modifiers [ (0x1) - # Const (0x1) - # ] - # } - .byte 0x0a, 0x00, 0x01, 0x10 - .byte 0x1a, 0x10, 0x00, 0x00 - .byte 0x01, 0x00, 0xf2, 0xf1 - # StringId (0x101D) { - # TypeLeafKind: LF_STRING_ID (0x1605) - # Id: 0x0 - # StringData: D:\\src\\llvmbuild\\ninja-x64 - # } - .byte 0x26, 0x00, 0x05, 0x16 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x44, 0x3a, 0x5c, 0x5c - .byte 0x73, 0x72, 0x63, 0x5c - .byte 0x5c, 0x6c, 0x6c, 0x76 - .byte 0x6d, 0x62, 0x75, 0x69 - .byte 0x6c, 0x64, 0x5c, 0x5c - .byte 0x6e, 0x69, 0x6e, 0x6a - .byte 0x61, 0x2d, 0x78, 0x36 - .byte 0x34, 0x00, 0xf2, 0xf1 - # StringId (0x101E) { - # TypeLeafKind: LF_STRING_ID (0x1605) - # Id: 0x0 - # StringData: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\variable.cpp - # } - .byte 0x42, 0x00, 0x05, 0x16 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x44, 0x3a, 0x5c, 0x73 - .byte 0x72, 0x63, 0x5c, 0x6c - .byte 0x6c, 0x76, 0x6d, 0x2d - .byte 0x6d, 0x6f, 0x6e, 0x6f - .byte 0x5c, 0x6c, 0x6c, 0x64 - .byte 0x62, 0x5c, 0x6c, 0x69 - .byte 0x74, 0x5c, 0x53, 0x79 - .byte 0x6d, 0x62, 0x6f, 0x6c - .byte 0x46, 0x69, 0x6c, 0x65 - .byte 0x5c, 0x4e, 0x61, 0x74 - .byte 0x69, 0x76, 0x65, 0x50 - .byte 0x44, 0x42, 0x5c, 0x76 - .byte 0x61, 0x72, 0x69, 0x61 - .byte 0x62, 0x6c, 0x65, 0x2e - .byte 0x63, 0x70, 0x70, 0x00 - # BuildInfo (0x101F) { - # TypeLeafKind: LF_BUILDINFO (0x1603) - # NumArgs: 5 - # Arguments [ - # ArgType: D:\\src\\llvmbuild\\ninja-x64 (0x101D) - # ArgType: 0x0 - # ArgType: D:\src\llvm-mono\lldb\lit\SymbolFile\NativePDB\variable.cpp (0x101E) - # ArgType: 0x0 - # ArgType: 0x0 - # ] - # } - .byte 0x1a, 0x00, 0x03, 0x16 - .byte 0x05, 0x00, 0x1d, 0x10 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x1e, 0x10 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0xf2, 0xf1 - - .addrsig - .addrsig_sym GlobalLUEA - .addrsig_sym GlobalLUEB - .addrsig_sym GlobalLUEC - .addrsig_sym GlobalLSEA - .addrsig_sym GlobalLSEB - .addrsig_sym GlobalLSEC - .addrsig_sym GlobalUEA - .addrsig_sym GlobalUEB - .addrsig_sym GlobalUEC - .addrsig_sym GlobalSEA - .addrsig_sym GlobalSEB - .addrsig_sym GlobalSEC - .addrsig_sym GlobalSUEA - .addrsig_sym GlobalSUEB - .addrsig_sym GlobalSUEC - .addrsig_sym GlobalSSEA - .addrsig_sym GlobalSSEB - .addrsig_sym GlobalSSEC diff --git a/lit/SymbolFile/NativePDB/Inputs/source-list.lldbinit b/lit/SymbolFile/NativePDB/Inputs/source-list.lldbinit deleted file mode 100644 index 624ce5ba156b..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/source-list.lldbinit +++ /dev/null @@ -1,3 +0,0 @@ -source list -n main -source list -n OvlGlobalFn -quit diff --git a/lit/SymbolFile/NativePDB/Inputs/tag-types.lldbinit b/lit/SymbolFile/NativePDB/Inputs/tag-types.lldbinit deleted file mode 100644 index c50e18101b1b..000000000000 --- a/lit/SymbolFile/NativePDB/Inputs/tag-types.lldbinit +++ /dev/null @@ -1,8 +0,0 @@ -type lookup -- Struct -type lookup -- Class -type lookup -- Union -type lookup -- Derived -type lookup -- Derived2 -type lookup -- EnumInt -type lookup -- EnumShort -type lookup -- InvalidType diff --git a/lit/SymbolFile/NativePDB/ast-functions-msvc.cpp b/lit/SymbolFile/NativePDB/ast-functions-msvc.cpp deleted file mode 100644 index b8154168aff3..000000000000 --- a/lit/SymbolFile/NativePDB/ast-functions-msvc.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// clang-format off -// REQUIRES: msvc - -// RUN: %build --compiler=msvc --nodefaultlib -o %t.exe -- %S/ast-functions.cpp - -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/ast-functions.lldbinit 2>&1 | FileCheck %S/ast-functions.cpp diff --git a/lit/SymbolFile/NativePDB/ast-functions.cpp b/lit/SymbolFile/NativePDB/ast-functions.cpp deleted file mode 100644 index 05c80c7298f7..000000000000 --- a/lit/SymbolFile/NativePDB/ast-functions.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s - -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/ast-functions.lldbinit 2>&1 | FileCheck %s - -static int static_fn() { - return 42; -} - -int varargs_fn(int x, int y, ...) { - return x + y; -} - -int main(int argc, char **argv) { - return static_fn() + varargs_fn(argc, argc); -} - -// CHECK: TranslationUnitDecl -// CHECK-NEXT: |-FunctionDecl {{.*}} main 'int (int, char **)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} argc 'int' -// CHECK-NEXT: | `-ParmVarDecl {{.*}} argv 'char **' -// CHECK-NEXT: |-FunctionDecl {{.*}} static_fn 'int ()' static -// CHECK-NEXT: |-FunctionDecl {{.*}} varargs_fn 'int (int, int, ...)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} x 'int' -// CHECK-NEXT: | `-ParmVarDecl {{.*}} y 'int' -// CHECK-NEXT: `-<undeserialized declarations> diff --git a/lit/SymbolFile/NativePDB/ast-types.cpp b/lit/SymbolFile/NativePDB/ast-types.cpp deleted file mode 100644 index 224c7c26e846..000000000000 --- a/lit/SymbolFile/NativePDB/ast-types.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test various interesting cases for AST reconstruction. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/ast-types.lldbinit 2>&1 | FileCheck %s - -// Test trivial versions of each tag type. -class TrivialC {}; -struct TrivialS {}; -union TrivialU {}; -enum TrivialE {TE_A}; - -// Test reconstruction of DeclContext hierarchies. -namespace A { - namespace B { - template<typename T> - struct C { - T ABCMember; - }; - - // Let's try a template specialization with a different implementation - template<> - struct C<void> { - void *ABCSpecializationMember; - }; - } - - // Let's make sure we can distinguish classes and namespaces. Also let's try - // a non-type template parameter. - template<int N> - struct C { - class D { - int ACDMember = 0; - C<N - 1> *CPtr = nullptr; - }; - }; - - struct D { - // Let's make a nested class with the same name as another nested class - // elsewhere, and confirm that they appear in the right DeclContexts in - // the AST. - struct E { - int ADDMember; - }; - }; -} - - -// Let's try an anonymous namespace. -namespace { - template<typename T> - struct Anonymous { - int AnonymousMember; - // And a nested class within an anonymous namespace - struct D { - int AnonymousDMember; - }; - }; -} - -TrivialC TC; -TrivialS TS; -TrivialU TU; -TrivialE TE; - -A::B::C<int> ABCInt; -A::B::C<float> ABCFloat; -A::B::C<void> ABCVoid; - -A::C<0> AC0; -A::C<-1> ACNeg1; - -A::C<0>::D AC0D; -A::C<-1>::D ACNeg1D; -A::D AD; -A::D::E ADE; - -// FIXME: Anonymous namespaces aren't working correctly. -Anonymous<int> AnonInt; -Anonymous<A::B::C<void>> AnonABCVoid; -Anonymous<A::B::C<int>>::D AnonABCVoidD; - -// FIXME: Enum size isn't being correctly determined. -// FIXME: Can't read memory for variable values. - -// CHECK: (TrivialC) TC = {} -// CHECK: (TrivialS) TS = {} -// CHECK: (TrivialU) TU = {} -// CHECK: (TrivialE) TE = TE_A -// CHECK: (A::B::C<int>) ABCInt = (ABCMember = 0) -// CHECK: (A::B::C<float>) ABCFloat = (ABCMember = 0) -// CHECK: (A::B::C<void>) ABCVoid = (ABCSpecializationMember = 0x{{0+}}) -// CHECK: (A::C<0>) AC0 = {} -// CHECK: (A::C<-1>) ACNeg1 = {} -// CHECK: (A::C<0>::D) AC0D = (ACDMember = 0, CPtr = 0x{{0+}}) -// CHECK: (A::C<-1>::D) ACNeg1D = (ACDMember = 0, CPtr = 0x{{0+}}) -// CHECK: (A::D) AD = {} -// CHECK: (A::D::E) ADE = (ADDMember = 0) -// CHECK: Dumping clang ast for 1 modules. -// CHECK: TranslationUnitDecl {{.*}} -// CHECK: |-CXXRecordDecl {{.*}} class TrivialC definition -// CHECK: |-CXXRecordDecl {{.*}} struct TrivialS definition -// CHECK: |-CXXRecordDecl {{.*}} union TrivialU definition -// CHECK: |-EnumDecl {{.*}} TrivialE -// CHECK: | `-EnumConstantDecl {{.*}} TE_A 'TrivialE' -// CHECK: |-NamespaceDecl {{.*}} A -// CHECK: | |-NamespaceDecl {{.*}} B -// CHECK: | | |-CXXRecordDecl {{.*}} struct C<int> definition -// CHECK: | | | `-FieldDecl {{.*}} ABCMember 'int' -// CHECK: | | |-CXXRecordDecl {{.*}} struct C<float> definition -// CHECK: | | | `-FieldDecl {{.*}} ABCMember 'float' -// CHECK: | | `-CXXRecordDecl {{.*}} struct C<void> definition -// CHECK: | | `-FieldDecl {{.*}} ABCSpecializationMember 'void *' -// CHECK: | |-CXXRecordDecl {{.*}} struct C<0> definition -// CHECK: | | `-CXXRecordDecl {{.*}} class D definition -// CHECK: | | |-FieldDecl {{.*}} ACDMember 'int' -// CHECK: | | `-FieldDecl {{.*}} CPtr 'A::C<-1> *' -// CHECK: | |-CXXRecordDecl {{.*}} struct C<-1> definition -// CHECK: | | `-CXXRecordDecl {{.*}} class D definition -// CHECK: | | |-FieldDecl {{.*}} ACDMember 'int' -// CHECK: | | `-FieldDecl {{.*}} CPtr 'A::C<-2> *' -// CHECK: | |-CXXRecordDecl {{.*}} struct C<-2> -// CHECK: | `-CXXRecordDecl {{.*}} struct D definition -// CHECK: | `-CXXRecordDecl {{.*}} struct E definition -// CHECK: | `-FieldDecl {{.*}} ADDMember 'int' - -int main(int argc, char **argv) { - return 0; -} diff --git a/lit/SymbolFile/NativePDB/bitfields.cpp b/lit/SymbolFile/NativePDB/bitfields.cpp deleted file mode 100644 index 301ae3067d13..000000000000 --- a/lit/SymbolFile/NativePDB/bitfields.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test various interesting cases for AST reconstruction. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/bitfields.lldbinit 2>&1 | FileCheck %s - -// Test trivial versions of each tag type. -struct Struct { - int A : 5 = 6; - int B : 7 = 8; - unsigned C : 3 = 2; - unsigned D : 15 = 12345; - char E : 1 = 0; - char F : 2 = 1; - char G : 3 = 2; - // H should be at offset 0 of a new byte. - char H : 3 = 3; -}; - -constexpr Struct TheStruct; - - -int main(int argc, char **argv) { - return TheStruct.A; -} - -// CHECK: (lldb) target variable -T TheStruct -// CHECK: (const Struct) TheStruct = { -// CHECK: (int:5) A = 6 -// CHECK: (int:7) B = 8 -// CHECK: (unsigned int:3) C = 2 -// CHECK: (unsigned int:15) D = 12345 -// CHECK: (char:1) E = '\0' -// CHECK: (char:2) F = '\x01' -// CHECK: (char:3) G = '\x02' -// CHECK: (char:3) H = '\x03' -// CHECK: } -// -// CHECK: target modules dump ast -// CHECK: Dumping clang ast for 1 modules. -// CHECK: TranslationUnitDecl {{.*}} -// CHECK: |-CXXRecordDecl {{.*}} struct Struct definition -// CHECK: | |-FieldDecl {{.*}} A 'int' -// CHECK: | | `-IntegerLiteral {{.*}} 'int' 5 -// CHECK: | |-FieldDecl {{.*}} B 'int' -// CHECK: | | `-IntegerLiteral {{.*}} 'int' 7 -// CHECK: | |-FieldDecl {{.*}} C 'unsigned int' -// CHECK: | | `-IntegerLiteral {{.*}} 'int' 3 -// CHECK: | |-FieldDecl {{.*}} D 'unsigned int' -// CHECK: | | `-IntegerLiteral {{.*}} 'int' 15 -// CHECK: | |-FieldDecl {{.*}} E 'char' -// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK: | |-FieldDecl {{.*}} F 'char' -// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK: | |-FieldDecl {{.*}} G 'char' -// CHECK: | | `-IntegerLiteral {{.*}} 'int' 3 -// CHECK: | `-FieldDecl {{.*}} H 'char' -// CHECK: | `-IntegerLiteral {{.*}} 'int' 3 diff --git a/lit/SymbolFile/NativePDB/break-by-function.cpp b/lit/SymbolFile/NativePDB/break-by-function.cpp deleted file mode 100644 index c0c26f7617c9..000000000000 --- a/lit/SymbolFile/NativePDB/break-by-function.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can set simple breakpoints using PDB on any platform. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/break-by-function.lldbinit | FileCheck %s - -// Use different indentation style for each overload so that the starting -// line is in a different place. - -int OvlGlobalFn(int X) { - return X + 42; -} - -int OvlGlobalFn(int X, int Y) { return X + Y + 42; } - -int OvlGlobalFn(int X, int Y, int Z) -{ - return X + Y + Z + 42; -} - -static int StaticFn(int X) { - return X + 42; -} - -int main(int argc, char **argv) { - // Make sure they don't get optimized out. - // Note the comments here, we want to make sure the line number reported - // for the breakpoint is the first actual line of code. - int Result = OvlGlobalFn(argc) + OvlGlobalFn(argc, argc) - + OvlGlobalFn(argc, argc, argc) + StaticFn(argc); - return Result; -} - - -// CHECK: (lldb) target create "{{.*}}break-by-function.cpp.tmp.exe" -// CHECK: Current executable set to '{{.*}}break-by-function.cpp.tmp.exe' -// CHECK: (lldb) break set -n main -// CHECK: Breakpoint 1: where = break-by-function.cpp.tmp.exe`main + {{[0-9]+}} -// CHECK: (lldb) break set -n OvlGlobalFn -// CHECK: Breakpoint 2: 3 locations. -// CHECK: (lldb) break set -n StaticFn -// CHECK: Breakpoint 3: where = break-by-function.cpp.tmp.exe`StaticFn + {{[0-9]+}} -// CHECK: (lldb) break set -n DoesntExist -// CHECK: Breakpoint 4: no locations (pending). -// CHECK: (lldb) break list -// CHECK: Current breakpoints: -// CHECK: 1: name = 'main', locations = 1 -// CHECK: 1.1: where = break-by-function.cpp.tmp.exe`main + {{[0-9]+}} -// CHECK: 2: name = 'OvlGlobalFn', locations = 3 -// CHECK: 2.1: where = break-by-function.cpp.tmp.exe`OvlGlobalFn + {{[0-9]+}} -// CHECK: 2.2: where = break-by-function.cpp.tmp.exe`OvlGlobalFn -// CHECK: 2.3: where = break-by-function.cpp.tmp.exe`OvlGlobalFn + {{[0-9]+}} -// CHECK: 3: name = 'StaticFn', locations = 1 -// CHECK: 3.1: where = break-by-function.cpp.tmp.exe`StaticFn + {{[0-9]+}} -// CHECK: 4: name = 'DoesntExist', locations = 0 (pending) diff --git a/lit/SymbolFile/NativePDB/break-by-line.cpp b/lit/SymbolFile/NativePDB/break-by-line.cpp deleted file mode 100644 index ae3269f3719f..000000000000 --- a/lit/SymbolFile/NativePDB/break-by-line.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can set simple breakpoints using PDB on any platform. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/break-by-line.lldbinit | FileCheck %s - -// This is a separate test from break-by-function.cpp because this test is -// sensitive to edits in the source file. - -namespace NS { - int NamespaceFn(int X) { - return X + 42; - } -} - -int main(int argc, char **argv) { - return NS::NamespaceFn(argc); -} - - -// CHECK: (lldb) target create "{{.*}}break-by-line.cpp.tmp.exe" -// CHECK: Current executable set to '{{.*}}break-by-line.cpp.tmp.exe' -// CHECK: (lldb) break set -f break-by-line.cpp -l 14 -// CHECK: Breakpoint 1: where = break-by-line.cpp.tmp.exe`NS::NamespaceFn + {{[0-9]+}} at break-by-line.cpp:14 diff --git a/lit/SymbolFile/NativePDB/disassembly.cpp b/lit/SymbolFile/NativePDB/disassembly.cpp deleted file mode 100644 index 3553f29ce55c..000000000000 --- a/lit/SymbolFile/NativePDB/disassembly.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can show disassembly and source. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/disassembly.lldbinit | FileCheck %s - -// Some context lines before -// the function. - -int foo() { return 42; } - -int main(int argc, char **argv) { - foo(); - return 0; -} - - -// CHECK: (lldb) disassemble --flavor=intel -m -n main -// CHECK: 12 int foo() { return 42; } -// CHECK-NEXT: 13 -// CHECK-NEXT: ** 14 int main(int argc, char **argv) { -// CHECK: disassembly.cpp.tmp.exe`main: -// CHECK-NEXT: disassembly.cpp.tmp.exe[{{.*}}] <+0>: sub rsp, 0x38 -// CHECK-NEXT: disassembly.cpp.tmp.exe[{{.*}}] <+4>: mov dword ptr [rsp + 0x34], 0x0 -// CHECK-NEXT: disassembly.cpp.tmp.exe[{{.*}}] <+12>: mov qword ptr [rsp + 0x28], rdx -// CHECK-NEXT: disassembly.cpp.tmp.exe[{{.*}}] <+17>: mov dword ptr [rsp + 0x24], ecx -// CHECK: ** 15 foo(); -// CHECK: disassembly.cpp.tmp.exe[{{.*}}] <+21>: call {{.*}} ; foo at disassembly.cpp:12 -// CHECK-NEXT: disassembly.cpp.tmp.exe[{{.*}}] <+26>: xor ecx, ecx -// CHECK-NEXT: disassembly.cpp.tmp.exe[{{.*}}] <+28>: mov dword ptr [rsp + 0x20], eax -// CHECK: ** 16 return 0; -// CHECK-NEXT: 17 } -// CHECK-NEXT: 18 -// CHECK: disassembly.cpp.tmp.exe[{{.*}}] <+32>: mov eax, ecx -// CHECK-NEXT: disassembly.cpp.tmp.exe[{{.*}}] <+34>: add rsp, 0x38 -// CHECK-NEXT: disassembly.cpp.tmp.exe[{{.*}}] <+38>: ret diff --git a/lit/SymbolFile/NativePDB/function-types-builtins.cpp b/lit/SymbolFile/NativePDB/function-types-builtins.cpp deleted file mode 100644 index ac76955197a2..000000000000 --- a/lit/SymbolFile/NativePDB/function-types-builtins.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/function-types-builtins.lldbinit | FileCheck %s - -// Test that we can display function signatures with simple builtin -// and pointer types. We do this by using `target variable` in lldb -// with global variables of type ptr-to-function or reference-to-function. -// This technique in general allows us to exercise most of LLDB's type -// system without a running process. - -template<typename T> -struct MakeResult { - static T result() { - return T{}; - } -}; - -template<typename T> -struct MakeResult<T&> { - static T& result() { - static T t; - return t; - } -}; - -template<typename T> -struct MakeResult<T&&> { - static T&& result() { - static T t; - return static_cast<T&&>(t); - } -}; - - -void nullary() {} - -template<typename Arg> -void unary(Arg) { } - -template<typename Ret, int N> -Ret unaryret() { return MakeResult<Ret>::result(); } - -template<typename A1, typename A2> -void binary(A1, A2) { } - -int varargs(int, int, ...) { return 0; } - -// Make sure to test every builtin type at least once for completeness. We -// test these in the globals-fundamentals.cpp when they are the types of -// variables but it's possible to imagine a situation where things behave -// differently as function arguments or return values than they do with -// global variables. - -// some interesting cases with argument types. -auto aa = &unary<bool>; -// CHECK: (void (*)(bool)) aa = {{.*}} -auto ab = &unary<char>; -// CHECK: (void (*)(char)) ab = {{.*}} -auto ac = &unary<signed char>; -// CHECK: (void (*)(signed char)) ac = {{.*}} -auto ad = &unary<unsigned char>; -// CHECK: (void (*)(unsigned char)) ad = {{.*}} -auto ae = &unary<char16_t>; -// CHECK: (void (*)(char16_t)) ae = {{.*}} -auto af = &unary<char32_t>; -// CHECK: (void (*)(char32_t)) af = {{.*}} -auto ag = &unary<wchar_t>; -// CHECK: (void (*)(wchar_t)) ag = {{.*}} -auto ah = &unary<short>; -// CHECK: (void (*)(short)) ah = {{.*}} -auto ai = &unary<unsigned short>; -// CHECK: (void (*)(unsigned short)) ai = {{.*}} -auto aj = &unary<int>; -// CHECK: (void (*)(int)) aj = {{.*}} -auto ak = &unary<unsigned int>; -// CHECK: (void (*)(unsigned int)) ak = {{.*}} -auto al = &unary<long>; -// CHECK: (void (*)(long)) al = {{.*}} -auto am = &unary<unsigned long>; -// CHECK: (void (*)(unsigned long)) am = {{.*}} -auto an = &unary<long long>; -// CHECK: (void (*)(long long)) an = {{.*}} -auto ao = &unary<unsigned long long>; -// CHECK: (void (*)(unsigned long long)) ao = {{.*}} -auto aq = &unary<float>; -// CHECK: (void (*)(float)) aq = {{.*}} -auto ar = &unary<double>; -// CHECK: (void (*)(double)) ar = {{.*}} - -auto as = &unary<int*>; -// CHECK: (void (*)(int *)) as = {{.*}} -auto at = &unary<int**>; -// CHECK: (void (*)(int **)) at = {{.*}} -auto au = &unary<int&>; -// CHECK: (void (*)(int &)) au = {{.*}} -auto av = &unary<int&&>; -// CHECK: (void (*)(int &&)) av = {{.*}} -auto aw = &unary<const int*>; -// CHECK: (void (*)(const int *)) aw = {{.*}} -auto ax = &unary<volatile int*>; -// CHECK: (void (*)(volatile int *)) ax = {{.*}} -auto ay = &unary<const volatile int*>; -// CHECK: (void (*)(const volatile int *)) ay = {{.*}} -auto az = &unary<void*&>; -// CHECK: (void (*)(void *&)) az = {{.*}} -auto aaa = &unary<int(&)[5]>; -// CHECK: (void (*)(int (&)[5])) aaa = {{.*}} -auto aab = &unary<int(*)[5]>; -// CHECK: (void (*)(int (*)[5])) aab = {{.*}} -auto aac = &unary<int(&&)[5]>; -// CHECK: (void (*)(int (&&)[5])) aac = {{.*}} -auto aad = &unary<int(*const)[5]>; -// CHECK: (void (*)(int (*)[5])) aad = {{.*}} - - -// same test cases with return values, note we can't overload on return type -// so we need to use a different instantiation each time. -auto ra = &unaryret<bool, 0>; -// CHECK: (bool (*)()) ra = {{.*}} -auto rb = &unaryret<char, 1>; -// CHECK: (char (*)()) rb = {{.*}} -auto rc = &unaryret<signed char, 2>; -// CHECK: (signed char (*)()) rc = {{.*}} -auto rd = &unaryret<unsigned char, 3>; -// CHECK: (unsigned char (*)()) rd = {{.*}} -auto re = &unaryret<char16_t, 4>; -// CHECK: (char16_t (*)()) re = {{.*}} -auto rf = &unaryret<char32_t, 5>; -// CHECK: (char32_t (*)()) rf = {{.*}} -auto rg = &unaryret<wchar_t, 6>; -// CHECK: (wchar_t (*)()) rg = {{.*}} -auto rh = &unaryret<short, 7>; -// CHECK: (short (*)()) rh = {{.*}} -auto ri = &unaryret<unsigned short, 8>; -// CHECK: (unsigned short (*)()) ri = {{.*}} -auto rj = &unaryret<int, 9>; -// CHECK: (int (*)()) rj = {{.*}} -auto rk = &unaryret<unsigned int, 10>; -// CHECK: (unsigned int (*)()) rk = {{.*}} -auto rl = &unaryret<long, 11>; -// CHECK: (long (*)()) rl = {{.*}} -auto rm = &unaryret<unsigned long, 12>; -// CHECK: (unsigned long (*)()) rm = {{.*}} -auto rn = &unaryret<long long, 13>; -// CHECK: (long long (*)()) rn = {{.*}} -auto ro = &unaryret<unsigned long long, 14>; -// CHECK: (unsigned long long (*)()) ro = {{.*}} -auto rq = &unaryret<float, 15>; -// CHECK: (float (*)()) rq = {{.*}} -auto rr = &unaryret<double, 16>; -// CHECK: (double (*)()) rr = {{.*}} - -auto rs = &unaryret<int*, 17>; -// CHECK: (int *(*)()) rs = {{.*}} -auto rt = &unaryret<int**, 18>; -// CHECK: (int **(*)()) rt = {{.*}} -auto ru = &unaryret<int&, 19>; -// CHECK: (int &(*)()) ru = {{.*}} -auto rv = &unaryret<int&&, 20>; -// CHECK: (int &&(*)()) rv = {{.*}} -auto rw = &unaryret<const int*, 21>; -// CHECK: (const int *(*)()) rw = {{.*}} -auto rx = &unaryret<volatile int*, 22>; -// CHECK: (volatile int *(*)()) rx = {{.*}} -auto ry = &unaryret<const volatile int*, 23>; -// CHECK: (const volatile int *(*)()) ry = {{.*}} -auto rz = &unaryret<void*&, 24>; -// CHECK: (void *&(*)()) rz = {{.*}} - -// FIXME: This output doesn't really look correct. It should probably be -// formatting this as `int(&)[5] (*)()`. -auto raa = &unaryret<int(&)[5], 25>; -// CHECK: (int (&(*)())[5]) raa = {{.*}} -auto rab = &unaryret<int(*)[5], 26>; -// CHECK: (int (*(*)())[5]) rab = {{.*}} -auto rac = &unaryret<int(&&)[5], 27>; -// CHECK: (int (&&(*)())[5]) rac = {{.*}} -auto rad = &unaryret<int(*const)[5], 28>; -// CHECK: (int (*const (*)())[5]) rad = {{.*}} - - - -// Function references, we only need a couple of these since most of the -// interesting cases are already tested. -auto &ref = unary<bool>; -// CHECK: (void (&)(bool)) ref = {{.*}} (&::ref = <Unable to determine byte size.>) -auto &ref2 = unary<volatile int*>; -// CHECK: (void (&)(volatile int *)) ref2 = {{.*}} (&::ref2 = <Unable to determine byte size.>) -auto &ref3 = varargs; -// CHECK: (int (&)(int, int, ...)) ref3 = {{.*}} (&::ref3 = <Unable to determine byte size.>) - -// Multiple arguments, as before, just something to make sure it works. -auto binp = &binary<int*, const int*>; -// CHECK: (void (*)(int *, const int *)) binp = {{.*}} -auto &binr = binary<int*, const int*>; -// CHECK: (void (&)(int *, const int *)) binr = {{.*}} (&::binr = <Unable to determine byte size.>) - -// And finally, a function with no arguments. -auto null = &nullary; -// CHECK: (void (*)()) null = {{.*}} - -// FIXME: These currently don't work because clang-cl emits incorrect debug info -// for std::nullptr_t. We should fix these in clang-cl. -auto rae = &unaryret<decltype(nullptr), 29>; -// CHECK: (nullptr_t (*)()) rae = {{.*}} -auto aae = &unary<decltype(nullptr)>; -// CHECK: (void (*)(nullptr_t)) aae = {{.*}} - -int main(int argc, char **argv) { - return 0; -} diff --git a/lit/SymbolFile/NativePDB/function-types-calling-conv.cpp b/lit/SymbolFile/NativePDB/function-types-calling-conv.cpp deleted file mode 100644 index cd13159d508c..000000000000 --- a/lit/SymbolFile/NativePDB/function-types-calling-conv.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// RUN: %build --compiler=clang-cl --arch=32 --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/function-types-calling-conv.lldbinit | FileCheck %s - - -void __stdcall StdcallFn() {} -void __fastcall FastcallFn() {} -void __thiscall ThiscallFn() {} -void __cdecl CdeclFn() {} -void __vectorcall VectorcallFn() {} - -auto sfn = &StdcallFn; -// CHECK: (void (*)() __attribute__((stdcall))) sfn = {{.*}} - -auto ffn = &FastcallFn; -// CHECK: (void (*)() __attribute__((fastcall))) ffn = {{.*}} - -auto tfn = &ThiscallFn; -// CHECK: (void (*)() __attribute__((thiscall))) tfn = {{.*}} - -auto cfn = &CdeclFn; -// CHECK: (void (*)()) cfn = {{.*}} - -auto vfn = &VectorcallFn; -// CHECK: (void (*)() __attribute__((vectorcall))) vfn = {{.*}} - -int main(int argc, char **argv) { - return 0; -} diff --git a/lit/SymbolFile/NativePDB/function-types-classes.cpp b/lit/SymbolFile/NativePDB/function-types-classes.cpp deleted file mode 100644 index 5670f9bd1e17..000000000000 --- a/lit/SymbolFile/NativePDB/function-types-classes.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can display function signatures with class types. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/function-types-classes.lldbinit | FileCheck %s - -// This is just some unimportant helpers needed so that we can get reference and -// rvalue-reference types into return values. -template<typename T> -struct MakeResult { - static T result() { - return T{}; - } -}; - -template<typename T> -struct MakeResult<T&> { - static T& result() { - static T t; - return t; - } -}; - -template<typename T> -struct MakeResult<T&&> { - static T&& result() { - static T t; - return static_cast<T&&>(t); - } -}; - - -template<typename R> -R nullary() { return MakeResult<R>::result(); } - -template<typename R, typename A, typename B> -R three(A a, B b) { return MakeResult<R>::result(); } - -template<typename R, typename A, typename B, typename C> -R four(A a, B b, C c) { return MakeResult<R>::result(); } - -struct S {}; -class C {}; -union U {}; -enum E {}; - -namespace A { - namespace B { - // NS::NS - struct S { }; - } - - struct C { - // NS::Struct - struct S {}; - }; -} - -struct B { - struct A { - // Struct::Struct - struct S {}; - }; -}; - -// clang (incorrectly) doesn't emit debug information for outer classes -// unless they are instantiated. They should also be emitted if there -// is an inner class which is instantiated. -A::C ForceInstantiateAC; -B ForceInstantiateB; -B::A ForceInstantiateBA; - -template<typename T> -struct TC {}; - -// const and volatile modifiers -auto a = &four<S, C*, U&, E&&>; -// CHECK: (S (*)(C *, U &, E &&)) a = {{.*}} -auto b = &four<E, const S*, const C&, const U&&>; -// CHECK: (E (*)(const S *, const C &, const U &&)) b = {{.*}} -auto c = &four<U, volatile E*, volatile S&, volatile C&&>; -// CHECK: (U (*)(volatile E *, volatile S &, volatile C &&)) c = {{.*}} -auto d = &four<C, const volatile U*, const volatile E&, const volatile S&&>; -// CHECK: (C (*)(const volatile U *, const volatile E &, const volatile S &&)) d = {{.*}} - -// classes nested in namespaces and inner classes - -auto e = &three<A::B::S*, B::A::S*, A::C::S&>; -// CHECK: (A::B::S *(*)(B::A::S *, A::C::S &)) e = {{.*}} -auto f = &three<A::C::S&, A::B::S*, B::A::S*>; -// CHECK: (A::C::S &(*)(A::B::S *, B::A::S *)) f = {{.*}} -auto g = &three<B::A::S*, A::C::S&, A::B::S*>; -// CHECK: (B::A::S *(*)(A::C::S &, A::B::S *)) g = {{.*}} - -// parameter types that are themselves template instantiations. -auto h = &four<TC<void>, TC<int>, TC<TC<int>>, TC<A::B::S>>; -// CHECK: (TC<void> (*)(TC<int>, TC<TC<int>>, TC<A::B::S>)) h = {{.*}} - -auto i = &nullary<A::B::S>; -// CHECK: (A::B::S (*)()) i = {{.*}} - - -// Make sure we can handle types that don't have complete debug info. -struct Incomplete; -auto incomplete = &three<Incomplete*, Incomplete**, const Incomplete*>; -// CHECK: (Incomplete *(*)(Incomplete **, const Incomplete *)) incomplete = {{.*}} - -// CHECK: TranslationUnitDecl {{.*}} -// CHECK: |-CXXRecordDecl {{.*}} class C -// CHECK: |-CXXRecordDecl {{.*}} union U -// CHECK: |-EnumDecl {{.*}} E -// CHECK: |-CXXRecordDecl {{.*}} struct S -// CHECK: |-VarDecl {{.*}} a 'S (*)(C *, U &, E &&)'
-// CHECK: |-VarDecl {{.*}} b 'E (*)(const S *, const C &, const U &&)'
-// CHECK: |-VarDecl {{.*}} c 'U (*)(volatile E *, volatile S &, volatile C &&)'
-// CHECK: |-VarDecl {{.*}} d 'C (*)(const volatile U *, const volatile E &, const volatile S &&)' -// CHECK: |-CXXRecordDecl {{.*}} struct B -// CHECK: | |-CXXRecordDecl {{.*}} struct A -// CHECK: | | |-CXXRecordDecl {{.*}} struct S -// CHECK: |-NamespaceDecl {{.*}} A -// CHECK: | |-CXXRecordDecl {{.*}} struct C -// CHECK: | | |-CXXRecordDecl {{.*}} struct S -// CHECK: | `-NamespaceDecl {{.*}} B -// CHECK: | `-CXXRecordDecl {{.*}} struct S -// CHECK: |-VarDecl {{.*}} e 'A::B::S *(*)(B::A::S *, A::C::S &)'
-// CHECK: |-VarDecl {{.*}} f 'A::C::S &(*)(A::B::S *, B::A::S *)'
-// CHECK: |-VarDecl {{.*}} g 'B::A::S *(*)(A::C::S &, A::B::S *)' -// CHECK: |-CXXRecordDecl {{.*}} struct TC<int> -// CHECK: |-CXXRecordDecl {{.*}} struct TC<TC<int>> -// CHECK: |-CXXRecordDecl {{.*}} struct TC<A::B::S> -// CHECK: |-CXXRecordDecl {{.*}} struct TC<void> -// CHECK: |-VarDecl {{.*}} h 'TC<void> (*)(TC<int>, TC<TC<int>>, TC<A::B::S>)'
-// CHECK: |-VarDecl {{.*}} i 'A::B::S (*)()' -// CHECK: |-CXXRecordDecl {{.*}} struct Incomplete -// CHECK: |-VarDecl {{.*}} incomplete 'Incomplete *(*)(Incomplete **, const Incomplete *)' - -int main(int argc, char **argv) { - return 0; -} diff --git a/lit/SymbolFile/NativePDB/global-classes.cpp b/lit/SymbolFile/NativePDB/global-classes.cpp deleted file mode 100644 index ea7cc745d74d..000000000000 --- a/lit/SymbolFile/NativePDB/global-classes.cpp +++ /dev/null @@ -1,370 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can display tag types. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/globals-classes.lldbinit | FileCheck %s - -enum class EnumType : unsigned { - A = 1, - B = 2 -}; - -class ClassNoPadding { - /* [ 0] */ unsigned char a = 86; - /* [ 1] */ char b = 'a'; - /* [ 2] */ bool c = false; - /* [ 3] */ bool d = true; - /* [ 4] */ short e = -1234; - /* [ 6] */ unsigned short f = 8123; - /* [ 8] */ unsigned int g = 123908; - /* [12] */ int h = -890234; - /* [16] */ unsigned long i = 2908234; - /* [20] */ long j = 7234890; - /* [24] */ float k = 908234.12392; - /* [28] */ EnumType l = EnumType::A; - /* [32] */ double m = 23890.897423; - /* [40] */ unsigned long long n = 23490782; - /* [48] */ long long o = -923409823; - /* [56] */ int p[5] = { 2, 3, 5, 8, 13 }; -}; - -class ClassWithPadding { - /* [ 0] */ char a = '0'; - // char padding[1]; - /* [ 2] */ short b = 50; - /* [ 4] */ char c[2] = { '0', '1' }; - // char padding[2]; - /* [ 8] */ int d = 100; - /* [12] */ char e = '0'; - // char padding[3]; - /* [16] */ int f = 200; - // char padding[4]; - /* [24] */ long long g = 300; - /* [32] */ char h[3] = { '0', '1', '2' }; - // char padding[5]; - /* [40] */ long long i = 400; - /* [48] */ char j[2] = { '0', '1' }; - // char padding[6]; - /* [56] */ long long k = 500; - /* [64] */ char l = '0'; - // char padding[7]; - /* [72] */ long long m = 600; -} ; - -struct EmptyBase {}; - -template<typename T> -struct BaseClass { - constexpr BaseClass(int N) - : BaseMember(N) {} - - int BaseMember; -}; - -struct DerivedClass : public BaseClass<int> { - constexpr DerivedClass(int Base, int Derived) - : BaseClass(Base), DerivedMember(Derived) {} - - int DerivedMember; -}; - -struct EBO : public EmptyBase { - constexpr EBO(int N) : Member(N) {} - int Member; -}; - -struct PaddedBases : public BaseClass<char>, public BaseClass<short>, BaseClass<int> { - constexpr PaddedBases(char CH, short S, int N, long long D) - : BaseClass<char>(CH), BaseClass<short>(S), BaseClass<int>(N), DerivedMember(D) {} - long long DerivedMember; -}; - -struct Statics { - static char a; - static bool b; - static short c; - static unsigned short d; - static unsigned int e; - static int f; - static unsigned long g; - static long h; - static float i; - static EnumType j; - static double k; - static unsigned long long l; - static long long m; -}; - -char Statics::a = 'a'; -bool Statics::b = true; -short Statics::c = 1234; -unsigned short Statics::d = 2345; -unsigned int Statics::e = 3456; -int Statics::f = 4567; -unsigned long Statics::g = 5678; -long Statics::h = 6789; -float Statics::i = 7890.1234; -EnumType Statics::j = EnumType::A; -double Statics::k = 8901.2345; -unsigned long long Statics::l = 9012345; -long long Statics::m = 1234567; - - -struct Pointers { - void *a = nullptr; - char *b = &Statics::a; - bool *c = &Statics::b; - short *e = &Statics::c; - unsigned short *f = &Statics::d; - unsigned int *g = &Statics::e; - int *h = &Statics::f; - unsigned long *i = &Statics::g; - long *j = &Statics::h; - float *k = &Statics::i; - EnumType *l = &Statics::j; - double *m = &Statics::k; - unsigned long long *n = &Statics::l; - long long *o = &Statics::m; -}; - -struct References { - char &a = Statics::a; - bool &b = Statics::b; - short &c = Statics::c; - unsigned short &d = Statics::d; - unsigned int &e = Statics::e; - int &f = Statics::f; - unsigned long &g = Statics::g; - long &h = Statics::h; - float &i = Statics::i; - EnumType &j = Statics::j; - double &k = Statics::k; - unsigned long long &l = Statics::l; - long long &m = Statics::m; -}; - - -constexpr ClassWithPadding ClassWithPaddingInstance; -// CHECK: (lldb) target variable -T ClassWithPaddingInstance -// CHECK-NEXT: (const ClassWithPadding) ClassWithPaddingInstance = { -// CHECK-NEXT: (char) a = '0' -// CHECK-NEXT: (short) b = 50 -// CHECK-NEXT: (char [2]) c = "01" -// CHECK-NEXT: (int) d = 100 -// CHECK-NEXT: (char) e = '0' -// CHECK-NEXT: (int) f = 200 -// CHECK-NEXT: (long long) g = 300 -// CHECK-NEXT: (char [3]) h = "012" -// CHECK-NEXT: (long long) i = 400 -// CHECK-NEXT: (char [2]) j = "01" -// CHECK-NEXT: (long long) k = 500 -// CHECK-NEXT: (char) l = '0' -// CHECK-NEXT: (long long) m = 600 -// CHECK-NEXT: } - -constexpr ClassNoPadding ClassNoPaddingInstance; -// CHECK: (lldb) target variable -T ClassNoPaddingInstance -// CHECK-NEXT: (const ClassNoPadding) ClassNoPaddingInstance = { -// CHECK-NEXT: (unsigned char) a = 'V' -// CHECK-NEXT: (char) b = 'a' -// CHECK-NEXT: (bool) c = false -// CHECK-NEXT: (bool) d = true -// CHECK-NEXT: (short) e = -1234 -// CHECK-NEXT: (unsigned short) f = 8123 -// CHECK-NEXT: (unsigned int) g = 123908 -// CHECK-NEXT: (int) h = -890234 -// CHECK-NEXT: (unsigned long) i = 2908234 -// CHECK-NEXT: (long) j = 7234890 -// CHECK-NEXT: (float) k = 908234.125 -// CHECK-NEXT: (EnumType) l = A -// CHECK-NEXT: (double) m = 23890.897422999999 -// CHECK-NEXT: (unsigned long long) n = 23490782 -// CHECK-NEXT: (long long) o = -923409823 -// CHECK-NEXT: (int [5]) p = { -// CHECK-NEXT: (int) [0] = 2 -// CHECK-NEXT: (int) [1] = 3 -// CHECK-NEXT: (int) [2] = 5 -// CHECK-NEXT: (int) [3] = 8 -// CHECK-NEXT: (int) [4] = 13 -// CHECK-NEXT: } -// CHECK-NEXT: } - -constexpr DerivedClass DC(10, 20); -// CHECK: (lldb) target variable -T DC -// CHECK-NEXT: (const DerivedClass) DC = { -// CHECK-NEXT: (BaseClass<int>) BaseClass<int> = { -// CHECK-NEXT: (int) BaseMember = 10 -// CHECK-NEXT: } -// CHECK-NEXT: (int) DerivedMember = 20 -// CHECK-NEXT: } - -constexpr EBO EBOC(20); -// CHECK: (lldb) target variable -T EBOC -// CHECK-NEXT: (const EBO) EBOC = { -// CHECK-NEXT: (int) Member = 20 -// CHECK-NEXT: } - -constexpr PaddedBases PBC('a', 12, 120, 1200); -// CHECK: (lldb) target variable -T PBC -// CHECK-NEXT: (const PaddedBases) PBC = { -// CHECK-NEXT: (BaseClass<char>) BaseClass<char> = { -// CHECK-NEXT: (int) BaseMember = 97 -// CHECK-NEXT: } -// CHECK-NEXT: (BaseClass<short>) BaseClass<short> = { -// CHECK-NEXT: (int) BaseMember = 12 -// CHECK-NEXT: } -// CHECK-NEXT: (BaseClass<int>) BaseClass<int> = { -// CHECK-NEXT: (int) BaseMember = 120 -// CHECK-NEXT: } -// CHECK-NEXT: (long long) DerivedMember = 1200 -// CHECK-NEXT: } - -constexpr struct { - int x = 12; - EBO EBOC{ 42 }; -} UnnamedClassInstance; -// CHECK: (lldb) target variable -T UnnamedClassInstance -// CHECK-NEXT: (const <unnamed-type-UnnamedClassInstance>) UnnamedClassInstance = { -// CHECK-NEXT: (int) x = 12 -// CHECK-NEXT: (EBO) EBOC = { -// CHECK-NEXT: (int) Member = 42 -// CHECK-NEXT: } -// CHECK-NEXT: } - -constexpr Pointers PointersInstance; -// CHECK: (lldb) target variable -T PointersInstance -// CHECK-NEXT: (const Pointers) PointersInstance = { -// CHECK-NEXT: (void *) a = {{.*}} -// CHECK-NEXT: (char *) b = {{.*}} -// CHECK-NEXT: (bool *) c = {{.*}} -// CHECK-NEXT: (short *) e = {{.*}} -// CHECK-NEXT: (unsigned short *) f = {{.*}} -// CHECK-NEXT: (unsigned int *) g = {{.*}} -// CHECK-NEXT: (int *) h = {{.*}} -// CHECK-NEXT: (unsigned long *) i = {{.*}} -// CHECK-NEXT: (long *) j = {{.*}} -// CHECK-NEXT: (float *) k = {{.*}} -// CHECK-NEXT: (EnumType *) l = {{.*}} -// CHECK-NEXT: (double *) m = {{.*}} -// CHECK-NEXT: (unsigned long long *) n = {{.*}} -// CHECK-NEXT: (long long *) o = {{.*}} -// CHECK-NEXT: } -constexpr References ReferencesInstance; -// CHECK: (lldb) target variable -T ReferencesInstance -// CHECK-NEXT: (const References) ReferencesInstance = { -// CHECK-NEXT: (char &) a = {{.*}} -// CHECK-NEXT: (bool &) b = {{.*}} -// CHECK-NEXT: (short &) c = {{.*}} -// CHECK-NEXT: (unsigned short &) d = {{.*}} -// CHECK-NEXT: (unsigned int &) e = {{.*}} -// CHECK-NEXT: (int &) f = {{.*}} -// CHECK-NEXT: (unsigned long &) g = {{.*}} -// CHECK-NEXT: (long &) h = {{.*}} -// CHECK-NEXT: (float &) i = {{.*}} -// CHECK-NEXT: (EnumType &) j = {{.*}} -// CHECK-NEXT: (double &) k = {{.*}} -// CHECK-NEXT: (unsigned long long &) l = {{.*}} -// CHECK-NEXT: (long long &) m = {{.*}} -// CHECK-NEXT: } - -// CHECK: Dumping clang ast for 1 modules. -// CHECK: TranslationUnitDecl {{.*}} -// CHECK: |-CXXRecordDecl {{.*}} class ClassWithPadding definition -// CHECK: | |-FieldDecl {{.*}} a 'char' -// CHECK: | |-FieldDecl {{.*}} b 'short' -// CHECK: | |-FieldDecl {{.*}} c 'char [2]' -// CHECK: | |-FieldDecl {{.*}} d 'int' -// CHECK: | |-FieldDecl {{.*}} e 'char' -// CHECK: | |-FieldDecl {{.*}} f 'int' -// CHECK: | |-FieldDecl {{.*}} g 'long long' -// CHECK: | |-FieldDecl {{.*}} h 'char [3]' -// CHECK: | |-FieldDecl {{.*}} i 'long long' -// CHECK: | |-FieldDecl {{.*}} j 'char [2]' -// CHECK: | |-FieldDecl {{.*}} k 'long long' -// CHECK: | |-FieldDecl {{.*}} l 'char' -// CHECK: | `-FieldDecl {{.*}} m 'long long' -// CHECK: |-VarDecl {{.*}} ClassWithPaddingInstance 'const ClassWithPadding' -// CHECK: |-CXXRecordDecl {{.*}} class ClassNoPadding definition -// CHECK: | |-FieldDecl {{.*}} a 'unsigned char' -// CHECK: | |-FieldDecl {{.*}} b 'char' -// CHECK: | |-FieldDecl {{.*}} c 'bool' -// CHECK: | |-FieldDecl {{.*}} d 'bool' -// CHECK: | |-FieldDecl {{.*}} e 'short' -// CHECK: | |-FieldDecl {{.*}} f 'unsigned short' -// CHECK: | |-FieldDecl {{.*}} g 'unsigned int' -// CHECK: | |-FieldDecl {{.*}} h 'int' -// CHECK: | |-FieldDecl {{.*}} i 'unsigned long' -// CHECK: | |-FieldDecl {{.*}} j 'long' -// CHECK: | |-FieldDecl {{.*}} k 'float' -// CHECK: | |-FieldDecl {{.*}} l 'EnumType' -// CHECK: | |-FieldDecl {{.*}} m 'double' -// CHECK: | |-FieldDecl {{.*}} n 'unsigned long long' -// CHECK: | |-FieldDecl {{.*}} o 'long long' -// CHECK: | `-FieldDecl {{.*}} p 'int [5]' -// CHECK: |-VarDecl {{.*}} ClassNoPaddingInstance 'const ClassNoPadding' -// CHECK: |-EnumDecl {{.*}} EnumType -// CHECK: | |-EnumConstantDecl {{.*}} A 'EnumType' -// CHECK: | `-EnumConstantDecl {{.*}} B 'EnumType' -// CHECK: |-CXXRecordDecl {{.*}} struct DerivedClass definition -// CHECK: | |-public 'BaseClass<int>' -// CHECK: | `-FieldDecl {{.*}} DerivedMember 'int' -// CHECK: |-VarDecl {{.*}} DC 'const DerivedClass' -// CHECK: |-CXXRecordDecl {{.*}} struct BaseClass<int> definition -// CHECK: | `-FieldDecl {{.*}} BaseMember 'int' -// CHECK: |-CXXRecordDecl {{.*}} struct EBO definition -// CHECK: | |-public 'EmptyBase' -// CHECK: | `-FieldDecl {{.*}} Member 'int' -// CHECK: |-VarDecl {{.*}} EBOC 'const EBO' -// CHECK: |-CXXRecordDecl {{.*}} struct EmptyBase definition -// CHECK: |-CXXRecordDecl {{.*}} struct PaddedBases definition -// CHECK: | |-public 'BaseClass<char>' -// CHECK: | |-public 'BaseClass<short>' -// CHECK: | |-public 'BaseClass<int>' -// CHECK: | `-FieldDecl {{.*}} DerivedMember 'long long' -// CHECK: |-VarDecl {{.*}} PBC 'const PaddedBases' -// CHECK: |-CXXRecordDecl {{.*}} struct BaseClass<char> definition -// CHECK: | `-FieldDecl {{.*}} BaseMember 'int' -// CHECK: |-CXXRecordDecl {{.*}} struct BaseClass<short> definition -// CHECK: | `-FieldDecl {{.*}} BaseMember 'int' -// CHECK: |-CXXRecordDecl {{.*}} struct <unnamed-type-UnnamedClassInstance> definition -// CHECK: | |-FieldDecl {{.*}} x 'int' -// CHECK: | `-FieldDecl {{.*}} EBOC 'EBO' -// CHECK: |-VarDecl {{.*}} UnnamedClassInstance 'const <unnamed-type-UnnamedClassInstance>' -// CHECK: |-CXXRecordDecl {{.*}} struct Pointers definition -// CHECK: | |-FieldDecl {{.*}} a 'void *' -// CHECK: | |-FieldDecl {{.*}} b 'char *' -// CHECK: | |-FieldDecl {{.*}} c 'bool *' -// CHECK: | |-FieldDecl {{.*}} e 'short *' -// CHECK: | |-FieldDecl {{.*}} f 'unsigned short *' -// CHECK: | |-FieldDecl {{.*}} g 'unsigned int *' -// CHECK: | |-FieldDecl {{.*}} h 'int *' -// CHECK: | |-FieldDecl {{.*}} i 'unsigned long *' -// CHECK: | |-FieldDecl {{.*}} j 'long *' -// CHECK: | |-FieldDecl {{.*}} k 'float *' -// CHECK: | |-FieldDecl {{.*}} l 'EnumType *' -// CHECK: | |-FieldDecl {{.*}} m 'double *' -// CHECK: | |-FieldDecl {{.*}} n 'unsigned long long *' -// CHECK: | `-FieldDecl {{.*}} o 'long long *' -// CHECK: |-VarDecl {{.*}} PointersInstance 'const Pointers' -// CHECK: |-CXXRecordDecl {{.*}} struct References definition -// CHECK: | |-FieldDecl {{.*}} a 'char &' -// CHECK: | |-FieldDecl {{.*}} b 'bool &' -// CHECK: | |-FieldDecl {{.*}} c 'short &' -// CHECK: | |-FieldDecl {{.*}} d 'unsigned short &' -// CHECK: | |-FieldDecl {{.*}} e 'unsigned int &' -// CHECK: | |-FieldDecl {{.*}} f 'int &' -// CHECK: | |-FieldDecl {{.*}} g 'unsigned long &' -// CHECK: | |-FieldDecl {{.*}} h 'long &' -// CHECK: | |-FieldDecl {{.*}} i 'float &' -// CHECK: | |-FieldDecl {{.*}} j 'EnumType &' -// CHECK: | |-FieldDecl {{.*}} k 'double &' -// CHECK: | |-FieldDecl {{.*}} l 'unsigned long long &' -// CHECK: | `-FieldDecl {{.*}} m 'long long &' -// CHECK: |-VarDecl {{.*}} ReferencesInstance 'const References' -// CHECK: `-<undeserialized declarations> - -int main(int argc, char **argv) { - return 0; -} diff --git a/lit/SymbolFile/NativePDB/globals-bss.cpp b/lit/SymbolFile/NativePDB/globals-bss.cpp deleted file mode 100644 index c10c3c196286..000000000000 --- a/lit/SymbolFile/NativePDB/globals-bss.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Make sure we can read variables from BSS -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: llvm-readobj -s %t.exe | FileCheck --check-prefix=BSS %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/globals-bss.lldbinit 2>&1 | FileCheck %s - -int GlobalVariable = 0; - -int main(int argc, char **argv) { - return 0; -} - -// BSS: Section { -// BSS: Number: 3 -// BSS: Name: .data -// BSS-NEXT: VirtualSize: 0x4 -// BSS-NEXT: VirtualAddress: -// BSS-NEXT: RawDataSize: 0 -// BSS-NEXT: PointerToRawData: 0x0 -// BSS-NEXT: PointerToRelocations: 0x0 -// BSS-NEXT: PointerToLineNumbers: 0x0 -// BSS-NEXT: RelocationCount: 0 -// BSS-NEXT: LineNumberCount: 0 -// BSS-NEXT: Characteristics [ (0xC0000040) -// BSS-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40) -// BSS-NEXT: IMAGE_SCN_MEM_READ (0x40000000) -// BSS-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000) -// BSS-NEXT: ] -// BSS-NEXT: } - -// CHECK: (int) GlobalVariable = 0 diff --git a/lit/SymbolFile/NativePDB/globals-fundamental.cpp b/lit/SymbolFile/NativePDB/globals-fundamental.cpp deleted file mode 100644 index 8891eddf6689..000000000000 --- a/lit/SymbolFile/NativePDB/globals-fundamental.cpp +++ /dev/null @@ -1,880 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can display tag types. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/globals-fundamental.lldbinit | FileCheck %s - - -// Fundamental data types -bool BFalse = false; -// CHECK: (lldb) target variable BFalse -// CHECK-NEXT: (bool) BFalse = false -bool BTrue = true; -// CHECK-NEXT: (lldb) target variable BTrue -// CHECK-NEXT: (bool) BTrue = true -char CA = 'A'; -// CHECK-NEXT: (lldb) target variable CA -// CHECK-NEXT: (char) CA = 'A' -char CZ = 'Z'; -// CHECK-NEXT: (lldb) target variable CZ -// CHECK-NEXT: (char) CZ = 'Z' -signed char SCa = 'a'; -// CHECK-NEXT: (lldb) target variable SCa -// CHECK-NEXT: (signed char) SCa = 'a' -signed char SCz = 'z'; -// CHECK-NEXT: (lldb) target variable SCz -// CHECK-NEXT: (signed char) SCz = 'z' -unsigned char UC24 = 24; -// CHECK-NEXT: (lldb) target variable UC24 -// CHECK-NEXT: (unsigned char) UC24 = '\x18' -unsigned char UC42 = 42; -// CHECK-NEXT: (lldb) target variable UC42 -// CHECK-NEXT: (unsigned char) UC42 = '*' -char16_t C16_24 = u'\24'; -// CHECK-NEXT: (lldb) target variable C16_24 -// CHECK-NEXT: (char16_t) C16_24 = U+0014 -char32_t C32_42 = U'\42'; -// CHECK-NEXT: (lldb) target variable C32_42 -// CHECK-NEXT: (char32_t) C32_42 = U+0x00000022 -wchar_t WC1 = L'1'; -// CHECK-NEXT: (lldb) target variable WC1 -// CHECK-NEXT: (wchar_t) WC1 = L'1' -wchar_t WCP = L'P'; -// CHECK-NEXT: (lldb) target variable WCP -// CHECK-NEXT: (wchar_t) WCP = L'P' -short SMax = 32767; -// CHECK-NEXT: (lldb) target variable SMax -// CHECK-NEXT: (short) SMax = 32767 -short SMin = -32768; -// CHECK-NEXT: (lldb) target variable SMin -// CHECK-NEXT: (short) SMin = -32768 -unsigned short USMax = 65535; -// CHECK-NEXT: (lldb) target variable USMax -// CHECK-NEXT: (unsigned short) USMax = 65535 -unsigned short USMin = 0; -// CHECK-NEXT: (lldb) target variable USMin -// CHECK-NEXT: (unsigned short) USMin = 0 -int IMax = 2147483647; -// CHECK-NEXT: (lldb) target variable IMax -// CHECK-NEXT: (int) IMax = 2147483647 -int IMin = -2147483648; -// CHECK-NEXT: (lldb) target variable IMin -// CHECK-NEXT: (int) IMin = -2147483648 -unsigned int UIMax = 4294967295; -// CHECK-NEXT: (lldb) target variable UIMax -// CHECK-NEXT: (unsigned int) UIMax = 4294967295 -unsigned int UIMin = 0; -// CHECK-NEXT: (lldb) target variable UIMin -// CHECK-NEXT: (unsigned int) UIMin = 0 -long LMax = 2147483647; -// CHECK-NEXT: (lldb) target variable LMax -// CHECK-NEXT: (long) LMax = 2147483647 -long LMin = -2147483648; -// CHECK-NEXT: (lldb) target variable LMin -// CHECK-NEXT: (long) LMin = -2147483648 -unsigned long ULMax = 4294967295; -// CHECK-NEXT: (lldb) target variable ULMax -// CHECK-NEXT: (unsigned long) ULMax = 4294967295 -unsigned long ULMin = 0; -// CHECK-NEXT: (lldb) target variable ULMin -// CHECK-NEXT: (unsigned long) ULMin = 0 -long long LLMax = 9223372036854775807LL; -// CHECK-NEXT: (lldb) target variable LLMax -// CHECK-NEXT: (long long) LLMax = 9223372036854775807 -long long LLMin = -9223372036854775807i64 - 1; -// CHECK-NEXT: (lldb) target variable LLMin -// CHECK-NEXT: (long long) LLMin = -9223372036854775808 -unsigned long long ULLMax = 18446744073709551615ULL; -// CHECK-NEXT: (lldb) target variable ULLMax -// CHECK-NEXT: (unsigned long long) ULLMax = 18446744073709551615 -unsigned long long ULLMin = 0; -// CHECK-NEXT: (lldb) target variable ULLMin -// CHECK-NEXT: (unsigned long long) ULLMin = 0 -float F = 3.1415f; -// CHECK-NEXT: (lldb) target variable F -// CHECK-NEXT: (float) F = 3.1415 -double D = 3.1415; -// CHECK-NEXT: (lldb) target variable D -// CHECK-NEXT: (double) D = 3.1415 - -const bool CBFalse = false; -// CHECK-NEXT: (lldb) target variable CBFalse -// CHECK-NEXT: (const bool) CBFalse = false -const bool CBTrue = true; -// CHECK-NEXT: (lldb) target variable CBTrue -// CHECK-NEXT: (const bool) CBTrue = true -const char CCA = 'A'; -// CHECK-NEXT: (lldb) target variable CCA -// CHECK-NEXT: (const char) CCA = 'A' -const char CCZ = 'Z'; -// CHECK-NEXT: (lldb) target variable CCZ -// CHECK-NEXT: (const char) CCZ = 'Z' -const signed char CSCa = 'a'; -// CHECK-NEXT: (lldb) target variable CSCa -// CHECK-NEXT: (const signed char) CSCa = 'a' -const signed char CSCz = 'z'; -// CHECK-NEXT: (lldb) target variable CSCz -// CHECK-NEXT: (const signed char) CSCz = 'z' -const unsigned char CUC24 = 24; -// CHECK-NEXT: (lldb) target variable CUC24 -// CHECK-NEXT: (const unsigned char) CUC24 = '\x18' -const unsigned char CUC42 = 42; -// CHECK-NEXT: (lldb) target variable CUC42 -// CHECK-NEXT: (const unsigned char) CUC42 = '*' -const char16_t CC16_24 = u'\24'; -// CHECK-NEXT: (lldb) target variable CC16_24 -// CHECK-NEXT: (const char16_t) CC16_24 = U+0014 -const char32_t CC32_42 = U'\42'; -// CHECK-NEXT: (lldb) target variable CC32_42 -// CHECK-NEXT: (const char32_t) CC32_42 = U+0x00000022 -const wchar_t CWC1 = L'1'; -// CHECK-NEXT: (lldb) target variable CWC1 -// CHECK-NEXT: (const wchar_t) CWC1 = L'1' -const wchar_t CWCP = L'P'; -// CHECK-NEXT: (lldb) target variable CWCP -// CHECK-NEXT: (const wchar_t) CWCP = L'P' -const short CSMax = 32767; -// CHECK-NEXT: (lldb) target variable CSMax -// CHECK-NEXT: (const short) CSMax = 32767 -const short CSMin = -32768; -// CHECK-NEXT: (lldb) target variable CSMin -// CHECK-NEXT: (const short) CSMin = -32768 -const unsigned short CUSMax = 65535; -// CHECK-NEXT: (lldb) target variable CUSMax -// CHECK-NEXT: (const unsigned short) CUSMax = 65535 -const unsigned short CUSMin = 0; -// CHECK-NEXT: (lldb) target variable CUSMin -// CHECK-NEXT: (const unsigned short) CUSMin = 0 -const int CIMax = 2147483647; -// CHECK-NEXT: (lldb) target variable CIMax -// CHECK-NEXT: (const int) CIMax = 2147483647 -const int CIMin = -2147483648; -// CHECK-NEXT: (lldb) target variable CIMin -// CHECK-NEXT: (const int) CIMin = -2147483648 -const unsigned int CUIMax = 4294967295; -// CHECK-NEXT: (lldb) target variable CUIMax -// CHECK-NEXT: (const unsigned int) CUIMax = 4294967295 -const unsigned int CUIMin = 0; -// CHECK-NEXT: (lldb) target variable CUIMin -// CHECK-NEXT: (const unsigned int) CUIMin = 0 -const long CLMax = 2147483647; -// CHECK-NEXT: (lldb) target variable CLMax -// CHECK-NEXT: (const long) CLMax = 2147483647 -const long CLMin = -2147483648; -// CHECK-NEXT: (lldb) target variable CLMin -// CHECK-NEXT: (const long) CLMin = -2147483648 -const unsigned long CULMax = 4294967295; -// CHECK-NEXT: (lldb) target variable CULMax -// CHECK-NEXT: (const unsigned long) CULMax = 4294967295 -const unsigned long CULMin = 0; -// CHECK-NEXT: (lldb) target variable CULMin -// CHECK-NEXT: (const unsigned long) CULMin = 0 -const long long CLLMax = 9223372036854775807i64; -// CHECK-NEXT: (lldb) target variable CLLMax -// CHECK-NEXT: (const long long) CLLMax = 9223372036854775807 -const long long CLLMin = -9223372036854775807i64 - 1; -// CHECK-NEXT: (lldb) target variable CLLMin -// CHECK-NEXT: (const long long) CLLMin = -9223372036854775808 -const unsigned long long CULLMax = 18446744073709551615ULL; -// CHECK-NEXT: (lldb) target variable CULLMax -// CHECK-NEXT: (const unsigned long long) CULLMax = 18446744073709551615 -const unsigned long long CULLMin = 0; -// CHECK-NEXT: (lldb) target variable CULLMin -// CHECK-NEXT: (const unsigned long long) CULLMin = 0 -const float CF = 3.1415f; -// CHECK-NEXT: (lldb) target variable CF -// CHECK-NEXT: (const float) CF = 3.1415 -const double CD = 3.1415; -// CHECK-NEXT: (lldb) target variable CD -// CHECK-NEXT: (const double) CD = 3.1415 - -// constexpr fundamental data types. -constexpr bool ConstexprBFalse = false; -// CHECK-NEXT: (lldb) target variable ConstexprBFalse -// CHECK-NEXT: (const bool) ConstexprBFalse = false -constexpr bool ConstexprBTrue = true; -// CHECK-NEXT: (lldb) target variable ConstexprBTrue -// CHECK-NEXT: (const bool) ConstexprBTrue = true -constexpr char ConstexprCA = 'A'; -// CHECK-NEXT: (lldb) target variable ConstexprCA -// CHECK-NEXT: (const char) ConstexprCA = 'A' -constexpr char ConstexprCZ = 'Z'; -// CHECK-NEXT: (lldb) target variable ConstexprCZ -// CHECK-NEXT: (const char) ConstexprCZ = 'Z' -constexpr signed char ConstexprSCa = 'a'; -// CHECK-NEXT: (lldb) target variable ConstexprSCa -// CHECK-NEXT: (const signed char) ConstexprSCa = 'a' -constexpr signed char ConstexprSCz = 'z'; -// CHECK-NEXT: (lldb) target variable ConstexprSCz -// CHECK-NEXT: (const signed char) ConstexprSCz = 'z' -constexpr unsigned char ConstexprUC24 = 24; -// CHECK-NEXT: (lldb) target variable ConstexprUC24 -// CHECK-NEXT: (const unsigned char) ConstexprUC24 = '\x18' -constexpr unsigned char ConstexprUC42 = 42; -// CHECK-NEXT: (lldb) target variable ConstexprUC42 -// CHECK-NEXT: (const unsigned char) ConstexprUC42 = '*' -constexpr char16_t ConstexprC16_24 = u'\24'; -// CHECK-NEXT: (lldb) target variable ConstexprC16_24 -// CHECK-NEXT: (const char16_t) ConstexprC16_24 = U+0014 -constexpr char32_t ConstexprC32_42 = U'\42'; -// CHECK-NEXT: (lldb) target variable ConstexprC32_42 -// CHECK-NEXT: (const char32_t) ConstexprC32_42 = U+0x00000022 -constexpr wchar_t ConstexprWC1 = L'1'; -// CHECK-NEXT: (lldb) target variable ConstexprWC1 -// CHECK-NEXT: (const wchar_t) ConstexprWC1 = L'1' -constexpr wchar_t ConstexprWCP = L'P'; -// CHECK-NEXT: (lldb) target variable ConstexprWCP -// CHECK-NEXT: (const wchar_t) ConstexprWCP = L'P' -constexpr short ConstexprSMax = 32767; -// CHECK-NEXT: (lldb) target variable ConstexprSMax -// CHECK-NEXT: (const short) ConstexprSMax = 32767 -constexpr short ConstexprSMin = -32768; -// CHECK-NEXT: (lldb) target variable ConstexprSMin -// CHECK-NEXT: (const short) ConstexprSMin = -32768 -constexpr unsigned short ConstexprUSMax = 65535; -// CHECK-NEXT: (lldb) target variable ConstexprUSMax -// CHECK-NEXT: (const unsigned short) ConstexprUSMax = 65535 -constexpr unsigned short ConstexprUSMin = 0; -// CHECK-NEXT: (lldb) target variable ConstexprUSMin -// CHECK-NEXT: (const unsigned short) ConstexprUSMin = 0 -constexpr int ConstexprIMax = 2147483647; -// CHECK-NEXT: (lldb) target variable ConstexprIMax -// CHECK-NEXT: (const int) ConstexprIMax = 2147483647 -constexpr int ConstexprIMin = -2147483648; -// CHECK-NEXT: (lldb) target variable ConstexprIMin -// CHECK-NEXT: (const int) ConstexprIMin = -2147483648 -constexpr unsigned int ConstexprUIMax = 4294967295; -// CHECK-NEXT: (lldb) target variable ConstexprUIMax -// CHECK-NEXT: (const unsigned int) ConstexprUIMax = 4294967295 -constexpr unsigned int ConstexprUIMin = 0; -// CHECK-NEXT: (lldb) target variable ConstexprUIMin -// CHECK-NEXT: (const unsigned int) ConstexprUIMin = 0 -constexpr long ConstexprLMax = 2147483647; -// CHECK-NEXT: (lldb) target variable ConstexprLMax -// CHECK-NEXT: (const long) ConstexprLMax = 2147483647 -constexpr long ConstexprLMin = -2147483648; -// CHECK-NEXT: (lldb) target variable ConstexprLMin -// CHECK-NEXT: (const long) ConstexprLMin = -2147483648 -constexpr unsigned long ConstexprULMax = 4294967295; -// CHECK-NEXT: (lldb) target variable ConstexprULMax -// CHECK-NEXT: (const unsigned long) ConstexprULMax = 4294967295 -constexpr unsigned long ConstexprULMin = 0; -// CHECK-NEXT: (lldb) target variable ConstexprULMin -// CHECK-NEXT: (const unsigned long) ConstexprULMin = 0 -constexpr long long ConstexprLLMax = 9223372036854775807i64; -// CHECK-NEXT: (lldb) target variable ConstexprLLMax -// CHECK-NEXT: (const long long) ConstexprLLMax = 9223372036854775807 -constexpr long long ConstexprLLMin = -9223372036854775807i64 - 1; -// CHECK-NEXT: (lldb) target variable ConstexprLLMin -// CHECK-NEXT: (const long long) ConstexprLLMin = -9223372036854775808 -constexpr unsigned long long ConstexprULLMax = 18446744073709551615ULL; -// CHECK-NEXT: (lldb) target variable ConstexprULLMax -// CHECK-NEXT: (const unsigned long long) ConstexprULLMax = 18446744073709551615 -constexpr unsigned long long ConstexprULLMin = 0; -// CHECK-NEXT: (lldb) target variable ConstexprULLMin -// CHECK-NEXT: (const unsigned long long) ConstexprULLMin = 0 -constexpr float ConstexprF = 3.1415f; -// CHECK-NEXT: (lldb) target variable ConstexprF -// CHECK-NEXT: (const float) ConstexprF = 3.1415 -constexpr double ConstexprD = 3.1415; -// CHECK-NEXT: (lldb) target variable ConstexprD -// CHECK-NEXT: (const double) ConstexprD = 3.1415 - - -// FIXME: LLDB currently doesn't resolve pointers within the target without a -// running process (I haven't checked whether or not it can with a running -// process). So currently it will just print an address, which is unstable and -// should not be relied upon for testing. So for now we're just checking that -// the variable name and type is correct. We should fix this in LLDB and then -// update the tests. -bool *PBFalse = &BFalse; -// CHECK-NEXT: (lldb) target variable PBFalse -// CHECK-NEXT: (bool *) PBFalse = {{.*}} -bool *PBTrue = &BTrue; -// CHECK-NEXT: (lldb) target variable PBTrue -// CHECK-NEXT: (bool *) PBTrue = {{.*}} -char *PCA = &CA; -// CHECK-NEXT: (lldb) target variable PCA -// CHECK-NEXT: (char *) PCA = {{.*}} -char *PCZ = &CZ; -// CHECK-NEXT: (lldb) target variable PCZ -// CHECK-NEXT: (char *) PCZ = {{.*}} -signed char *PSCa = &SCa; -// CHECK-NEXT: (lldb) target variable PSCa -// CHECK-NEXT: (signed char *) PSCa = {{.*}} -signed char *PSCz = &SCz; -// CHECK-NEXT: (lldb) target variable PSCz -// CHECK-NEXT: (signed char *) PSCz = {{.*}} -unsigned char *PUC24 = &UC24; -// CHECK-NEXT: (lldb) target variable PUC24 -// CHECK-NEXT: (unsigned char *) PUC24 = {{.*}} -unsigned char *PUC42 = &UC42; -// CHECK-NEXT: (lldb) target variable PUC42 -// CHECK-NEXT: (unsigned char *) PUC42 = {{.*}} -char16_t *PC16_24 = &C16_24; -// CHECK-NEXT: (lldb) target variable PC16_24 -// CHECK-NEXT: (char16_t *) PC16_24 = {{.*}} -char32_t *PC32_42 = &C32_42; -// CHECK-NEXT: (lldb) target variable PC32_42 -// CHECK-NEXT: (char32_t *) PC32_42 = {{.*}} -wchar_t *PWC1 = &WC1; -// CHECK-NEXT: (lldb) target variable PWC1 -// CHECK-NEXT: (wchar_t *) PWC1 = {{.*}} -wchar_t *PWCP = &WCP; -// CHECK-NEXT: (lldb) target variable PWCP -// CHECK-NEXT: (wchar_t *) PWCP = {{.*}} -short *PSMax = &SMax; -// CHECK-NEXT: (lldb) target variable PSMax -// CHECK-NEXT: (short *) PSMax = {{.*}} -short *PSMin = &SMin; -// CHECK-NEXT: (lldb) target variable PSMin -// CHECK-NEXT: (short *) PSMin = {{.*}} -unsigned short *PUSMax = &USMax; -// CHECK-NEXT: (lldb) target variable PUSMax -// CHECK-NEXT: (unsigned short *) PUSMax = {{.*}} -unsigned short *PUSMin = &USMin; -// CHECK-NEXT: (lldb) target variable PUSMin -// CHECK-NEXT: (unsigned short *) PUSMin = {{.*}} -int *PIMax = &IMax; -// CHECK-NEXT: (lldb) target variable PIMax -// CHECK-NEXT: (int *) PIMax = {{.*}} -int *PIMin = &IMin; -// CHECK-NEXT: (lldb) target variable PIMin -// CHECK-NEXT: (int *) PIMin = {{.*}} -unsigned int *PUIMax = &UIMax; -// CHECK-NEXT: (lldb) target variable PUIMax -// CHECK-NEXT: (unsigned int *) PUIMax = {{.*}} -unsigned int *PUIMin = &UIMin; -// CHECK-NEXT: (lldb) target variable PUIMin -// CHECK-NEXT: (unsigned int *) PUIMin = {{.*}} -long *PLMax = &LMax; -// CHECK-NEXT: (lldb) target variable PLMax -// CHECK-NEXT: (long *) PLMax = {{.*}} -long *PLMin = &LMin; -// CHECK-NEXT: (lldb) target variable PLMin -// CHECK-NEXT: (long *) PLMin = {{.*}} -unsigned long *PULMax = &ULMax; -// CHECK-NEXT: (lldb) target variable PULMax -// CHECK-NEXT: (unsigned long *) PULMax = {{.*}} -unsigned long *PULMin = &ULMin; -// CHECK-NEXT: (lldb) target variable PULMin -// CHECK-NEXT: (unsigned long *) PULMin = {{.*}} -long long *PLLMax = &LLMax; -// CHECK-NEXT: (lldb) target variable PLLMax -// CHECK-NEXT: (long long *) PLLMax = {{.*}} -long long *PLLMin = &LLMin; -// CHECK-NEXT: (lldb) target variable PLLMin -// CHECK-NEXT: (long long *) PLLMin = {{.*}} -unsigned long long *PULLMax = &ULLMax; -// CHECK-NEXT: (lldb) target variable PULLMax -// CHECK-NEXT: (unsigned long long *) PULLMax = {{.*}} -unsigned long long *PULLMin = &ULLMin; -// CHECK-NEXT: (lldb) target variable PULLMin -// CHECK-NEXT: (unsigned long long *) PULLMin = {{.*}} -float *PF = &F; -// CHECK-NEXT: (lldb) target variable PF -// CHECK-NEXT: (float *) PF = {{.*}} -double *PD = &D; -// CHECK-NEXT: (lldb) target variable PD -// CHECK-NEXT: (double *) PD = {{.*}} - -// Const pointers to fundamental data types -const bool *CPBFalse = &BFalse; -// CHECK-NEXT: (lldb) target variable CPBFalse -// CHECK-NEXT: (const bool *) CPBFalse = {{.*}} -const bool *CPBTrue = &BTrue; -// CHECK-NEXT: (lldb) target variable CPBTrue -// CHECK-NEXT: (const bool *) CPBTrue = {{.*}} -const char *CPCA = &CA; -// CHECK-NEXT: (lldb) target variable CPCA -// CHECK-NEXT: (const char *) CPCA = {{.*}} -const char *CPCZ = &CZ; -// CHECK-NEXT: (lldb) target variable CPCZ -// CHECK-NEXT: (const char *) CPCZ = {{.*}} -const signed char *CPSCa = &SCa; -// CHECK-NEXT: (lldb) target variable CPSCa -// CHECK-NEXT: (const signed char *) CPSCa = {{.*}} -const signed char *CPSCz = &SCz; -// CHECK-NEXT: (lldb) target variable CPSCz -// CHECK-NEXT: (const signed char *) CPSCz = {{.*}} -const unsigned char *CPUC24 = &UC24; -// CHECK-NEXT: (lldb) target variable CPUC24 -// CHECK-NEXT: (const unsigned char *) CPUC24 = {{.*}} -const unsigned char *CPUC42 = &UC42; -// CHECK-NEXT: (lldb) target variable CPUC42 -// CHECK-NEXT: (const unsigned char *) CPUC42 = {{.*}} -const char16_t *CPC16_24 = &C16_24; -// CHECK-NEXT: (lldb) target variable CPC16_24 -// CHECK-NEXT: (const char16_t *) CPC16_24 = {{.*}} -const char32_t *CPC32_42 = &C32_42; -// CHECK-NEXT: (lldb) target variable CPC32_42 -// CHECK-NEXT: (const char32_t *) CPC32_42 = {{.*}} -const wchar_t *CPWC1 = &WC1; -// CHECK-NEXT: (lldb) target variable CPWC1 -// CHECK-NEXT: (const wchar_t *) CPWC1 = {{.*}} -const wchar_t *CPWCP = &WCP; -// CHECK-NEXT: (lldb) target variable CPWCP -// CHECK-NEXT: (const wchar_t *) CPWCP = {{.*}} -const short *CPSMax = &SMax; -// CHECK-NEXT: (lldb) target variable CPSMax -// CHECK-NEXT: (const short *) CPSMax = {{.*}} -const short *CPSMin = &SMin; -// CHECK-NEXT: (lldb) target variable CPSMin -// CHECK-NEXT: (const short *) CPSMin = {{.*}} -const unsigned short *CPUSMax = &USMax; -// CHECK-NEXT: (lldb) target variable CPUSMax -// CHECK-NEXT: (const unsigned short *) CPUSMax = {{.*}} -const unsigned short *CPUSMin = &USMin; -// CHECK-NEXT: (lldb) target variable CPUSMin -// CHECK-NEXT: (const unsigned short *) CPUSMin = {{.*}} -const int *CPIMax = &IMax; -// CHECK-NEXT: (lldb) target variable CPIMax -// CHECK-NEXT: (const int *) CPIMax = {{.*}} -const int *CPIMin = &IMin; -// CHECK-NEXT: (lldb) target variable CPIMin -// CHECK-NEXT: (const int *) CPIMin = {{.*}} -const unsigned int *CPUIMax = &UIMax; -// CHECK-NEXT: (lldb) target variable CPUIMax -// CHECK-NEXT: (const unsigned int *) CPUIMax = {{.*}} -const unsigned int *CPUIMin = &UIMin; -// CHECK-NEXT: (lldb) target variable CPUIMin -// CHECK-NEXT: (const unsigned int *) CPUIMin = {{.*}} -const long *CPLMax = &LMax; -// CHECK-NEXT: (lldb) target variable CPLMax -// CHECK-NEXT: (const long *) CPLMax = {{.*}} -const long *CPLMin = &LMin; -// CHECK-NEXT: (lldb) target variable CPLMin -// CHECK-NEXT: (const long *) CPLMin = {{.*}} -const unsigned long *CPULMax = &ULMax; -// CHECK-NEXT: (lldb) target variable CPULMax -// CHECK-NEXT: (const unsigned long *) CPULMax = {{.*}} -const unsigned long *CPULMin = &ULMin; -// CHECK-NEXT: (lldb) target variable CPULMin -// CHECK-NEXT: (const unsigned long *) CPULMin = {{.*}} -const long long *CPLLMax = &LLMax; -// CHECK-NEXT: (lldb) target variable CPLLMax -// CHECK-NEXT: (const long long *) CPLLMax = {{.*}} -const long long *CPLLMin = &LLMin; -// CHECK-NEXT: (lldb) target variable CPLLMin -// CHECK-NEXT: (const long long *) CPLLMin = {{.*}} -const unsigned long long *CPULLMax = &ULLMax; -// CHECK-NEXT: (lldb) target variable CPULLMax -// CHECK-NEXT: (const unsigned long long *) CPULLMax = {{.*}} -const unsigned long long *CPULLMin = &ULLMin; -// CHECK-NEXT: (lldb) target variable CPULLMin -// CHECK-NEXT: (const unsigned long long *) CPULLMin = {{.*}} -const float *CPF = &F; -// CHECK-NEXT: (lldb) target variable CPF -// CHECK-NEXT: (const float *) CPF = {{.*}} -const double *CPD = &D; -// CHECK-NEXT: (lldb) target variable CPD -// CHECK-NEXT: (const double *) CPD = {{.*}} - - -// References to fundamental data types - -bool &RBFalse = BFalse; -// CHECK-NEXT: (lldb) target variable RBFalse -// CHECK-NEXT: (bool &) RBFalse = {{.*}} (&::RBFalse = false) -bool &RBTrue = BTrue; -// CHECK-NEXT: (lldb) target variable RBTrue -// CHECK-NEXT: (bool &) RBTrue = {{.*}} (&::RBTrue = true) -char &RCA = CA; -// CHECK-NEXT: (lldb) target variable RCA -// CHECK-NEXT: (char &) RCA = {{.*}} (&::RCA = 'A') -char &RCZ = CZ; -// CHECK-NEXT: (lldb) target variable RCZ -// CHECK-NEXT: (char &) RCZ = {{.*}} (&::RCZ = 'Z') -signed char &RSCa = SCa; -// CHECK-NEXT: (lldb) target variable RSCa -// CHECK-NEXT: (signed char &) RSCa = {{.*}} (&::RSCa = 'a') -signed char &RSCz = SCz; -// CHECK-NEXT: (lldb) target variable RSCz -// CHECK-NEXT: (signed char &) RSCz = {{.*}} (&::RSCz = 'z') -unsigned char &RUC24 = UC24; -// CHECK-NEXT: (lldb) target variable RUC24 -// CHECK-NEXT: (unsigned char &) RUC24 = {{.*}} (&::RUC24 = '\x18') -unsigned char &RUC42 = UC42; -// CHECK-NEXT: (lldb) target variable RUC42 -// CHECK-NEXT: (unsigned char &) RUC42 = {{.*}} (&::RUC42 = '*') -short &RSMax = SMax; -// CHECK-NEXT: (lldb) target variable RSMax -// CHECK-NEXT: (short &) RSMax = {{.*}} (&::RSMax = 32767) -short &RSMin = SMin; -// CHECK-NEXT: (lldb) target variable RSMin -// CHECK-NEXT: (short &) RSMin = {{.*}} (&::RSMin = -32768) -unsigned short &RUSMax = USMax; -// CHECK-NEXT: (lldb) target variable RUSMax -// CHECK-NEXT: (unsigned short &) RUSMax = {{.*}} (&::RUSMax = 65535) -unsigned short &RUSMin = USMin; -// CHECK-NEXT: (lldb) target variable RUSMin -// CHECK-NEXT: (unsigned short &) RUSMin = {{.*}} (&::RUSMin = 0) -int &RIMax = IMax; -// CHECK-NEXT: (lldb) target variable RIMax -// CHECK-NEXT: (int &) RIMax = {{.*}} (&::RIMax = 2147483647) -int &RIMin = IMin; -// CHECK-NEXT: (lldb) target variable RIMin -// CHECK-NEXT: (int &) RIMin = {{.*}} (&::RIMin = -2147483648) -unsigned int &RUIMax = UIMax; -// CHECK-NEXT: (lldb) target variable RUIMax -// CHECK-NEXT: (unsigned int &) RUIMax = {{.*}} (&::RUIMax = 4294967295) -unsigned int &RUIMin = UIMin; -// CHECK-NEXT: (lldb) target variable RUIMin -// CHECK-NEXT: (unsigned int &) RUIMin = {{.*}} (&::RUIMin = 0) -long &RLMax = LMax; -// CHECK-NEXT: (lldb) target variable RLMax -// CHECK-NEXT: (long &) RLMax = {{.*}} (&::RLMax = 2147483647) -long &RLMin = LMin; -// CHECK-NEXT: (lldb) target variable RLMin -// CHECK-NEXT: (long &) RLMin = {{.*}} (&::RLMin = -2147483648) -unsigned long &RULMax = ULMax; -// CHECK-NEXT: (lldb) target variable RULMax -// CHECK-NEXT: (unsigned long &) RULMax = {{.*}} (&::RULMax = 4294967295) -unsigned long &RULMin = ULMin; -// CHECK-NEXT: (lldb) target variable RULMin -// CHECK-NEXT: (unsigned long &) RULMin = {{.*}} (&::RULMin = 0) -long long &RLLMax = LLMax; -// CHECK-NEXT: (lldb) target variable RLLMax -// CHECK-NEXT: (long long &) RLLMax = {{.*}} (&::RLLMax = 9223372036854775807) -long long &RLLMin = LLMin; -// CHECK-NEXT: (lldb) target variable RLLMin -// CHECK-NEXT: (long long &) RLLMin = {{.*}} (&::RLLMin = -9223372036854775808) -unsigned long long &RULLMax = ULLMax; -// CHECK-NEXT: (lldb) target variable RULLMax -// CHECK-NEXT: (unsigned long long &) RULLMax = {{.*}} (&::RULLMax = 18446744073709551615) -unsigned long long &RULLMin = ULLMin; -// CHECK-NEXT: (lldb) target variable RULLMin -// CHECK-NEXT: (unsigned long long &) RULLMin = {{.*}} (&::RULLMin = 0) -float &RF = F; -// CHECK-NEXT: (lldb) target variable RF -// CHECK-NEXT: (float &) RF = {{.*}} (&::RF = 3.1415) -double &RD = D; -// CHECK-NEXT: (lldb) target variable RD -// CHECK-NEXT: (double &) RD = {{.*}} (&::RD = 3.1415000000000002) - -// const references to fundamental data types -const bool &CRBFalse = BFalse; -// CHECK-NEXT: (lldb) target variable CRBFalse -// CHECK-NEXT: (const bool &) CRBFalse = {{.*}} (&::CRBFalse = false) -const bool &CRBTrue = BTrue; -// CHECK-NEXT: (lldb) target variable CRBTrue -// CHECK-NEXT: (const bool &) CRBTrue = {{.*}} (&::CRBTrue = true) -const char &CRCA = CA; -// CHECK-NEXT: (lldb) target variable CRCA -// CHECK-NEXT: (const char &) CRCA = {{.*}} (&::CRCA = 'A') -const char &CRCZ = CZ; -// CHECK-NEXT: (lldb) target variable CRCZ -// CHECK-NEXT: (const char &) CRCZ = {{.*}} (&::CRCZ = 'Z') -const signed char &CRSCa = SCa; -// CHECK-NEXT: (lldb) target variable CRSCa -// CHECK-NEXT: (const signed char &) CRSCa = {{.*}} (&::CRSCa = 'a') -const signed char &CRSCz = SCz; -// CHECK-NEXT: (lldb) target variable CRSCz -// CHECK-NEXT: (const signed char &) CRSCz = {{.*}} (&::CRSCz = 'z') -const unsigned char &CRUC24 = UC24; -// CHECK-NEXT: (lldb) target variable CRUC24 -// CHECK-NEXT: (const unsigned char &) CRUC24 = {{.*}} (&::CRUC24 = '\x18') -const unsigned char &CRUC42 = UC42; -// CHECK-NEXT: (lldb) target variable CRUC42 -// CHECK-NEXT: (const unsigned char &) CRUC42 = {{.*}} (&::CRUC42 = '*') -const short &CRSMax = SMax; -// CHECK-NEXT: (lldb) target variable CRSMax -// CHECK-NEXT: (const short &) CRSMax = {{.*}} (&::CRSMax = 32767) -const short &CRSMin = SMin; -// CHECK-NEXT: (lldb) target variable CRSMin -// CHECK-NEXT: (const short &) CRSMin = {{.*}} (&::CRSMin = -32768) -const unsigned short &CRUSMax = USMax; -// CHECK-NEXT: (lldb) target variable CRUSMax -// CHECK-NEXT: (const unsigned short &) CRUSMax = {{.*}} (&::CRUSMax = 65535) -const unsigned short &CRUSMin = USMin; -// CHECK-NEXT: (lldb) target variable CRUSMin -// CHECK-NEXT: (const unsigned short &) CRUSMin = {{.*}} (&::CRUSMin = 0) -const int &CRIMax = IMax; -// CHECK-NEXT: (lldb) target variable CRIMax -// CHECK-NEXT: (const int &) CRIMax = {{.*}} (&::CRIMax = 2147483647) -const int &CRIMin = IMin; -// CHECK-NEXT: (lldb) target variable CRIMin -// CHECK-NEXT: (const int &) CRIMin = {{.*}} (&::CRIMin = -2147483648) -const unsigned int &CRUIMax = UIMax; -// CHECK-NEXT: (lldb) target variable CRUIMax -// CHECK-NEXT: (const unsigned int &) CRUIMax = {{.*}} (&::CRUIMax = 4294967295) -const unsigned int &CRUIMin = UIMin; -// CHECK-NEXT: (lldb) target variable CRUIMin -// CHECK-NEXT: (const unsigned int &) CRUIMin = {{.*}} (&::CRUIMin = 0) -const long &CRLMax = LMax; -// CHECK-NEXT: (lldb) target variable CRLMax -// CHECK-NEXT: (const long &) CRLMax = {{.*}} (&::CRLMax = 2147483647) -const long &CRLMin = LMin; -// CHECK-NEXT: (lldb) target variable CRLMin -// CHECK-NEXT: (const long &) CRLMin = {{.*}} (&::CRLMin = -2147483648) -const unsigned long &CRULMax = ULMax; -// CHECK-NEXT: (lldb) target variable CRULMax -// CHECK-NEXT: (const unsigned long &) CRULMax = {{.*}} (&::CRULMax = 4294967295) -const unsigned long &CRULMin = ULMin; -// CHECK-NEXT: (lldb) target variable CRULMin -// CHECK-NEXT: (const unsigned long &) CRULMin = {{.*}} (&::CRULMin = 0) -const long long &CRLLMax = LLMax; -// CHECK-NEXT: (lldb) target variable CRLLMax -// CHECK-NEXT: (const long long &) CRLLMax = {{.*}} (&::CRLLMax = 9223372036854775807) -const long long &CRLLMin = LLMin; -// CHECK-NEXT: (lldb) target variable CRLLMin -// CHECK-NEXT: (const long long &) CRLLMin = {{.*}} (&::CRLLMin = -9223372036854775808) -const unsigned long long &CRULLMax = ULLMax; -// CHECK-NEXT: (lldb) target variable CRULLMax -// CHECK-NEXT: (const unsigned long long &) CRULLMax = {{.*}} (&::CRULLMax = 18446744073709551615) -const unsigned long long &CRULLMin = ULLMin; -// CHECK-NEXT: (lldb) target variable CRULLMin -// CHECK-NEXT: (const unsigned long long &) CRULLMin = {{.*}} (&::CRULLMin = 0) -const float &CRF = F; -// CHECK-NEXT: (lldb) target variable CRF -// CHECK-NEXT: (const float &) CRF = {{.*}} (&::CRF = 3.1415) -const double &CRD = D; -// CHECK-NEXT: (lldb) target variable CRD -// CHECK-NEXT: (const double &) CRD = {{.*}} (&::CRD = 3.1415000000000002) - -char16_t &RC16_24 = C16_24; -// CHECK: (lldb) target variable RC16_24 -// FIXME: (char16_t &) RC16_24 = {{.*}} (&::RC16_24 = U+0014) -char32_t &RC32_42 = C32_42; -// CHECK: (lldb) target variable RC32_42 -// FIXME: (char32_t &) RC32_42 = {{.*}} (&::RC32_42 = U+0x00000022) -wchar_t &RWC1 = WC1; -// CHECK: (lldb) target variable RWC1 -// FIXME: (wchar_t &) RWC1 = {{.*}} (&::RWC1 = L'1') -wchar_t &RWCP = WCP; -// CHECK: (lldb) target variable RWCP -// FIXME: (wchar_t &) RWCP = {{.*}} (&::RWCP = L'P') -const char16_t &CRC16_24 = C16_24; -// CHECK: (lldb) target variable CRC16_24 -// FIXME: (const char16_t &) CRC16_24 = {{.*}} (&::CRC16_24 = U+0014) -const char32_t &CRC32_42 = C32_42; -// CHECK: (lldb) target variable CRC32_42 -// FIXME: (const char32_t &) CRC32_42 = {{.*}} (&::CRC32_42 = U+0x00000022) -const wchar_t &CRWC1 = WC1; -// CHECK: (lldb) target variable CRWC1 -// FIXME: (const wchar_t &) CRWC1 = {{.*}} (&::CRWC1 = L'1') -const wchar_t &CRWCP = WCP; -// CHECK: (lldb) target variable CRWCP -// FIXME: (const wchar_t &) CRWCP = {{.*}} (&::CRWCP = L'P') - - -// CHECK: TranslationUnitDecl {{.*}} -// CHECK-NEXT: |-VarDecl {{.*}} BFalse 'bool' -// CHECK-NEXT: |-VarDecl {{.*}} BTrue 'bool' -// CHECK-NEXT: |-VarDecl {{.*}} CA 'char' -// CHECK-NEXT: |-VarDecl {{.*}} CZ 'char' -// CHECK-NEXT: |-VarDecl {{.*}} SCa 'signed char' -// CHECK-NEXT: |-VarDecl {{.*}} SCz 'signed char' -// CHECK-NEXT: |-VarDecl {{.*}} UC24 'unsigned char' -// CHECK-NEXT: |-VarDecl {{.*}} UC42 'unsigned char' -// CHECK-NEXT: |-VarDecl {{.*}} C16_24 'char16_t' -// CHECK-NEXT: |-VarDecl {{.*}} C32_42 'char32_t' -// CHECK-NEXT: |-VarDecl {{.*}} WC1 'wchar_t' -// CHECK-NEXT: |-VarDecl {{.*}} WCP 'wchar_t' -// CHECK-NEXT: |-VarDecl {{.*}} SMax 'short' -// CHECK-NEXT: |-VarDecl {{.*}} SMin 'short' -// CHECK-NEXT: |-VarDecl {{.*}} USMax 'unsigned short' -// CHECK-NEXT: |-VarDecl {{.*}} USMin 'unsigned short' -// CHECK-NEXT: |-VarDecl {{.*}} IMax 'int' -// CHECK-NEXT: |-VarDecl {{.*}} IMin 'int' -// CHECK-NEXT: |-VarDecl {{.*}} UIMax 'unsigned int' -// CHECK-NEXT: |-VarDecl {{.*}} UIMin 'unsigned int' -// CHECK-NEXT: |-VarDecl {{.*}} LMax 'long' -// CHECK-NEXT: |-VarDecl {{.*}} LMin 'long' -// CHECK-NEXT: |-VarDecl {{.*}} ULMax 'unsigned long' -// CHECK-NEXT: |-VarDecl {{.*}} ULMin 'unsigned long' -// CHECK-NEXT: |-VarDecl {{.*}} LLMax 'long long' -// CHECK-NEXT: |-VarDecl {{.*}} LLMin 'long long' -// CHECK-NEXT: |-VarDecl {{.*}} ULLMax 'unsigned long long' -// CHECK-NEXT: |-VarDecl {{.*}} ULLMin 'unsigned long long' -// CHECK-NEXT: |-VarDecl {{.*}} F 'float' -// CHECK-NEXT: |-VarDecl {{.*}} D 'double' -// CHECK-NEXT: |-VarDecl {{.*}} CBFalse 'const bool' -// CHECK-NEXT: |-VarDecl {{.*}} CBTrue 'const bool' -// CHECK-NEXT: |-VarDecl {{.*}} CCA 'const char' -// CHECK-NEXT: |-VarDecl {{.*}} CCZ 'const char' -// CHECK-NEXT: |-VarDecl {{.*}} CSCa 'const signed char' -// CHECK-NEXT: |-VarDecl {{.*}} CSCz 'const signed char' -// CHECK-NEXT: |-VarDecl {{.*}} CUC24 'const unsigned char' -// CHECK-NEXT: |-VarDecl {{.*}} CUC42 'const unsigned char' -// CHECK-NEXT: |-VarDecl {{.*}} CC16_24 'const char16_t' -// CHECK-NEXT: |-VarDecl {{.*}} CC32_42 'const char32_t' -// CHECK-NEXT: |-VarDecl {{.*}} CWC1 'const wchar_t' -// CHECK-NEXT: |-VarDecl {{.*}} CWCP 'const wchar_t' -// CHECK-NEXT: |-VarDecl {{.*}} CSMax 'const short' -// CHECK-NEXT: |-VarDecl {{.*}} CSMin 'const short' -// CHECK-NEXT: |-VarDecl {{.*}} CUSMax 'const unsigned short' -// CHECK-NEXT: |-VarDecl {{.*}} CUSMin 'const unsigned short' -// CHECK-NEXT: |-VarDecl {{.*}} CIMax 'const int' -// CHECK-NEXT: |-VarDecl {{.*}} CIMin 'const int' -// CHECK-NEXT: |-VarDecl {{.*}} CUIMax 'const unsigned int' -// CHECK-NEXT: |-VarDecl {{.*}} CUIMin 'const unsigned int' -// CHECK-NEXT: |-VarDecl {{.*}} CLMax 'const long' -// CHECK-NEXT: |-VarDecl {{.*}} CLMin 'const long' -// CHECK-NEXT: |-VarDecl {{.*}} CULMax 'const unsigned long' -// CHECK-NEXT: |-VarDecl {{.*}} CULMin 'const unsigned long' -// CHECK-NEXT: |-VarDecl {{.*}} CLLMax 'const long long' -// CHECK-NEXT: |-VarDecl {{.*}} CLLMin 'const long long' -// CHECK-NEXT: |-VarDecl {{.*}} CULLMax 'const unsigned long long' -// CHECK-NEXT: |-VarDecl {{.*}} CULLMin 'const unsigned long long' -// CHECK-NEXT: |-VarDecl {{.*}} CF 'const float' -// CHECK-NEXT: |-VarDecl {{.*}} CD 'const double' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprBFalse 'const bool' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprBTrue 'const bool' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprCA 'const char' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprCZ 'const char' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprSCa 'const signed char' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprSCz 'const signed char' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprUC24 'const unsigned char' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprUC42 'const unsigned char' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprC16_24 'const char16_t' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprC32_42 'const char32_t' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprWC1 'const wchar_t' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprWCP 'const wchar_t' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprSMax 'const short' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprSMin 'const short' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprUSMax 'const unsigned short' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprUSMin 'const unsigned short' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprIMax 'const int' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprIMin 'const int' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprUIMax 'const unsigned int' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprUIMin 'const unsigned int' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprLMax 'const long' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprLMin 'const long' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprULMax 'const unsigned long' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprULMin 'const unsigned long' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprLLMax 'const long long' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprLLMin 'const long long' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprULLMax 'const unsigned long long' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprULLMin 'const unsigned long long' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprF 'const float' -// CHECK-NEXT: |-VarDecl {{.*}} ConstexprD 'const double' -// CHECK-NEXT: |-VarDecl {{.*}} PBFalse 'bool *' -// CHECK-NEXT: |-VarDecl {{.*}} PBTrue 'bool *' -// CHECK-NEXT: |-VarDecl {{.*}} PCA 'char *' -// CHECK-NEXT: |-VarDecl {{.*}} PCZ 'char *' -// CHECK-NEXT: |-VarDecl {{.*}} PSCa 'signed char *' -// CHECK-NEXT: |-VarDecl {{.*}} PSCz 'signed char *' -// CHECK-NEXT: |-VarDecl {{.*}} PUC24 'unsigned char *' -// CHECK-NEXT: |-VarDecl {{.*}} PUC42 'unsigned char *' -// CHECK-NEXT: |-VarDecl {{.*}} PC16_24 'char16_t *' -// CHECK-NEXT: |-VarDecl {{.*}} PC32_42 'char32_t *' -// CHECK-NEXT: |-VarDecl {{.*}} PWC1 'wchar_t *' -// CHECK-NEXT: |-VarDecl {{.*}} PWCP 'wchar_t *' -// CHECK-NEXT: |-VarDecl {{.*}} PSMax 'short *' -// CHECK-NEXT: |-VarDecl {{.*}} PSMin 'short *' -// CHECK-NEXT: |-VarDecl {{.*}} PUSMax 'unsigned short *' -// CHECK-NEXT: |-VarDecl {{.*}} PUSMin 'unsigned short *' -// CHECK-NEXT: |-VarDecl {{.*}} PIMax 'int *' -// CHECK-NEXT: |-VarDecl {{.*}} PIMin 'int *' -// CHECK-NEXT: |-VarDecl {{.*}} PUIMax 'unsigned int *' -// CHECK-NEXT: |-VarDecl {{.*}} PUIMin 'unsigned int *' -// CHECK-NEXT: |-VarDecl {{.*}} PLMax 'long *' -// CHECK-NEXT: |-VarDecl {{.*}} PLMin 'long *' -// CHECK-NEXT: |-VarDecl {{.*}} PULMax 'unsigned long *' -// CHECK-NEXT: |-VarDecl {{.*}} PULMin 'unsigned long *' -// CHECK-NEXT: |-VarDecl {{.*}} PLLMax 'long long *' -// CHECK-NEXT: |-VarDecl {{.*}} PLLMin 'long long *' -// CHECK-NEXT: |-VarDecl {{.*}} PULLMax 'unsigned long long *' -// CHECK-NEXT: |-VarDecl {{.*}} PULLMin 'unsigned long long *' -// CHECK-NEXT: |-VarDecl {{.*}} PF 'float *' -// CHECK-NEXT: |-VarDecl {{.*}} PD 'double *' -// CHECK-NEXT: |-VarDecl {{.*}} CPBFalse 'const bool *' -// CHECK-NEXT: |-VarDecl {{.*}} CPBTrue 'const bool *' -// CHECK-NEXT: |-VarDecl {{.*}} CPCA 'const char *' -// CHECK-NEXT: |-VarDecl {{.*}} CPCZ 'const char *' -// CHECK-NEXT: |-VarDecl {{.*}} CPSCa 'const signed char *' -// CHECK-NEXT: |-VarDecl {{.*}} CPSCz 'const signed char *' -// CHECK-NEXT: |-VarDecl {{.*}} CPUC24 'const unsigned char *' -// CHECK-NEXT: |-VarDecl {{.*}} CPUC42 'const unsigned char *' -// CHECK-NEXT: |-VarDecl {{.*}} CPC16_24 'const char16_t *' -// CHECK-NEXT: |-VarDecl {{.*}} CPC32_42 'const char32_t *' -// CHECK-NEXT: |-VarDecl {{.*}} CPWC1 'const wchar_t *' -// CHECK-NEXT: |-VarDecl {{.*}} CPWCP 'const wchar_t *' -// CHECK-NEXT: |-VarDecl {{.*}} CPSMax 'const short *' -// CHECK-NEXT: |-VarDecl {{.*}} CPSMin 'const short *' -// CHECK-NEXT: |-VarDecl {{.*}} CPUSMax 'const unsigned short *' -// CHECK-NEXT: |-VarDecl {{.*}} CPUSMin 'const unsigned short *' -// CHECK-NEXT: |-VarDecl {{.*}} CPIMax 'const int *' -// CHECK-NEXT: |-VarDecl {{.*}} CPIMin 'const int *' -// CHECK-NEXT: |-VarDecl {{.*}} CPUIMax 'const unsigned int *' -// CHECK-NEXT: |-VarDecl {{.*}} CPUIMin 'const unsigned int *' -// CHECK-NEXT: |-VarDecl {{.*}} CPLMax 'const long *' -// CHECK-NEXT: |-VarDecl {{.*}} CPLMin 'const long *' -// CHECK-NEXT: |-VarDecl {{.*}} CPULMax 'const unsigned long *' -// CHECK-NEXT: |-VarDecl {{.*}} CPULMin 'const unsigned long *' -// CHECK-NEXT: |-VarDecl {{.*}} CPLLMax 'const long long *' -// CHECK-NEXT: |-VarDecl {{.*}} CPLLMin 'const long long *' -// CHECK-NEXT: |-VarDecl {{.*}} CPULLMax 'const unsigned long long *' -// CHECK-NEXT: |-VarDecl {{.*}} CPULLMin 'const unsigned long long *' -// CHECK-NEXT: |-VarDecl {{.*}} CPF 'const float *' -// CHECK-NEXT: |-VarDecl {{.*}} CPD 'const double *' -// CHECK-NEXT: |-VarDecl {{.*}} RBFalse 'bool &' -// CHECK-NEXT: |-VarDecl {{.*}} RBTrue 'bool &' -// CHECK-NEXT: |-VarDecl {{.*}} RCA 'char &' -// CHECK-NEXT: |-VarDecl {{.*}} RCZ 'char &' -// CHECK-NEXT: |-VarDecl {{.*}} RSCa 'signed char &' -// CHECK-NEXT: |-VarDecl {{.*}} RSCz 'signed char &' -// CHECK-NEXT: |-VarDecl {{.*}} RUC24 'unsigned char &' -// CHECK-NEXT: |-VarDecl {{.*}} RUC42 'unsigned char &' -// CHECK-NEXT: |-VarDecl {{.*}} RSMax 'short &' -// CHECK-NEXT: |-VarDecl {{.*}} RSMin 'short &' -// CHECK-NEXT: |-VarDecl {{.*}} RUSMax 'unsigned short &' -// CHECK-NEXT: |-VarDecl {{.*}} RUSMin 'unsigned short &' -// CHECK-NEXT: |-VarDecl {{.*}} RIMax 'int &' -// CHECK-NEXT: |-VarDecl {{.*}} RIMin 'int &' -// CHECK-NEXT: |-VarDecl {{.*}} RUIMax 'unsigned int &' -// CHECK-NEXT: |-VarDecl {{.*}} RUIMin 'unsigned int &' -// CHECK-NEXT: |-VarDecl {{.*}} RLMax 'long &' -// CHECK-NEXT: |-VarDecl {{.*}} RLMin 'long &' -// CHECK-NEXT: |-VarDecl {{.*}} RULMax 'unsigned long &' -// CHECK-NEXT: |-VarDecl {{.*}} RULMin 'unsigned long &' -// CHECK-NEXT: |-VarDecl {{.*}} RLLMax 'long long &' -// CHECK-NEXT: |-VarDecl {{.*}} RLLMin 'long long &' -// CHECK-NEXT: |-VarDecl {{.*}} RULLMax 'unsigned long long &' -// CHECK-NEXT: |-VarDecl {{.*}} RULLMin 'unsigned long long &' -// CHECK-NEXT: |-VarDecl {{.*}} RF 'float &' -// CHECK-NEXT: |-VarDecl {{.*}} RD 'double &' -// CHECK-NEXT: |-VarDecl {{.*}} CRBFalse 'const bool &' -// CHECK-NEXT: |-VarDecl {{.*}} CRBTrue 'const bool &' -// CHECK-NEXT: |-VarDecl {{.*}} CRCA 'const char &' -// CHECK-NEXT: |-VarDecl {{.*}} CRCZ 'const char &' -// CHECK-NEXT: |-VarDecl {{.*}} CRSCa 'const signed char &' -// CHECK-NEXT: |-VarDecl {{.*}} CRSCz 'const signed char &' -// CHECK-NEXT: |-VarDecl {{.*}} CRUC24 'const unsigned char &' -// CHECK-NEXT: |-VarDecl {{.*}} CRUC42 'const unsigned char &' -// CHECK-NEXT: |-VarDecl {{.*}} CRSMax 'const short &' -// CHECK-NEXT: |-VarDecl {{.*}} CRSMin 'const short &' -// CHECK-NEXT: |-VarDecl {{.*}} CRUSMax 'const unsigned short &' -// CHECK-NEXT: |-VarDecl {{.*}} CRUSMin 'const unsigned short &' -// CHECK-NEXT: |-VarDecl {{.*}} CRIMax 'const int &' -// CHECK-NEXT: |-VarDecl {{.*}} CRIMin 'const int &' -// CHECK-NEXT: |-VarDecl {{.*}} CRUIMax 'const unsigned int &' -// CHECK-NEXT: |-VarDecl {{.*}} CRUIMin 'const unsigned int &' -// CHECK-NEXT: |-VarDecl {{.*}} CRLMax 'const long &' -// CHECK-NEXT: |-VarDecl {{.*}} CRLMin 'const long &' -// CHECK-NEXT: |-VarDecl {{.*}} CRULMax 'const unsigned long &' -// CHECK-NEXT: |-VarDecl {{.*}} CRULMin 'const unsigned long &' -// CHECK-NEXT: |-VarDecl {{.*}} CRLLMax 'const long long &' -// CHECK-NEXT: |-VarDecl {{.*}} CRLLMin 'const long long &' -// CHECK-NEXT: |-VarDecl {{.*}} CRULLMax 'const unsigned long long &' -// CHECK-NEXT: |-VarDecl {{.*}} CRULLMin 'const unsigned long long &' -// CHECK-NEXT: |-VarDecl {{.*}} CRF 'const float &' -// CHECK-NEXT: |-VarDecl {{.*}} CRD 'const double &' -// CHECK-NEXT: |-VarDecl {{.*}} RC16_24 'char16_t &' -// CHECK-NEXT: |-VarDecl {{.*}} RC32_42 'char32_t &' -// CHECK-NEXT: |-VarDecl {{.*}} RWC1 'wchar_t &' -// CHECK-NEXT: |-VarDecl {{.*}} RWCP 'wchar_t &' -// CHECK-NEXT: |-VarDecl {{.*}} CRC16_24 'const char16_t &' -// CHECK-NEXT: |-VarDecl {{.*}} CRC32_42 'const char32_t &' -// CHECK-NEXT: |-VarDecl {{.*}} CRWC1 'const wchar_t &' -// CHECK-NEXT: |-VarDecl {{.*}} CRWCP 'const wchar_t &' -// CHECK-NEXT: `-<undeserialized declarations> - -// CHECK: (lldb) quit - -int main(int argc, char **argv) { - return CIMax; -} diff --git a/lit/SymbolFile/NativePDB/local-variables.cpp b/lit/SymbolFile/NativePDB/local-variables.cpp deleted file mode 100644 index 5886153a27d0..000000000000 --- a/lit/SymbolFile/NativePDB/local-variables.cpp +++ /dev/null @@ -1,161 +0,0 @@ -// clang-format off - -// REQUIRES: system-windows -// RUN: %build -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/local-variables.lldbinit 2>&1 | FileCheck %s - -int Function(int Param1, char Param2) { - unsigned Local1 = Param1 + 1; - char Local2 = Param2 + 1; - ++Local1; - ++Local2; - return Local1; -} - -int main(int argc, char **argv) { - int SomeLocal = argc * 2; - return Function(SomeLocal, 'a'); -} - -// CHECK: (lldb) target create "{{.*}}local-variables.cpp.tmp.exe" -// CHECK-NEXT: Current executable set to '{{.*}}local-variables.cpp.tmp.exe' -// CHECK-NEXT: (lldb) command source -s 0 '{{.*}}local-variables.lldbinit' -// CHECK-NEXT: Executing commands in '{{.*}}local-variables.lldbinit'. -// CHECK-NEXT: (lldb) break set -n main -// CHECK-NEXT: Breakpoint 1: where = local-variables.cpp.tmp.exe`main + {{.*}} at local-variables.cpp:{{.*}}, address = {{.*}} -// CHECK-NEXT: (lldb) run a b c d e f g -// CHECK-NEXT: Process {{.*}} stopped -// CHECK-NEXT: * thread #1, stop reason = breakpoint 1.1 -// CHECK-NEXT: frame #0: {{.*}} local-variables.cpp.tmp.exe`main(argc=8, argv={{.*}}) at local-variables.cpp:{{.*}} -// CHECK-NEXT: 14 } -// CHECK-NEXT: 15 -// CHECK-NEXT: 16 int main(int argc, char **argv) { -// CHECK-NEXT: -> 17 int SomeLocal = argc * 2; -// CHECK-NEXT: 18 return Function(SomeLocal, 'a'); -// CHECK-NEXT: 19 } -// CHECK-NEXT: 20 - -// CHECK: Process {{.*}} launched: '{{.*}}local-variables.cpp.tmp.exe' -// CHECK-NEXT: (lldb) p argc -// CHECK-NEXT: (int) $0 = 8 -// CHECK-NEXT: (lldb) step -// CHECK-NEXT: Process {{.*}} stopped -// CHECK-NEXT: * thread #1, stop reason = step in -// CHECK-NEXT: frame #0: {{.*}} local-variables.cpp.tmp.exe`main(argc=8, argv={{.*}}) at local-variables.cpp:{{.*}} -// CHECK-NEXT: 15 -// CHECK-NEXT: 16 int main(int argc, char **argv) { -// CHECK-NEXT: 17 int SomeLocal = argc * 2; -// CHECK-NEXT: -> 18 return Function(SomeLocal, 'a'); -// CHECK-NEXT: 19 } -// CHECK-NEXT: 20 - -// CHECK: (lldb) p SomeLocal -// CHECK-NEXT: (int) $1 = 16 -// CHECK-NEXT: (lldb) step -// CHECK-NEXT: Process {{.*}} stopped -// CHECK-NEXT: * thread #1, stop reason = step in -// CHECK-NEXT: frame #0: {{.*}} local-variables.cpp.tmp.exe`Function(Param1=16, Param2='a') at local-variables.cpp:{{.*}} -// CHECK-NEXT: 6 -// CHECK-NEXT: 7 -// CHECK-NEXT: 8 int Function(int Param1, char Param2) { -// CHECK-NEXT: -> 9 unsigned Local1 = Param1 + 1; -// CHECK-NEXT: 10 char Local2 = Param2 + 1; -// CHECK-NEXT: 11 ++Local1; -// CHECK-NEXT: 12 ++Local2; - -// CHECK: (lldb) p Param1 -// CHECK-NEXT: (int) $2 = 16 -// CHECK-NEXT: (lldb) p Param2 -// CHECK-NEXT: (char) $3 = 'a' -// CHECK-NEXT: (lldb) step -// CHECK-NEXT: Process {{.*}} stopped -// CHECK-NEXT: * thread #1, stop reason = step in -// CHECK-NEXT: frame #0: {{.*}} local-variables.cpp.tmp.exe`Function(Param1=16, Param2='a') at local-variables.cpp:{{.*}} -// CHECK-NEXT: 7 -// CHECK-NEXT: 8 int Function(int Param1, char Param2) { -// CHECK-NEXT: 9 unsigned Local1 = Param1 + 1; -// CHECK-NEXT: -> 10 char Local2 = Param2 + 1; -// CHECK-NEXT: 11 ++Local1; -// CHECK-NEXT: 12 ++Local2; -// CHECK-NEXT: 13 return Local1; - -// CHECK: (lldb) p Param1 -// CHECK-NEXT: (int) $4 = 16 -// CHECK-NEXT: (lldb) p Param2 -// CHECK-NEXT: (char) $5 = 'a' -// CHECK-NEXT: (lldb) p Local1 -// CHECK-NEXT: (unsigned int) $6 = 17 -// CHECK-NEXT: (lldb) step -// CHECK-NEXT: Process {{.*}} stopped -// CHECK-NEXT: * thread #1, stop reason = step in -// CHECK-NEXT: frame #0: {{.*}} local-variables.cpp.tmp.exe`Function(Param1=16, Param2='a') at local-variables.cpp:{{.*}} -// CHECK-NEXT: 8 int Function(int Param1, char Param2) { -// CHECK-NEXT: 9 unsigned Local1 = Param1 + 1; -// CHECK-NEXT: 10 char Local2 = Param2 + 1; -// CHECK-NEXT: -> 11 ++Local1; -// CHECK-NEXT: 12 ++Local2; -// CHECK-NEXT: 13 return Local1; -// CHECK-NEXT: 14 } - -// CHECK: (lldb) p Param1 -// CHECK-NEXT: (int) $7 = 16 -// CHECK-NEXT: (lldb) p Param2 -// CHECK-NEXT: (char) $8 = 'a' -// CHECK-NEXT: (lldb) p Local1 -// CHECK-NEXT: (unsigned int) $9 = 17 -// CHECK-NEXT: (lldb) p Local2 -// CHECK-NEXT: (char) $10 = 'b' -// CHECK-NEXT: (lldb) step -// CHECK-NEXT: Process {{.*}} stopped -// CHECK-NEXT: * thread #1, stop reason = step in -// CHECK-NEXT: frame #0: {{.*}} local-variables.cpp.tmp.exe`Function(Param1=16, Param2='a') at local-variables.cpp:{{.*}} -// CHECK-NEXT: 9 unsigned Local1 = Param1 + 1; -// CHECK-NEXT: 10 char Local2 = Param2 + 1; -// CHECK-NEXT: 11 ++Local1; -// CHECK-NEXT: -> 12 ++Local2; -// CHECK-NEXT: 13 return Local1; -// CHECK-NEXT: 14 } -// CHECK-NEXT: 15 - -// CHECK: (lldb) p Param1 -// CHECK-NEXT: (int) $11 = 16 -// CHECK-NEXT: (lldb) p Param2 -// CHECK-NEXT: (char) $12 = 'a' -// CHECK-NEXT: (lldb) p Local1 -// CHECK-NEXT: (unsigned int) $13 = 18 -// CHECK-NEXT: (lldb) p Local2 -// CHECK-NEXT: (char) $14 = 'b' -// CHECK-NEXT: (lldb) step -// CHECK-NEXT: Process {{.*}} stopped -// CHECK-NEXT: * thread #1, stop reason = step in -// CHECK-NEXT: frame #0: {{.*}} local-variables.cpp.tmp.exe`Function(Param1=16, Param2='a') at local-variables.cpp:{{.*}} -// CHECK-NEXT: 10 char Local2 = Param2 + 1; -// CHECK-NEXT: 11 ++Local1; -// CHECK-NEXT: 12 ++Local2; -// CHECK-NEXT: -> 13 return Local1; -// CHECK-NEXT: 14 } -// CHECK-NEXT: 15 -// CHECK-NEXT: 16 int main(int argc, char **argv) { - -// CHECK: (lldb) p Param1 -// CHECK-NEXT: (int) $15 = 16 -// CHECK-NEXT: (lldb) p Param2 -// CHECK-NEXT: (char) $16 = 'a' -// CHECK-NEXT: (lldb) p Local1 -// CHECK-NEXT: (unsigned int) $17 = 18 -// CHECK-NEXT: (lldb) p Local2 -// CHECK-NEXT: (char) $18 = 'c' -// CHECK-NEXT: (lldb) continue -// CHECK-NEXT: Process {{.*}} resuming -// CHECK-NEXT: Process {{.*}} exited with status = 18 (0x00000012) - -// CHECK: (lldb) target modules dump ast -// CHECK-NEXT: Dumping clang ast for {{.*}} modules. -// CHECK-NEXT: TranslationUnitDecl -// CHECK-NEXT: |-FunctionDecl {{.*}} main 'int (int, char **)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} argc 'int' -// CHECK-NEXT: | `-ParmVarDecl {{.*}} argv 'char **' -// CHECK-NEXT: |-FunctionDecl {{.*}} Function 'int (int, char)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} Param1 'int' -// CHECK-NEXT: | `-ParmVarDecl {{.*}} Param2 'char' diff --git a/lit/SymbolFile/NativePDB/nested-types.cpp b/lit/SymbolFile/NativePDB/nested-types.cpp deleted file mode 100644 index e9bee690d301..000000000000 --- a/lit/SymbolFile/NativePDB/nested-types.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test various interesting cases for AST reconstruction. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/nested-types.lldbinit 2>&1 | FileCheck %s - -struct S { - struct NestedStruct { - int A = 0; - int B = 1; - }; - - enum class NestedEnum { - EnumValue1 = 0, - EnumValue2 = 1, - }; - int C = 2; - int D = 3; - using VoidPtrT = void *; - VoidPtrT DD = nullptr; -}; -struct T { - using NestedTypedef = int; - using NestedTypedef2 = S; - - struct NestedStruct { - int E = 4; - int F = 5; - }; - - using NestedStructAlias = NestedStruct; - using NST = S::NestedStruct; - - NestedTypedef NT = 4; - - using U = struct { - int G = 6; - int H = 7; - }; -}; - -template<typename Param> -class U { -public: - // See llvm.org/pr39607. clang-cl currently doesn't emit an important debug - // info record for nested template instantiations, so we can't reconstruct - // a proper DeclContext hierarchy for these. As such, U<X>::V<Y> will show up - // in the global namespace. - template<typename Param> - struct V { - Param I = 8; - Param J = 9; - - using W = T::NestedTypedef; - using X = U<int>; - }; - - struct W { - Param M = 12; - Param N = 13; - }; - Param K = 10; - Param L = 11; - using Y = V<int>; - using Z = V<T>; -}; - -constexpr S GlobalA; -constexpr S::NestedStruct GlobalB; -constexpr T GlobalC; -constexpr T::NestedStruct GlobalD; -constexpr T::U GlobalE; -constexpr U<int> GlobalF; -constexpr U<int>::V<int> GlobalG; -constexpr U<int>::W GlobalH; -constexpr S::NestedEnum GlobalEnum = S::NestedEnum::EnumValue1; - - -int main(int argc, char **argv) { - return 0; -} - - - -// CHECK: (lldb) target variable -T GlobalA -// CHECK: (const S) GlobalA = { -// CHECK: (int) C = 2 -// CHECK: (int) D = 3 -// CHECK: (void *) DD = 0x00000000 -// CHECK: } -// CHECK: (lldb) target variable -T GlobalB -// CHECK: (const S::NestedStruct) GlobalB = { -// CHECK: (int) A = 0 -// CHECK: (int) B = 1 -// CHECK: } -// CHECK: (lldb) target variable -T GlobalC -// CHECK: (const T) GlobalC = { -// CHECK: (int) NT = 4 -// CHECK: } -// CHECK: (lldb) target variable -T GlobalD -// CHECK: (const T::NestedStruct) GlobalD = { -// CHECK: (int) E = 4 -// CHECK: (int) F = 5 -// CHECK: } -// CHECK: (lldb) target variable -T GlobalE -// CHECK: (const T::U) GlobalE = { -// CHECK: (int) G = 6 -// CHECK: (int) H = 7 -// CHECK: } -// CHECK: (lldb) target variable -T GlobalF -// CHECK: (const U<int>) GlobalF = { -// CHECK: (int) K = 10 -// CHECK: (int) L = 11 -// CHECK: } -// CHECK: (lldb) target variable -T GlobalG -// CHECK: (const U<int>::V<int>) GlobalG = { -// CHECK: (int) I = 8 -// CHECK: (int) J = 9 -// CHECK: } -// CHECK: (lldb) target variable -T GlobalEnum -// CHECK: (const S::NestedEnum) GlobalEnum = EnumValue1 -// CHECK: (lldb) target modules dump ast -// CHECK: Dumping clang ast for 1 modules. -// CHECK: TranslationUnitDecl {{.*}} -// CHECK: |-CXXRecordDecl {{.*}} struct S definition -// CHECK: | |-FieldDecl {{.*}} C 'int' -// CHECK: | |-FieldDecl {{.*}} D 'int' -// CHECK: | |-FieldDecl {{.*}} DD 'void *' -// CHECK: | |-CXXRecordDecl {{.*}} struct NestedStruct definition -// CHECK: | | |-FieldDecl {{.*}} A 'int' -// CHECK: | | `-FieldDecl {{.*}} B 'int' -// CHECK: | `-EnumDecl {{.*}} NestedEnum -// CHECK: | |-EnumConstantDecl {{.*}} EnumValue1 'S::NestedEnum' -// CHECK: | `-EnumConstantDecl {{.*}} EnumValue2 'S::NestedEnum' -// CHECK: |-CXXRecordDecl {{.*}} struct T definition -// CHECK: | |-FieldDecl {{.*}} NT 'int' -// CHECK: | |-CXXRecordDecl {{.*}} struct NestedStruct definition -// CHECK: | | |-FieldDecl {{.*}} E 'int' -// CHECK: | | `-FieldDecl {{.*}} F 'int' -// CHECK: | `-CXXRecordDecl {{.*}} struct U definition -// CHECK: | |-FieldDecl {{.*}} G 'int' -// CHECK: | `-FieldDecl {{.*}} H 'int' -// CHECK: |-CXXRecordDecl {{.*}} class U<int> definition -// CHECK: | |-FieldDecl {{.*}} K 'int' -// CHECK: | |-FieldDecl {{.*}} L 'int' -// CHECK: | `-CXXRecordDecl {{.*}} struct W definition -// CHECK: | |-FieldDecl {{.*}} M 'int' -// CHECK: | `-FieldDecl {{.*}} N 'int' -// CHECK: |-CXXRecordDecl {{.*}} struct U<int>::V<int> definition -// CHECK: | |-FieldDecl {{.*}} I 'int' -// CHECK: | `-FieldDecl {{.*}} J 'int' diff --git a/lit/SymbolFile/NativePDB/s_constant.cpp b/lit/SymbolFile/NativePDB/s_constant.cpp deleted file mode 100644 index 7603a4daba40..000000000000 --- a/lit/SymbolFile/NativePDB/s_constant.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can display S_CONSTANT records. - -// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-win32 %p/Inputs/s_constant.s > %t.obj -// RUN: %build --compiler=clang-cl --nodefaultlib --mode=link -o %t.exe -- %t.obj -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/s_constant.lldbinit | FileCheck %s - -// clang-cl cannot generate S_CONSTANT records, but we need to test that we can -// handle them for compatibility with MSVC, which does emit them. This test -// case was generated by compiling this file with MSVC and copying the bytes -// that they emit for S_CONSTANT records. Then we compile the same code with -// clang to get a .s file, and replace all S_LDATA32 records with the bytes from -// the S_CONSTANT records. This way we end up with a .s file that contains -// symbol records that clang-cl won't generate. - -namespace A { -namespace B { -namespace C { - enum LargeUnsignedEnum : unsigned long long { - LUE_A = 0ULL, - LUE_B = 1000ULL, - LUE_C = 18446744073709551600ULL, - }; - - enum LargeSignedEnum : long long { - LSE_A = 0LL, - LSE_B = 9223372036854775000LL, - LSE_C = -9223372036854775000LL, - }; - - enum UnsignedEnum : unsigned int { - UE_A = 0, - UE_B = 1000, - UE_C = 4294000000, - }; - - enum SignedEnum : int { - SE_A = 0, - SE_B = 2147000000, - SE_C = -2147000000, - }; - - enum SmallUnsignedEnum : unsigned char { - SUE_A = 0, - SUE_B = 100, - SUE_C = 200, - }; - - enum SmallSignedEnum : char { - SSE_A = 0, - SSE_B = 100, - SSE_C = -100, - }; -} -} -} - -using namespace A::B::C; - -constexpr LargeUnsignedEnum GlobalLUEA = LUE_A; -constexpr LargeUnsignedEnum GlobalLUEB = LUE_B; -constexpr LargeUnsignedEnum GlobalLUEC = LUE_C; - -constexpr LargeSignedEnum GlobalLSEA = LSE_A; -constexpr LargeSignedEnum GlobalLSEB = LSE_B; -constexpr LargeSignedEnum GlobalLSEC = LSE_C; - -constexpr UnsignedEnum GlobalUEA = UE_A; -constexpr UnsignedEnum GlobalUEB = UE_B; -constexpr UnsignedEnum GlobalUEC = UE_C; - -constexpr SignedEnum GlobalSEA = SE_A; -constexpr SignedEnum GlobalSEB = SE_B; -constexpr SignedEnum GlobalSEC = SE_C; - -constexpr SmallUnsignedEnum GlobalSUEA = SUE_A; -constexpr SmallUnsignedEnum GlobalSUEB = SUE_B; -constexpr SmallUnsignedEnum GlobalSUEC = SUE_C; - -constexpr SmallSignedEnum GlobalSSEA = SSE_A; -constexpr SmallSignedEnum GlobalSSEB = SSE_B; -constexpr SmallSignedEnum GlobalSSEC = SSE_C; - -int main(int argc, char **argv) { - return 0; -} - -// CHECK: (const A::B::C::LargeUnsignedEnum) GlobalLUEA = LUE_A -// CHECK: (const A::B::C::LargeUnsignedEnum) GlobalLUEB = LUE_B - -// X-FAIL: Something is outputting bad debug info here, maybe cl. -// CHECK: (const A::B::C::LargeUnsignedEnum) GlobalLUEC = {{.*}} - -// CHECK: (const A::B::C::LargeSignedEnum) GlobalLSEA = LSE_A -// CHECK: (const A::B::C::LargeSignedEnum) GlobalLSEB = LSE_B -// CHECK: (const A::B::C::LargeSignedEnum) GlobalLSEC = LSE_C - -// CHECK: (const A::B::C::UnsignedEnum) GlobalUEA = UE_A -// CHECK: (const A::B::C::UnsignedEnum) GlobalUEB = UE_B -// CHECK: (const A::B::C::UnsignedEnum) GlobalUEC = UE_C - -// CHECK: (const A::B::C::SignedEnum) GlobalSEA = SE_A -// CHECK: (const A::B::C::SignedEnum) GlobalSEB = SE_B -// CHECK: (const A::B::C::SignedEnum) GlobalSEC = SE_C - -// CHECK: (const A::B::C::SmallUnsignedEnum) GlobalSUEA = SUE_A -// CHECK: (const A::B::C::SmallUnsignedEnum) GlobalSUEB = SUE_B -// CHECK: (const A::B::C::SmallUnsignedEnum) GlobalSUEC = SUE_C - -// CHECK: (const A::B::C::SmallSignedEnum) GlobalSSEA = SSE_A -// CHECK: (const A::B::C::SmallSignedEnum) GlobalSSEB = SSE_B -// CHECK: (const A::B::C::SmallSignedEnum) GlobalSSEC = SSE_C diff --git a/lit/SymbolFile/NativePDB/source-list.cpp b/lit/SymbolFile/NativePDB/source-list.cpp deleted file mode 100644 index 6b749b082e3d..000000000000 --- a/lit/SymbolFile/NativePDB/source-list.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can set display source of functions. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/source-list.lldbinit | FileCheck %s - - - -// Some context lines before -// the function. - - -int main(int argc, char **argv) { - // Here are some comments. - // That we should print when listing source. - return 0; -} - -// Some context lines after -// the function. - -// check lines go at the end so that line numbers stay stable when -// changing this file. - -// CHECK: (lldb) source list -n main -// CHECK: File: {{.*}}source-list.cpp -// CHECK: 10 -// CHECK: 11 // Some context lines before -// CHECK: 12 // the function. -// CHECK: 13 -// CHECK: 14 -// CHECK: 15 int main(int argc, char **argv) { -// CHECK: 16 // Here are some comments. -// CHECK: 17 // That we should print when listing source. -// CHECK: 18 return 0; -// CHECK: 19 } -// CHECK: 20 -// CHECK: 21 // Some context lines after -// CHECK: 22 // the function. -// CHECK: 23 diff --git a/lit/SymbolFile/NativePDB/tag-types.cpp b/lit/SymbolFile/NativePDB/tag-types.cpp deleted file mode 100644 index 947fe20d17d7..000000000000 --- a/lit/SymbolFile/NativePDB/tag-types.cpp +++ /dev/null @@ -1,235 +0,0 @@ -// clang-format off -// REQUIRES: lld - -// Test that we can display tag types. -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \ -// RUN: %p/Inputs/tag-types.lldbinit | FileCheck %s - -// Test struct -struct Struct { - // Test builtin types, which are represented by special CodeView type indices. - bool B; - char C; - signed char SC; - unsigned char UC; - char16_t C16; - char32_t C32; - wchar_t WC; - short S; - unsigned short US; - int I; - unsigned int UI; - long L; - unsigned long UL; - long long LL; - unsigned long long ULL; - float F; - double D; - long double LD; -}; - -// Test class -class Class { -public: - // Test pointers to builtin types, which are represented by different special - // CodeView type indices. - bool *PB; - char *PC; - signed char *PSC; - unsigned char *PUC; - char16_t *PC16; - char32_t *PC32; - wchar_t *PWC; - short *PS; - unsigned short *PUS; - int *PI; - unsigned int *PUI; - long *PL; - unsigned long *PUL; - long long *PLL; - unsigned long long *PULL; - float *PF; - double *PD; - long double *PLD; -}; - -// Test union -union Union { - // Test modified types. - const bool *PB; - const char *PC; - const signed char *PSC; - const unsigned char *PUC; - const char16_t *PC16; - const char32_t *PC32; - const wchar_t *PWC; - const short *PS; - const unsigned short *PUS; - const int *PI; - const unsigned int *PUI; - const long *PL; - const unsigned long *PUL; - const long long *PLL; - const unsigned long long *PULL; - const float *PF; - const double *PD; - const long double *PLD; -}; - -struct OneMember { - int N = 0; -}; - - -// Test single inheritance. -class Derived : public Class { -public: - explicit Derived() - : Reference(*this), RefMember(Member), RValueRefMember((OneMember&&)Member) {} - - // Test reference to self, to make sure we don't end up in an - // infinite cycle. - Derived &Reference; - - // Test aggregate class member. - OneMember Member; - - // And modified aggregate class member. - const OneMember ConstMember; - volatile OneMember VolatileMember; - const volatile OneMember CVMember; - - // And all types of pointers to class members - OneMember *PtrMember; - OneMember &RefMember; - OneMember &&RValueRefMember; -}; - -// Test multiple inheritance, as well as protected and private inheritance. -class Derived2 : protected Class, private Struct { -public: - // Test static data members - static unsigned StaticDataMember; -}; - -unsigned Derived2::StaticDataMember = 0; - -// Test scoped enums and unscoped enums. -enum class EnumInt { - A = 1, - B = 2 -}; - -// Test explicit underlying types -enum EnumShort : short { - ES_A = 2, - ES_B = 3 -}; - -int main(int argc, char **argv) { - Struct S; - Class C; - Union U; - Derived D; - Derived2 D2; - EnumInt EI; - EnumShort ES; - - return 0; -} - -// CHECK: (lldb) target create "{{.*}}tag-types.cpp.tmp.exe" -// CHECK-NEXT: Current executable set to '{{.*}}tag-types.cpp.tmp.exe' -// CHECK-NEXT: (lldb) command source -s 0 '{{.*}}tag-types.lldbinit' -// CHECK-NEXT: Executing commands in '{{.*}}tag-types.lldbinit'. -// CHECK-NEXT: (lldb) type lookup -- Struct -// CHECK-NEXT: struct Struct { -// CHECK-NEXT: bool B; -// CHECK-NEXT: char C; -// CHECK-NEXT: signed char SC; -// CHECK-NEXT: unsigned char UC; -// CHECK-NEXT: char16_t C16; -// CHECK-NEXT: char32_t C32; -// CHECK-NEXT: wchar_t WC; -// CHECK-NEXT: short S; -// CHECK-NEXT: unsigned short US; -// CHECK-NEXT: int I; -// CHECK-NEXT: unsigned int UI; -// CHECK-NEXT: long L; -// CHECK-NEXT: unsigned long UL; -// CHECK-NEXT: long long LL; -// CHECK-NEXT: unsigned long long ULL; -// CHECK-NEXT: float F; -// CHECK-NEXT: double D; -// CHECK-NEXT: double LD; -// CHECK-NEXT: } -// CHECK-NEXT: (lldb) type lookup -- Class -// CHECK-NEXT: class Class { -// CHECK-NEXT: bool *PB; -// CHECK-NEXT: char *PC; -// CHECK-NEXT: signed char *PSC; -// CHECK-NEXT: unsigned char *PUC; -// CHECK-NEXT: char16_t *PC16; -// CHECK-NEXT: char32_t *PC32; -// CHECK-NEXT: wchar_t *PWC; -// CHECK-NEXT: short *PS; -// CHECK-NEXT: unsigned short *PUS; -// CHECK-NEXT: int *PI; -// CHECK-NEXT: unsigned int *PUI; -// CHECK-NEXT: long *PL; -// CHECK-NEXT: unsigned long *PUL; -// CHECK-NEXT: long long *PLL; -// CHECK-NEXT: unsigned long long *PULL; -// CHECK-NEXT: float *PF; -// CHECK-NEXT: double *PD; -// CHECK-NEXT: double *PLD; -// CHECK-NEXT: } -// CHECK-NEXT: (lldb) type lookup -- Union -// CHECK-NEXT: union Union { -// CHECK-NEXT: const bool *PB; -// CHECK-NEXT: const char *PC; -// CHECK-NEXT: const signed char *PSC; -// CHECK-NEXT: const unsigned char *PUC; -// CHECK-NEXT: const char16_t *PC16; -// CHECK-NEXT: const char32_t *PC32; -// CHECK-NEXT: const wchar_t *PWC; -// CHECK-NEXT: const short *PS; -// CHECK-NEXT: const unsigned short *PUS; -// CHECK-NEXT: const int *PI; -// CHECK-NEXT: const unsigned int *PUI; -// CHECK-NEXT: const long *PL; -// CHECK-NEXT: const unsigned long *PUL; -// CHECK-NEXT: const long long *PLL; -// CHECK-NEXT: const unsigned long long *PULL; -// CHECK-NEXT: const float *PF; -// CHECK-NEXT: const double *PD; -// CHECK-NEXT: const double *PLD; -// CHECK-NEXT: } -// CHECK-NEXT: (lldb) type lookup -- Derived -// CHECK-NEXT: class Derived : public Class { -// CHECK-NEXT: Derived &Reference; -// CHECK-NEXT: OneMember Member; -// CHECK-NEXT: const OneMember ConstMember; -// CHECK-NEXT: volatile OneMember VolatileMember; -// CHECK-NEXT: const volatile OneMember CVMember; -// CHECK-NEXT: OneMember *PtrMember; -// CHECK-NEXT: OneMember &RefMember; -// CHECK-NEXT: OneMember &&RValueRefMember; -// CHECK-NEXT: } -// CHECK-NEXT: (lldb) type lookup -- Derived2 -// CHECK-NEXT: class Derived2 : protected Class, private Struct { -// CHECK-NEXT: static unsigned int StaticDataMember; -// CHECK-NEXT: } -// CHECK-NEXT: (lldb) type lookup -- EnumInt -// CHECK-NEXT: enum EnumInt { -// CHECK-NEXT: A, -// CHECK-NEXT: B -// CHECK-NEXT: } -// CHECK-NEXT: (lldb) type lookup -- EnumShort -// CHECK-NEXT: enum EnumShort { -// CHECK-NEXT: ES_A, -// CHECK-NEXT: ES_B -// CHECK-NEXT: } -// CHECK-NEXT: (lldb) type lookup -- InvalidType -// CHECK-NEXT: no type was found matching 'InvalidType' diff --git a/lit/SymbolFile/NativePDB/typedefs.cpp b/lit/SymbolFile/NativePDB/typedefs.cpp deleted file mode 100644 index 738fbe615d90..000000000000 --- a/lit/SymbolFile/NativePDB/typedefs.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// clang-format off - -// REQUIRES: system-windows -// RUN: %build --compiler=clang-cl --nodefaultlib -o %t.exe -- %s -// RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols -dump-ast %t.exe | FileCheck %s - -namespace A { - namespace B { - using NamespaceTypedef = double; - } - template<typename T> - class C { - public: - using ClassTypedef = T; - }; - using ClassTypedef = C<char>::ClassTypedef; - using ClassTypedef2 = C<wchar_t>::ClassTypedef; - - template<typename T> - using AliasTemplate = typename C<T>::ClassTypedef; -} - -namespace { - using AnonNamespaceTypedef = bool; -} - -using IntTypedef = int; - -using ULongArrayTypedef = unsigned long[10]; - -using RefTypedef = long double*&; - -using FuncPtrTypedef = long long(*)(int&, unsigned char**, short[], const double, volatile bool); - -using VarArgsFuncTypedef = char(*)(void*, long, unsigned short, unsigned int, ...); - -using VarArgsFuncTypedefA = float(*)(...); - -int main(int argc, char **argv) { - long double *Ptr; - - A::B::NamespaceTypedef *X0; - A::C<char>::ClassTypedef *X1; - A::C<wchar_t>::ClassTypedef *X2; - AnonNamespaceTypedef *X3; - IntTypedef *X4; - ULongArrayTypedef *X5; - RefTypedef X6 = Ptr; - FuncPtrTypedef X7; - VarArgsFuncTypedef X8; - VarArgsFuncTypedefA X9; - A::AliasTemplate<float> X10; - return 0; -} - - -// CHECK: namespace `anonymous namespace' { -// CHECK-NEXT: typedef bool AnonNamespaceTypedef; -// CHECK-NEXT: } -// CHECK-NEXT: typedef unsigned long ULongArrayTypedef[10]; -// CHECK-NEXT: typedef double *&RefTypedef; -// CHECK-NEXT: namespace A { -// CHECK-NEXT: namespace B { -// CHECK-NEXT: typedef double NamespaceTypedef; -// CHECK-NEXT: } -// CHECK-NEXT: typedef float AliasTemplate<float>; -// CHECK-NEXT: } -// CHECK-NEXT: typedef long long (*FuncPtrTypedef)(int &, unsigned char **, short *, const double, volatile bool); -// CHECK-NEXT: typedef char (*VarArgsFuncTypedef)(void *, long, unsigned short, unsigned int, ...); -// CHECK-NEXT: typedef float (*VarArgsFuncTypedefA)(...); -// CHECK-NEXT: typedef int IntTypedef; diff --git a/lit/SymbolFile/PDB/Inputs/AstRestoreTest.cpp b/lit/SymbolFile/PDB/Inputs/AstRestoreTest.cpp deleted file mode 100644 index 8c9e26744d5f..000000000000 --- a/lit/SymbolFile/PDB/Inputs/AstRestoreTest.cpp +++ /dev/null @@ -1,55 +0,0 @@ -namespace N0 { -namespace N1 { - -namespace { -enum Enum { Enum_0 = 1, Enum_1 = 2, Enum_2 = 4, Enum_3 = 8 }; -} - -Enum Global = Enum_3; - -struct Base { - Enum m_e = Enum_1; -}; - -class Class : public Base { -public: - Class(Enum e) : m_ce(e) {} - - static int StaticFunc(const Class &c) { - return c.PrivateFunc(c.m_inner) + Global + ClassStatic; - } - - const Enum m_ce; - - static int ClassStatic; - -private: - struct Inner { - char x; - short y; - int z; - }; - - int PrivateFunc(const Inner &i) const { return i.z; } - - Inner m_inner{}; -}; -int Class::ClassStatic = 7; - -template<typename T> -struct Template { - template<Enum E> - void TemplateFunc() { - T::StaticFunc(T(E)); - } -}; - -void foo() { Template<Class>().TemplateFunc<Enum_0>(); } - -} // namespace N1 -} // namespace N0 - -int main() { - N0::N1::foo(); - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/CallingConventionsTest.cpp b/lit/SymbolFile/PDB/Inputs/CallingConventionsTest.cpp deleted file mode 100644 index 60854c04c60a..000000000000 --- a/lit/SymbolFile/PDB/Inputs/CallingConventionsTest.cpp +++ /dev/null @@ -1,20 +0,0 @@ -int FuncCCall() { return 0; } -auto FuncCCallPtr = &FuncCCall; - -int __stdcall FuncStdCall() { return 0; } -auto FuncStdCallPtr = &FuncStdCall; - -int __fastcall FuncFastCall() { return 0; } -auto FuncFastCallPtr = &FuncFastCall; - -int __vectorcall FuncVectorCall() { return 0; } -auto FuncVectorCallPtr = &FuncVectorCall; - -struct S { - int FuncThisCall() { return 0; } -}; -auto FuncThisCallPtr = &S::FuncThisCall; - -int main() { - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/ClassLayoutTest.cpp b/lit/SymbolFile/PDB/Inputs/ClassLayoutTest.cpp deleted file mode 100644 index 3c4b005cdf1b..000000000000 --- a/lit/SymbolFile/PDB/Inputs/ClassLayoutTest.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// To avoid linking MSVC specific libs, we don't test virtual/override methods -// that needs vftable support in this file. - -// Enum. -enum Enum { RED, GREEN, BLUE }; -Enum EnumVar; - -// Union. -union Union { - short Row; - unsigned short Col; - int Line : 16; // Test named bitfield. - short : 8; // Unnamed bitfield symbol won't be generated in PDB. - long Table; -}; -Union UnionVar; - -// Struct. -struct Struct; -typedef Struct StructTypedef; - -struct Struct { - bool A; - unsigned char UCharVar; - unsigned int UIntVar; - long long LongLongVar; - Enum EnumVar; // Test struct has UDT member. - int array[10]; -}; -struct Struct StructVar; - -struct _List; // Forward declaration. -struct Complex { - struct _List *array[90]; - struct { // Test unnamed struct. MSVC treats it as `int x` - int x; - }; - union { // Test unnamed union. MSVC treats it as `int a; float b;` - int a; - float b; - }; -}; -struct Complex c; - -struct _List { // Test doubly linked list. - struct _List *current; - struct _List *previous; - struct _List *next; -}; -struct _List ListVar; - -typedef struct { - int a; -} UnnamedStruct; // Test unnamed typedef-ed struct. -UnnamedStruct UnnanmedVar; - -// Class. -namespace MemberTest { -class Base { -public: - Base() {} - ~Base() {} - -public: - int Get() { return 0; } - -protected: - int a; -}; -class Friend { -public: - int f() { return 3; } -}; -class Class : public Base { // Test base class. - friend Friend; - static int m_static; // Test static member variable. -public: - Class() : m_public(), m_private(), m_protected() {} - explicit Class(int a) { m_public = a; } // Test first reference of m_public. - ~Class() {} - - static int StaticMemberFunc(int a, ...) { - return 1; - } // Test static member function. - int Get() { return 1; } - int f(Friend c) { return c.f(); } - inline bool operator==(const Class &rhs) const // Test operator. - { - return (m_public == rhs.m_public); - } - -public: - int m_public; - struct Struct m_struct; - -private: - Union m_union; - int m_private; - -protected: - friend class Friend; - int m_protected; -}; -} // namespace MemberTest - -int main() { - MemberTest::Base B1; - B1.Get(); - MemberTest::Class::StaticMemberFunc(1, 10, 2); - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/CompilandsTest.cpp b/lit/SymbolFile/PDB/Inputs/CompilandsTest.cpp deleted file mode 100644 index 4cce7f667ff7..000000000000 --- a/lit/SymbolFile/PDB/Inputs/CompilandsTest.cpp +++ /dev/null @@ -1,3 +0,0 @@ -int main() { - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/ExpressionsTest.cpp b/lit/SymbolFile/PDB/Inputs/ExpressionsTest.cpp deleted file mode 100644 index 3785cd3c64c7..000000000000 --- a/lit/SymbolFile/PDB/Inputs/ExpressionsTest.cpp +++ /dev/null @@ -1,20 +0,0 @@ -namespace N0 { -namespace N1 { - -char *buf0 = nullptr; -char buf1[] = {0, 1, 2, 3, 4, 5, 6, 7}; - -char sum(char *buf, int size) { - char result = 0; - for (int i = 0; i < size; i++) - result += buf[i]; - return result; -} - -} // namespace N1 -} // namespace N0 - -int main() { - char result = N0::N1::sum(N0::N1::buf1, sizeof(N0::N1::buf1)); - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/ExpressionsTest0.script b/lit/SymbolFile/PDB/Inputs/ExpressionsTest0.script deleted file mode 100644 index d31a2abb68a2..000000000000 --- a/lit/SymbolFile/PDB/Inputs/ExpressionsTest0.script +++ /dev/null @@ -1,7 +0,0 @@ -breakpoint set --file ExpressionsTest.cpp --line 19 -run -print result -print N0::N1::sum(N0::N1::buf1, sizeof(N0::N1::buf1)) -print N1::sum(N1::buf1, sizeof(N1::buf1)) -print sum(buf1, sizeof(buf1)) -print sum(buf1, 1000000000) diff --git a/lit/SymbolFile/PDB/Inputs/ExpressionsTest1.script b/lit/SymbolFile/PDB/Inputs/ExpressionsTest1.script deleted file mode 100644 index dac887faa5bb..000000000000 --- a/lit/SymbolFile/PDB/Inputs/ExpressionsTest1.script +++ /dev/null @@ -1 +0,0 @@ -print sum(buf0, 1) diff --git a/lit/SymbolFile/PDB/Inputs/ExpressionsTest2.script b/lit/SymbolFile/PDB/Inputs/ExpressionsTest2.script deleted file mode 100644 index b19240baf99d..000000000000 --- a/lit/SymbolFile/PDB/Inputs/ExpressionsTest2.script +++ /dev/null @@ -1,2 +0,0 @@ -print sum(buf0, result - 28) -print sum(buf1 + 3, 3) diff --git a/lit/SymbolFile/PDB/Inputs/FuncSymbols.cpp b/lit/SymbolFile/PDB/Inputs/FuncSymbols.cpp deleted file mode 100644 index ccccf6ffd108..000000000000 --- a/lit/SymbolFile/PDB/Inputs/FuncSymbols.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// Static function -namespace { -static long StaticFunction(int a) -{ - return 2; -} -} - -// Inlined function -static inline int InlinedFunction(long a) { return 10; } - -void FunctionCall() -{ - StaticFunction(1); - InlinedFunction(1); -} diff --git a/lit/SymbolFile/PDB/Inputs/FuncSymbolsTestMain.cpp b/lit/SymbolFile/PDB/Inputs/FuncSymbolsTestMain.cpp deleted file mode 100644 index 17eeab7117bf..000000000000 --- a/lit/SymbolFile/PDB/Inputs/FuncSymbolsTestMain.cpp +++ /dev/null @@ -1,59 +0,0 @@ - -// Global functions -int Func_arg_array(int array[]) { return 1; } -void Func_arg_void(void) { return; } -void Func_arg_none(void) { return; } -void Func_varargs(...) { return; } - -// Class -namespace MemberTest { - class A { - public: - int Func(int a, ...) { return 1; } - }; -} - -// Template -template <int N=1, class ...T> -void TemplateFunc(T ...Arg) { - return; -} - -// namespace -namespace { - void Func(int a, const long b, volatile bool c, ...) { return; } -} - -namespace NS { - void Func(char a, int b) { - return; - } -} - -// Static function -static long StaticFunction(int a) -{ - return 2; -} - -// Inlined function -inline void InlinedFunction(long a) { return; } - -extern void FunctionCall(); - -int main() { - MemberTest::A v1; - v1.Func('a',10); - - Func(1, 5, true, 10, 8); - NS::Func('c', 2); - - TemplateFunc(10); - TemplateFunc(10,11,88); - - StaticFunction(2); - InlinedFunction(1); - - FunctionCall(); - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.cpp b/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.cpp deleted file mode 100644 index fa0030bacbf3..000000000000 --- a/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "FunctionLevelLinkingTest.h" - -int foo() { - return 0; -} - -int main() { - return foo() + bar() + baz(); -} diff --git a/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.h b/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.h deleted file mode 100644 index 0cc9d80d85d1..000000000000 --- a/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef FUNCTION_LEVEL_LINKING_TEST_H -#define FUNCTION_LEVEL_LINKING_TEST_H - -int bar() { - return 0; -} - -int baz() { - return 0; -} - -#endif diff --git a/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.ord b/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.ord deleted file mode 100644 index 48abd0b872f9..000000000000 --- a/lit/SymbolFile/PDB/Inputs/FunctionLevelLinkingTest.ord +++ /dev/null @@ -1,4 +0,0 @@ -?foo@@YAHXZ -?bar@@YAHXZ -main -?baz@@YAHXZ diff --git a/lit/SymbolFile/PDB/Inputs/FunctionNestedBlockTest.cpp b/lit/SymbolFile/PDB/Inputs/FunctionNestedBlockTest.cpp deleted file mode 100644 index 62e201df5fef..000000000000 --- a/lit/SymbolFile/PDB/Inputs/FunctionNestedBlockTest.cpp +++ /dev/null @@ -1,8 +0,0 @@ -int main() { - auto r = 0; - for (auto i = 1; i <= 10; i++) { - r += i & 1 + (i - 1) & 1 - 1; - } - - return r; -} diff --git a/lit/SymbolFile/PDB/Inputs/PointerTypeTest.cpp b/lit/SymbolFile/PDB/Inputs/PointerTypeTest.cpp deleted file mode 100644 index 6612c30f00df..000000000000 --- a/lit/SymbolFile/PDB/Inputs/PointerTypeTest.cpp +++ /dev/null @@ -1,23 +0,0 @@ -int main() { - // Test pointer to array. - int array[2][4]; - int(*array_pointer)[2][4] = &array; - - struct ST { - int a; - int f(int x) { return 1; } - }; - - ST s = {10}; - - // Test pointer to a local. - int *p_int = &s.a; - - // Test pointer to data member. - int ST::*p_member_field = &ST::a; - - // Test pointer to member function. - int (ST::*p_member_method)(int) = &ST::f; - - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp b/lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp deleted file mode 100644 index de13a5b430c1..000000000000 --- a/lit/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// typedef -typedef unsigned long ULongArrayTypedef[10]; -ULongArrayTypedef ULongArrayVar; - -typedef long double*& RefTypedef; -long double* LongDoublePtrVar = 0; -RefTypedef RefVar = LongDoublePtrVar; - -typedef long long (*FuncPtrTypedef)(int&, unsigned char**, short[], const double, volatile bool); -FuncPtrTypedef FuncVar; - -typedef char (*VarArgsFuncTypedef)(void*, long, unsigned short, unsigned int, ...); -VarArgsFuncTypedef VarArgsFuncVar; - -typedef float (*VarArgsFuncTypedefA)(...); -VarArgsFuncTypedefA VarArgsFuncVarA; - -// unscoped enum -enum Enum { RED, GREEN, BLUE }; -Enum EnumVar; - -enum EnumConst { LOW, NORMAL = 10, HIGH }; -EnumConst EnumConstVar; - -enum EnumEmpty {}; -EnumEmpty EnumEmptyVar; - -enum EnumUChar : unsigned char { ON, OFF, AUTO }; -EnumUChar EnumCharVar; - -// scoped enum -enum class EnumClass { YES, NO, DEFAULT }; -EnumClass EnumClassVar; - -enum struct EnumStruct { red, blue, black }; -EnumStruct EnumStructVar; - -typedef signed char SCharTypedef; -SCharTypedef SCVar; - -typedef char16_t WChar16Typedef; -WChar16Typedef WC16Var; - -typedef char32_t WChar32Typedef; -WChar32Typedef WC32Var; - -typedef wchar_t WCharTypedef; -WCharTypedef WCVar; - -int main() { - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/TypeQualsTest.cpp b/lit/SymbolFile/PDB/Inputs/TypeQualsTest.cpp deleted file mode 100644 index bedafcdacfc3..000000000000 --- a/lit/SymbolFile/PDB/Inputs/TypeQualsTest.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// Rank > 0 array -typedef volatile int* RankNArray[10][100]; -RankNArray ArrayVar; - -typedef int __unaligned *UnalignedTypedef; -UnalignedTypedef UnVar; - -typedef long* __restrict RestrictTypedef; -RestrictTypedef RestrictVar; - -void Func1(const int* a, int const* b, const int ** const c, const int* const* d) { - return; -} - -void Func2(volatile int* a, int volatile* b) { - return; -} - -void Func3(int*& a, int& b, const int&c, int&& d) { - return; -} - -void Func4(int* __unaligned a, __unaligned int* b) { - return; -} - -void Func5(int a, int* __restrict b, int& __restrict c) { - return; -} - -void Func6(const volatile int* __restrict b) { - return; -} - -// LValue -typedef int& IntRef; -int x = 0; -IntRef IVar = x; - -// RValue -typedef int&& IIRef; -IIRef IIVar = int(1); - -int main() { - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/UdtLayoutTest.cpp b/lit/SymbolFile/PDB/Inputs/UdtLayoutTest.cpp deleted file mode 100644 index 59a4fc585d77..000000000000 --- a/lit/SymbolFile/PDB/Inputs/UdtLayoutTest.cpp +++ /dev/null @@ -1,61 +0,0 @@ -struct A { - explicit A(int u) { _u._u3 = u; } - A(const A &) = default; - virtual ~A() = default; - -private: - union U { - char _u1; - short _u2; - int _u3; - }; - - A::U _u; -}; - -#pragma pack(push, 1) -template <int I> struct B : public virtual A { - B(char a, unsigned short b, int c) : A(a + b + c), _a(a), _b(b), _c(c) {} - -private: - char _a; - unsigned short : 3; - unsigned short _b : 6; - unsigned short : 4; - int _c; -}; -#pragma pack(pop) - -#pragma pack(push, 16) -class C : private virtual B<0>, public virtual B<1>, private B<2>, public B<3> { -public: - C(char x, char y, char z) - : A(x - y + z), B<0>(x, y, z), B<1>(x * 2, y * 2, z * 2), - B<2>(x * 3, y * 3, z * 3), B<3>(x * 4, y * 4, z * 4), _x(x * 5), - _y(y * 5), _z(z * 5) {} - - static int abc; - -private: - int _x; - short _y; - char _z; -}; -int C::abc = 123; -#pragma pack(pop) - -class List { -public: - List() = default; - List(List *p, List *n, C v) : Prev(p), Next(n), Value(v) {} - -private: - List *Prev = nullptr; - List *Next = nullptr; - C Value{1, 2, 3}; -}; - -int main() { - List ls[16]; - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/UdtLayoutTest.script b/lit/SymbolFile/PDB/Inputs/UdtLayoutTest.script deleted file mode 100644 index 91de55f4ade4..000000000000 --- a/lit/SymbolFile/PDB/Inputs/UdtLayoutTest.script +++ /dev/null @@ -1,4 +0,0 @@ -breakpoint set --file UdtLayoutTest.cpp --line 60 -run -target variable -frame variable diff --git a/lit/SymbolFile/PDB/Inputs/VBases.cpp b/lit/SymbolFile/PDB/Inputs/VBases.cpp deleted file mode 100644 index a5e84bd36571..000000000000 --- a/lit/SymbolFile/PDB/Inputs/VBases.cpp +++ /dev/null @@ -1,16 +0,0 @@ -struct A { - char a = 1; -}; - -struct B { - int b = 2; -}; - -struct C : virtual A, virtual B { - short c = 3; -}; - -int main() { - C c{}; - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/VBases.script b/lit/SymbolFile/PDB/Inputs/VBases.script deleted file mode 100644 index 8675890b76e1..000000000000 --- a/lit/SymbolFile/PDB/Inputs/VBases.script +++ /dev/null @@ -1,7 +0,0 @@ -breakpoint set --file VBases.cpp --line 15 - -run - -print c - -frame variable c
\ No newline at end of file diff --git a/lit/SymbolFile/PDB/Inputs/VariablesLocationsTest.cpp b/lit/SymbolFile/PDB/Inputs/VariablesLocationsTest.cpp deleted file mode 100644 index 54d54c0d56a6..000000000000 --- a/lit/SymbolFile/PDB/Inputs/VariablesLocationsTest.cpp +++ /dev/null @@ -1,15 +0,0 @@ -int g_var = 2222; - -void __fastcall foo(short arg_0, float arg_1) { - char loc_0 = 'x'; - double loc_1 = 0.5678; -} - -int main(int argc, char *argv[]) { - bool loc_0 = true; - int loc_1 = 3333; - - foo(1111, 0.1234); - - return 0; -} diff --git a/lit/SymbolFile/PDB/Inputs/VariablesLocationsTest.script b/lit/SymbolFile/PDB/Inputs/VariablesLocationsTest.script deleted file mode 100644 index 7058f29ae1c1..000000000000 --- a/lit/SymbolFile/PDB/Inputs/VariablesLocationsTest.script +++ /dev/null @@ -1,16 +0,0 @@ -breakpoint set --file VariablesLocationsTest.cpp --line 6 - -run - -target variable g_var - -frame variable arg_0 -frame variable arg_1 - -frame variable loc_0 -frame variable loc_1 - -frame select 1 - -frame variable loc_0 -frame variable loc_1 diff --git a/lit/SymbolFile/PDB/Inputs/VariablesTest.cpp b/lit/SymbolFile/PDB/Inputs/VariablesTest.cpp deleted file mode 100644 index 304d90566091..000000000000 --- a/lit/SymbolFile/PDB/Inputs/VariablesTest.cpp +++ /dev/null @@ -1,50 +0,0 @@ -typedef int IntTypedef; -IntTypedef g_IntVar; // Testing globals. - -typedef enum Enum { // Testing constants. - RED, - GREEN, - BLUE -} EnumTypedef; -EnumTypedef g_EnumVar; // Testing members. - -// FIXME: `sg_IntVar` appears both in global scope's children and compiland's -// children but with different symbol's id. -static int sg_IntVar = -1; // Testing file statics. - -// FIXME: `g_Const` appears both in global scope's children and compiland's -// children but with different symbol's id. -const int g_Const = 0x88; // Testing constant data. -const int *g_pConst = &g_Const; // Avoid optimizing the const away - -thread_local int g_tls = 0; // Testing thread-local storage. - -class Class { - static int m_StaticClassMember; -public: - explicit Class(int a) {} - void Func() {} -}; -int Class::m_StaticClassMember = 10; // Testing static class members. -Class ClassVar(1); - -int f(int var_arg1, int var_arg2) { // Testing parameters. - long same_name_var = -1; - return 1; -} - -int same_name_var = 100; -int main() { - int same_name_var = 0; // Testing locals. - const char local_const = 0x1; - - // FIXME: 'local_CString` is not found through compiland's children. - const char local_CString[] = "abc"; // Testing constant string. - const char *local_pCString = local_CString; // Avoid optimizing the const away - - int a = 10; - a++; - - ClassVar.Func(); - return 0; -} diff --git a/lit/SymbolFile/PDB/ast-restore.test b/lit/SymbolFile/PDB/ast-restore.test deleted file mode 100644 index 2158fc1b3d44..000000000000 --- a/lit/SymbolFile/PDB/ast-restore.test +++ /dev/null @@ -1,82 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=msvc --nodefaultlib --output=%t.exe %S/Inputs/AstRestoreTest.cpp -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=ENUM %s -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=GLOBAL %s -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=BASE %s -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=CLASS %s -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=INNER %s -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=TEMPLATE %s -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=FOO %s -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=MAIN %s - -ENUM: Module: {{.*}} -ENUM: namespace N0 { -ENUM: namespace N1 { -ENUM: namespace { -ENUM: enum Enum { -ENUM: Enum_0, -ENUM: Enum_1, -ENUM: Enum_2, -ENUM: Enum_3 -ENUM: }; -ENUM: } -ENUM: } -ENUM: } - -GLOBAL: Module: {{.*}} -GLOBAL: namespace N0 { -GLOBAL: namespace N1 { -GLOBAL: N0::N1::(anonymous namespace)::Enum Global; -GLOBAL: } -GLOBAL: } - -BASE: Module: {{.*}} -BASE: namespace N0 { -BASE: namespace N1 { -BASE: struct Base { -BASE: N0::N1::(anonymous namespace)::Enum m_e; -BASE: }; -BASE: } -BASE: } - -CLASS: Module: {{.*}} -CLASS: namespace N0 { -CLASS: namespace N1 { -CLASS: class Class : public N0::N1::Base { -CLASS-DAG: const N0::N1::(anonymous namespace)::Enum m_ce; -CLASS-DAG: static int ClassStatic; -CLASS-DAG: N0::N1::Class::Inner m_inner; -CLASS-DAG: {{(inline )?}}Class(N0::N1::(anonymous namespace)::Enum); -CLASS-DAG: static {{(inline )?}}int StaticFunc(const N0::N1::Class &); -CLASS-DAG: {{(inline )?}}int PrivateFunc(const N0::N1::Class::Inner &); -CLASS: }; -CLASS: } -CLASS: } - -INNER: Module: {{.*}} -INNER: namespace N0 { -INNER: namespace N1 { -INNER: class Class : public N0::N1::Base { -INNER: struct Inner { -INNER: char x; -INNER: short y; -INNER: int z; -INNER: }; -INNER: }; -INNER: } -INNER: } - -TEMPLATE: Module: {{.*}} -TEMPLATE: struct Template<N0::N1::Class> { -TEMPLATE: inline void TemplateFunc<1>(); -TEMPLATE: }; - -FOO: Module: {{.*}} -FOO: namespace N0 { -FOO: namespace N1 { -FOO: void foo(); -FOO: } -FOO: } - -MAIN: Module: {{.*}} -MAIN: int main(); diff --git a/lit/SymbolFile/PDB/calling-conventions.test b/lit/SymbolFile/PDB/calling-conventions.test deleted file mode 100644 index a85dc65ff04d..000000000000 --- a/lit/SymbolFile/PDB/calling-conventions.test +++ /dev/null @@ -1,10 +0,0 @@ -REQUIRES: system-windows, lld -RUN: %build --compiler=clang-cl --arch=32 --nodefaultlib --output=%t.exe %S/Inputs/CallingConventionsTest.cpp -RUN: lldb-test symbols -dump-ast %t.exe | FileCheck %s - -CHECK: Module: {{.*}} -CHECK-DAG: int (*FuncCCallPtr)(); -CHECK-DAG: int (*FuncStdCallPtr)() __attribute__((stdcall)); -CHECK-DAG: int (*FuncFastCallPtr)() __attribute__((fastcall)); -CHECK-DAG: int (*FuncVectorCallPtr)() __attribute__((vectorcall)); -CHECK-DAG: int (S::*FuncThisCallPtr)() __attribute__((thiscall)); diff --git a/lit/SymbolFile/PDB/class-layout.test b/lit/SymbolFile/PDB/class-layout.test deleted file mode 100644 index 5c0194485d76..000000000000 --- a/lit/SymbolFile/PDB/class-layout.test +++ /dev/null @@ -1,92 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=clang-cl --mode=compile --arch=32 --nodefaultlib --output=%T/ClassLayoutTest.cpp.obj %S/Inputs/ClassLayoutTest.cpp -RUN: %build --compiler=msvc --mode=link --arch=32 --nodefaultlib --output=%T/ClassLayoutTest.cpp.exe %T/ClassLayoutTest.cpp.obj -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=ENUM %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=UNION %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=STRUCT %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=COMPLEX %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=LIST %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=UNNAMED-STRUCT %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=BASE %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=FRIEND %s -RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=CLASS %s - -CHECK: Module [[MOD:.*]] -CHECK: {{^[0-9A-F]+}}: SymbolVendor pdb ([[MOD]]) -CHECK: {{^[0-9A-F]+}}: CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\ClassLayoutTest.cpp' - -ENUM: name = "Enum", size = 4, decl = ClassLayoutTest.cpp:5 -ENUM-SAME: enum Enum { -ENUM: RED, -ENUM: GREEN, -ENUM: BLUE -ENUM:} - -UNION: name = "Union", size = 4, decl = ClassLayoutTest.cpp:9 -UNION-SAME: union Union { -UNION: short Row; -UNION: unsigned short Col; -UNION: int Line : 16; -UNION: long Table; -UNION:} - -STRUCT: name = "Struct", size = 64, decl = ClassLayoutTest.cpp:22 -STRUCT-SAME: struct Struct { -STRUCT: bool A; -STRUCT: unsigned char UCharVar; -STRUCT: unsigned int UIntVar; -STRUCT: long long LongLongVar; -STRUCT: Enum EnumVar; -STRUCT: int array[10]; -STRUCT:} - -COMPLEX: name = "Complex", size = 368, decl = ClassLayoutTest.cpp:33 -COMPLEX-SAME: struct Complex { -COMPLEX: _List *array[90]; -COMPLEX: int x; -COMPLEX: int a; -COMPLEX: float b; -COMPLEX:} - -LIST: name = "_List", size = 12, decl = ClassLayoutTest.cpp:45 -LIST-SAME: struct _List { -LIST: _List *current; -LIST: _List *previous; -LIST: _List *next; -LIST:} - -UNNAMED-STRUCT: name = "UnnamedStruct", size = 4, decl = ClassLayoutTest.cpp:52 -UNNAMED-STRUCT-SAME: struct UnnamedStruct { -UNNAMED-STRUCT: int a; -UNNAMED-STRUCT:} - -BASE: name = "Base", size = 4, decl = ClassLayoutTest.cpp:59 -BASE-SAME: class Base { -BASE: int a; -BASE: Base(); -BASE: ~Base(); -BASE: int Get(); -BASE:} - -FRIEND: name = "Friend", size = 1, decl = ClassLayoutTest.cpp:70 -FRIEND-SAME: class Friend { -FRIEND: int f(); -FRIEND: } - -CLASS: name = "Class", size = 88, decl = ClassLayoutTest.cpp:74 -CLASS-SAME: class Class : public MemberTest::Base { -CLASS: static int m_static; -CLASS: int m_public; -CLASS: Struct m_struct; -CLASS: Union m_union; -CLASS: int m_private; -CLASS: int m_protected; -CLASS: Class(); -CLASS: Class(int); -CLASS: ~Class(); -CLASS: static int {{.*}}StaticMemberFunc(int, ...); -CLASS: int Get(); -CLASS: int f(MemberTest::Friend); -CLASS: bool operator==(const MemberTest::Class &) -CLASS:} diff --git a/lit/SymbolFile/PDB/compilands.test b/lit/SymbolFile/PDB/compilands.test deleted file mode 100644 index d719ab7669d8..000000000000 --- a/lit/SymbolFile/PDB/compilands.test +++ /dev/null @@ -1,11 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=clang-cl --mode=compile --arch=32 --nodefaultlib --output=%T/CompilandsTest.cpp.obj %S/Inputs/CompilandsTest.cpp -RUN: %build --compiler=msvc --mode=link --arch=32 --nodefaultlib --output=%T/CompilandsTest.cpp.exe %T/CompilandsTest.cpp.obj -RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols %T/CompilandsTest.cpp.exe | FileCheck %s -RUN: env LLDB_USE_NATIVE_PDB_READER=0 lldb-test symbols %T/CompilandsTest.cpp.exe | FileCheck %s - -; Link default libraries - -CHECK: Module [[CU:.*]] -CHECK: {{^[0-9A-F]+}}: SymbolVendor pdb ([[CU]]) -CHECK: {{^[0-9A-F]+}}: CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\CompilandsTest.cpp' diff --git a/lit/SymbolFile/PDB/enums-layout.test b/lit/SymbolFile/PDB/enums-layout.test deleted file mode 100644 index 79efb259663d..000000000000 --- a/lit/SymbolFile/PDB/enums-layout.test +++ /dev/null @@ -1,45 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=msvc --arch=32 --nodefaultlib --output=%T/SimpleTypesTest.cpp.enums.exe %S/Inputs/SimpleTypesTest.cpp -RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=ENUM %s -RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=ENUM_CONST %s -RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=ENUM_EMPTY %s -RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=ENUM_UCHAR %s -RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=ENUM_CLASS %s -RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=ENUM_STRUCT %s - -; FIXME: PDB does not have information about scoped enumeration (Enum class) so the -; compiler type used is the same as the one for unscoped enumeration. - -ENUM: Type{{.*}} , name = "Enum", size = 4, decl = simpletypestest.cpp:19, compiler_type = {{.*}} enum Enum { -ENUM_NEXT: RED, -ENUM_NEXT: GREEN, -ENUM_NEXT: BLUE -ENUM_NEXT:} - -ENUM_CONST: Type{{.*}} , name = "EnumConst", size = 4, decl = simpletypestest.cpp:22, compiler_type = {{.*}} enum EnumConst { -ENUM_CONST-NEXT: LOW, -ENUM_CONST-NEXT: NORMAL, -ENUM_CONST-NEXT: HIGH -ENUM_CONST-NEXT:} - -ENUM_EMPTY: Type{{.*}} , name = "EnumEmpty", size = 4, decl = simpletypestest.cpp:25, compiler_type = {{.*}} enum EnumEmpty { -ENUM_EMPTY-NEXT:} - -ENUM_UCHAR: Type{{.*}} , name = "EnumUChar", size = 1, decl = simpletypestest.cpp:28, compiler_type = {{.*}} enum EnumUChar { -ENUM_UCHAR-NEXT: ON, -ENUM_UCHAR-NEXT: OFF, -ENUM_UCHAR-NEXT: AUTO -ENUM_UCHAR-NEXT:} - -; Note that `enum EnumClass` is tested instead of `enum class EnumClass` -ENUM_CLASS: Type{{.*}} , name = "EnumClass", size = 4, decl = simpletypestest.cpp:32, compiler_type = {{.*}} enum EnumClass { -ENUM_CLASS-NEXT: YES, -ENUM_CLASS-NEXT: NO, -ENUM_CLASS-NEXT: DEFAULT -ENUM_CLASS-NEXT:} - -ENUM_STRUCT: Type{{.*}} , name = "EnumStruct", size = 4, decl = simpletypestest.cpp:35, compiler_type = {{.*}} enum EnumStruct { -ENUM_STRUCT-NEXT: red, -ENUM_STRUCT-NEXT: blue, -ENUM_STRUCT-NEXT: black -ENUM_STRUCT-NEXT:} diff --git a/lit/SymbolFile/PDB/expressions.test b/lit/SymbolFile/PDB/expressions.test deleted file mode 100644 index 49016196117e..000000000000 --- a/lit/SymbolFile/PDB/expressions.test +++ /dev/null @@ -1,35 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=msvc --nodefaultlib --output=%t.exe %S/Inputs/ExpressionsTest.cpp -RUN: %lldb -b -s %S/Inputs/ExpressionsTest0.script -s %S/Inputs/ExpressionsTest1.script -s %S/Inputs/ExpressionsTest2.script -- %t.exe 2>&1 | FileCheck %s - -// Check the variable value through `print` -CHECK: (lldb) print result -CHECK: (char) $0 = '\x1c' - -// Call the function just like in the code -CHECK: (lldb) print N0::N1::sum(N0::N1::buf1, sizeof(N0::N1::buf1)) -CHECK: (char) $1 = '\x1c' - -// Try the relaxed namespaces search -CHECK: (lldb) print N1::sum(N1::buf1, sizeof(N1::buf1)) -CHECK: (char) $2 = '\x1c' - -// Try the relaxed variables and functions search -CHECK: (lldb) print sum(buf1, sizeof(buf1)) -CHECK: (char) $3 = '\x1c' - -// Make a crash during expression calculation -CHECK: (lldb) print sum(buf1, 1000000000) -CHECK: The process has been returned to the state before expression evaluation. - -// Make one more crash -CHECK: (lldb) print sum(buf0, 1) -CHECK: The process has been returned to the state before expression evaluation. - -// Check if the process state was restored succesfully -CHECK: (lldb) print sum(buf0, result - 28) -CHECK: (char) $4 = '\0' - -// Call the function with arbitrary parameters -CHECK: (lldb) print sum(buf1 + 3, 3) -CHECK: (char) $5 = '\f' diff --git a/lit/SymbolFile/PDB/func-symbols.test b/lit/SymbolFile/PDB/func-symbols.test deleted file mode 100644 index fbbf5ddfb856..000000000000 --- a/lit/SymbolFile/PDB/func-symbols.test +++ /dev/null @@ -1,46 +0,0 @@ -REQUIRES: system-windows, lld -RUN: %build --compiler=clang-cl --arch=32 --nodefaultlib --output=%T/FuncSymbolsTest.exe %S/Inputs/FuncSymbolsTestMain.cpp %S/Inputs/FuncSymbols.cpp -RUN: lldb-test symbols %T/FuncSymbolsTest.exe | FileCheck --check-prefix=CHECK-ONE %s -RUN: lldb-test symbols %T/FuncSymbolsTest.exe | FileCheck --check-prefix=CHECK-TWO %s - -; Link multiple objects -; In this test, We don't check demangled name of a mangled function. - -CHECK-ONE: Module [[MD:.*]] -CHECK-ONE-DAG: {{.*}}: SymbolVendor pdb ([[MD]]) -CHECK-ONE-DAG: [[TY0:.*]]: Type{[[UID0:.*]]} , name = "Func_arg_array", decl = FuncSymbolsTestMain.cpp:3, compiler_type = {{.*}} int (int *) -CHECK-ONE-DAG: [[TY1:.*]]: Type{[[UID1:.*]]} , name = "Func_arg_void", decl = FuncSymbolsTestMain.cpp:4, compiler_type = {{.*}} void (void) -CHECK-ONE-DAG: [[TY2:.*]]: Type{[[UID2:.*]]} , name = "Func_arg_none", decl = FuncSymbolsTestMain.cpp:5, compiler_type = {{.*}} void (void) -CHECK-ONE-DAG: [[TY3:.*]]: Type{[[UID3:.*]]} , name = "Func_varargs", decl = FuncSymbolsTestMain.cpp:6, compiler_type = {{.*}} void (...) -CHECK-ONE-DAG: [[TY4:.*]]: Type{[[UID4:.*]]} , name = "Func", decl = FuncSymbolsTestMain.cpp:28, compiler_type = {{.*}} void (char, int) -CHECK-ONE-DAG: [[TY5:.*]]: Type{[[UID5:.*]]} , name = "main", decl = FuncSymbolsTestMain.cpp:44, compiler_type = {{.*}} int (void) -CHECK-ONE-DAG: [[TY6:.*]]: Type{[[UID6:.*]]} , name = "Func", decl = FuncSymbolsTestMain.cpp:24, compiler_type = {{.*}} void (int, const long, volatile _Bool, ...) -CHECK-ONE-DAG: [[TY7:.*]]: Type{[[UID7:.*]]} , name = "StaticFunction", decl = FuncSymbolsTestMain.cpp:35, compiler_type = {{.*}} long (int) -CHECK-ONE-DAG: [[TY8:.*]]: Type{[[UID8:.*]]} , name = "Func", decl = FuncSymbolsTestMain.cpp:12, compiler_type = {{.*}} int (int, ...) -CHECK-ONE-DAG: [[TY9:.*]]: Type{[[UID9:.*]]} , name = "TemplateFunc<1,int>", decl = FuncSymbolsTestMain.cpp:18, compiler_type = {{.*}} void (int) -CHECK-ONE-DAG: [[TY10:.*]]: Type{[[UID10:.*]]} , name = "TemplateFunc<1,int,int,int>", decl = FuncSymbolsTestMain.cpp:18, compiler_type = {{.*}} void (int, int, int) -CHECK-ONE-DAG: [[TY11:.*]]: Type{[[UID11:.*]]} , name = "InlinedFunction", decl = FuncSymbolsTestMain.cpp:40, compiler_type = {{.*}} void (long) - -CHECK-ONE: {{.*}}: CompileUnit{{.*}}, language = "c++", file = '{{.*}}\FuncSymbolsTestMain.cpp' -CHECK-ONE-DAG: Function{[[UID0]]}, mangled = ?Func_arg_array@@YAHQAH@Z, demangled = {{.*}}, type = [[TY0]] -CHECK-ONE-DAG: Function{[[UID1]]}, mangled = ?Func_arg_void@@YAXXZ, demangled = {{.*}}, type = [[TY1]] -CHECK-ONE-DAG: Function{[[UID2]]}, mangled = ?Func_arg_none@@YAXXZ, demangled = {{.*}}, type = [[TY2]] -CHECK-ONE-DAG: Function{[[UID3]]}, mangled = ?Func_varargs@@YAXZZ, demangled = {{.*}}, type = [[TY3]] -CHECK-ONE-DAG: Function{[[UID4]]}, mangled = ?Func@NS@@YAXDH@Z, demangled = {{.*}}, type = [[TY4]] -CHECK-ONE-DAG: Function{[[UID5]]}, mangled = _main, demangled = {{.*}}, type = [[TY5]] -CHECK-ONE-DAG: Function{[[UID6]]}, demangled = {{.*}}`anonymous namespace'::Func{{.*}}, type = [[TY6]] -CHECK-ONE-DAG: Function{[[UID7]]}, demangled = {{.*}}StaticFunction{{.*}}, type = [[TY7]] -CHECK-ONE-DAG: Function{[[UID8]]}, mangled = ?Func@A@MemberTest@@QAAHHZZ, demangled = {{.*}}, type = [[TY8]] -CHECK-ONE-DAG: Function{[[UID9]]}, mangled = ??$TemplateFunc@$00H@@YAXH@Z, demangled = {{.*}}, type = [[TY9]] -CHECK-ONE-DAG: Function{[[UID10]]}, mangled = ??$TemplateFunc@$00HHH@@YAXHHH@Z, demangled = {{.*}}, type = [[TY10]] -CHECK-ONE-DAG: Function{[[UID11]]}, mangled = ?InlinedFunction@@YAXJ@Z, demangled = {{.*}}, type = [[TY11]] - -; We expect new types observed in another compile unit -CHECK-TWO-DAG: [[TY30:.*]]: Type{[[UID30:.*]]} , name = "FunctionCall", decl = FuncSymbols.cpp:13, compiler_type = {{.*}} void (void) -CHECK-TWO-DAG: [[TY31:.*]]: Type{[[UID31:.*]]} , name = "StaticFunction", decl = FuncSymbols.cpp:4, compiler_type = {{.*}} long (int) -CHECK-TWO-DAG: [[TY32:.*]]: Type{[[UID32:.*]]} , name = "InlinedFunction", decl = FuncSymbols.cpp:10, compiler_type = {{.*}} int (long) - -CHECK-TWO: {{.*}}: CompileUnit{{.*}}, language = "c++", file = '{{.*}}\FuncSymbols.cpp' -CHECK-TWO-DAG: Function{[[UID30]]}, mangled = ?FunctionCall@@YAXXZ, demangled = {{.*}}, type = [[TY30]] -CHECK-TWO-DAG: Function{[[UID31]]}, demangled = {{.*}}`anonymous namespace'::StaticFunction{{.*}}, type = [[TY31]] -CHECK-TWO-DAG: Function{[[UID32]]}, demangled = {{.*}}InlinedFunction{{.*}}, type = [[TY32]] diff --git a/lit/SymbolFile/PDB/function-level-linking.test b/lit/SymbolFile/PDB/function-level-linking.test deleted file mode 100644 index 37b2cbc761b8..000000000000 --- a/lit/SymbolFile/PDB/function-level-linking.test +++ /dev/null @@ -1,5 +0,0 @@ -REQUIRES: system-windows, lld -RUN: %clang_cl /c /Zi /Gy %S/Inputs/FunctionLevelLinkingTest.cpp /o %t.obj -RUN: lld-link /debug:full /nodefaultlib /entry:main /order:@%S/Inputs/FunctionLevelLinkingTest.ord %t.obj /out:%t.exe -RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols -verify %t.exe -RUN: env LLDB_USE_NATIVE_PDB_READER=0 lldb-test symbols -verify %t.exe diff --git a/lit/SymbolFile/PDB/function-nested-block.test b/lit/SymbolFile/PDB/function-nested-block.test deleted file mode 100644 index 9057d01c2584..000000000000 --- a/lit/SymbolFile/PDB/function-nested-block.test +++ /dev/null @@ -1,11 +0,0 @@ -REQUIRES: system-windows, lld -RUN: %build --compiler=clang-cl --nodefaultlib --output=%t.exe %S/Inputs/FunctionNestedBlockTest.cpp -RUN: lldb-test symbols -find=function -file FunctionNestedBlockTest.cpp -line 4 %t.exe | FileCheck --check-prefix=CHECK-FUNCTION %s -RUN: lldb-test symbols -find=block -file FunctionNestedBlockTest.cpp -line 4 %t.exe | FileCheck --check-prefix=CHECK-BLOCK %s - -CHECK-FUNCTION: Found 1 functions: -CHECK-FUNCTION: name = "{{.*}}", mangled = "{{_?}}main" - -CHECK-BLOCK: Found 1 blocks: -CHECK-BLOCK: Blocks: id = {{.*}}, range = {{.*}} -CHECK-BLOCK: id = {{.*}}, range = {{.*}} diff --git a/lit/SymbolFile/PDB/pointers.test b/lit/SymbolFile/PDB/pointers.test deleted file mode 100644 index a8f84f14783d..000000000000 --- a/lit/SymbolFile/PDB/pointers.test +++ /dev/null @@ -1,38 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=clang-cl --mode=compile --arch=32 --nodefaultlib --output=%T/PointerTypeTest.cpp.obj %S/Inputs/PointerTypeTest.cpp -RUN: %build --compiler=msvc --mode=link --arch=32 --nodefaultlib --output=%T/PointerTypeTest.cpp.exe %T/PointerTypeTest.cpp.obj -RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck %s -RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck --check-prefix=MAIN-ST-F %s -RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck --check-prefix=MAIN-ST %s -RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck --check-prefix=MAIN %s -RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck --check-prefix=F %s - -CHECK: Module [[MOD:.*]] -CHECK: {{^[0-9A-F]+}}: CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\PointerTypeTest.cpp' - -MAIN-ST-F: name = "f" -MAIN-ST-F-SAME: decl = PointerTypeTest.cpp:8 -MAIN-ST-F-SAME: compiler_type = {{.*}} int (int) - -MAIN-ST: name = "ST", size = 4, decl = PointerTypeTest.cpp:6, compiler_type = {{.*}} struct ST { -MAIN-ST-NEXT: int a; -MAIN-ST-NEXT: int {{.*}}f(int); -MAIN-ST-NEXT:} - -MAIN: Function{[[FID1:.*]]}, mangled = _main -MAIN-NEXT: Block{[[FID1]]} -MAIN: Variable{{.*}}, name = "array_pointer" -MAIN-SAME: (int (*)[2][4]), scope = local -MAIN: Variable{{.*}}, name = "p_int" -MAIN-SAME: (int *), scope = local -MAIN: Variable{{.*}}, name = "p_member_field" -MAIN-SAME: (int ST::*), scope = local -MAIN: Variable{{.*}}, name = "p_member_method" -MAIN-SAME: (int (ST::*)(int) __attribute__((thiscall))), scope = local - -F: Function{[[FID2:.*]]}, demangled = {{.*}}f(int) -F-NEXT: Block{[[FID2]]} -F: Variable{{.*}}, name = "this" -F-SAME: (ST *), scope = parameter, location = {{.*}}, artificial -F: Variable{{.*}}, name = "x" -F-SAME: (int), scope = parameter, decl = PointerTypeTest.cpp:8 diff --git a/lit/SymbolFile/PDB/type-quals.test b/lit/SymbolFile/PDB/type-quals.test deleted file mode 100644 index 734509f78345..000000000000 --- a/lit/SymbolFile/PDB/type-quals.test +++ /dev/null @@ -1,39 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=clang-cl --mode=compile --arch=32 --nodefaultlib --output=%T/TypeQualsTest.cpp.obj %S/Inputs/TypeQualsTest.cpp -RUN: %build --compiler=msvc --mode=link --arch=32 --nodefaultlib --output=%T/TypeQualsTest.cpp.exe %T/TypeQualsTest.cpp.obj -RUN: lldb-test symbols %T/TypeQualsTest.cpp.exe | FileCheck %s - -CHECK: Module [[MOD:.*]] -CHECK-DAG: {{^[0-9A-F]+}}: SymbolVendor pdb ([[MOD]]) -CHECK-DAG: Type{{.*}} , name = "const int", size = 4, compiler_type = {{.*}} const int -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} const int * -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} const int **const -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} const int *const -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} const int *const * -CHECK-DAG: Type{{.*}} , name = "Func1", {{.*}}, compiler_type = {{.*}} void (const int *, const int *, const int **const, const int *const *) - -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} volatile int * -CHECK-DAG: Type{{.*}} , name = "Func2", {{.*}}, compiler_type = {{.*}} void (volatile int *, volatile int *) - -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int * -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int *& -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int && -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int & -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} const int & -CHECK-DAG: Type{{.*}} , name = "Func3", {{.*}}, compiler_type = {{.*}} void (int *&, int &, const int &, int &&) - -// FIXME: __unaligned is not supported. -CHECK-DAG: Type{{.*}} , name = "Func4", {{.*}}, compiler_type = {{.*}} void (int *, int *) - -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int *__restrict -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int &__restrict -CHECK-DAG: Type{{.*}} , name = "Func5", {{.*}}, compiler_type = {{.*}} void (int, int *__restrict, int &__restrict) - -CHECK-DAG: Type{{.*}} , name = "Func6", {{.*}}, compiler_type = {{.*}} void (const volatile int *__restrict) - -CHECK-DAG: Type{{.*}} , size = 400, compiler_type = {{.*}} volatile int *[100] -CHECK-DAG: Type{{.*}} , size = 4000, compiler_type = {{.*}} volatile int *[10][100] - -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} long *__restrict - -CHECK-DAG: {{^[0-9A-F]+}}: CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\TypeQualsTest.cpp' diff --git a/lit/SymbolFile/PDB/typedefs.test b/lit/SymbolFile/PDB/typedefs.test deleted file mode 100644 index caf23a8c1664..000000000000 --- a/lit/SymbolFile/PDB/typedefs.test +++ /dev/null @@ -1,59 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=msvc --arch=32 --nodefaultlib --output=%T/SimpleTypesTest.cpp.typedefs.exe %S/Inputs/SimpleTypesTest.cpp -RUN: lldb-test symbols %T/SimpleTypesTest.cpp.typedefs.exe | FileCheck %s - -; Generate 32-bit target - -; FIXME: PDB does not have line information for typedef statements so source -; and line information for them is not tested. - -; Note, types `long double` and `double` have same bit size in MSVC and there -; is no information in the PDB to distinguish them. So the compiler type for -; both of them is the same. - -CHECK: Module [[MOD:.*]] -CHECK: {{^[0-9A-F]+}}: SymbolVendor pdb ([[MOD]]) -CHECK-DAG: name = "char32_t", size = 4, compiler_type = {{.*}} char32_t -CHECK-DAG: name = "char16_t", size = 2, compiler_type = {{.*}} char16_t -CHECK-DAG: Type{{.*}} , name = "unsigned long", size = 4, compiler_type = {{.*}} unsigned long -CHECK-DAG: Type{{.*}} , size = 40, compiler_type = {{.*}} unsigned long [10] -CHECK-DAG: Type{{.*}} , name = "ULongArrayTypedef", compiler_type = {{.*}} typedef ULongArrayTypedef - -; Note: compiler_type of `long double` is represented by the one for `double` -CHECK-DAG: Type{{.*}} , name = "double", size = 8, compiler_type = {{.*}} double -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} double * -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} double *& -CHECK-DAG: Type{{.*}} , name = "RefTypedef", compiler_type = {{.*}} typedef RefTypedef - -CHECK-DAG: Type{{.*}} , name = "wchar_t", size = 2, compiler_type = {{.*}} wchar_t - -CHECK-DAG: Type{{.*}} , name = "int", size = 4, compiler_type = {{.*}} int -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int & -CHECK-DAG: Type{{.*}} , name = "unsigned char", size = 1, compiler_type = {{.*}} unsigned char -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} unsigned char * -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} unsigned char ** -CHECK-DAG: Type{{.*}} , name = "short", size = 2, compiler_type = {{.*}} short -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} short * -CHECK-DAG: Type{{.*}} , name = "const double", size = 8, compiler_type = {{.*}} const double -CHECK-DAG: Type{{.*}} , name = "volatile bool", size = 1, compiler_type = {{.*}} volatile _Bool -CHECK-DAG: Type{{.*}} , name = "long long", size = 8, compiler_type = {{.*}} long long -CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} long long (int &, unsigned char **, short *, const double, volatile _Bool) -CHECK-DAG: Type{{.*}} , name = "FuncPtrTypedef", compiler_type = {{.*}} typedef FuncPtrTypedef - -CHECK-DAG: Type{{.*}} , name = "void", compiler_type = {{.*}} void -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} void * -CHECK-DAG: Type{{.*}} , name = "long", size = 4, compiler_type = {{.*}} long -CHECK-DAG: Type{{.*}} , name = "unsigned short", size = 2, compiler_type = {{.*}} unsigned short -CHECK-DAG: Type{{.*}} , name = "unsigned int", size = 4, compiler_type = {{.*}} unsigned int -CHECK-DAG: Type{{.*}} , name = "char", size = 1, compiler_type = {{.*}} char -CHECK-DAG: Type{{.*}} , name = "signed char", size = 1, compiler_type = {{.*}} signed char -CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} char (void *, long, unsigned short, unsigned int, ...) -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} char (*)(void *, long, unsigned short, unsigned int, ...) -CHECK-DAG: Type{{.*}} , name = "VarArgsFuncTypedef", compiler_type = {{.*}} typedef VarArgsFuncTypedef - -CHECK-DAG: Type{{.*}} , name = "float", size = 4, compiler_type = {{.*}} float -CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} float (...) -CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} float (*)(...) -CHECK-DAG: Type{{.*}} , name = "VarArgsFuncTypedefA", compiler_type = {{.*}} typedef VarArgsFuncTypedefA - -CHECK-DAG: {{^[0-9A-F]+}}: CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\SimpleTypesTest.cpp' diff --git a/lit/SymbolFile/PDB/udt-layout.test b/lit/SymbolFile/PDB/udt-layout.test deleted file mode 100644 index 726f633efe5b..000000000000 --- a/lit/SymbolFile/PDB/udt-layout.test +++ /dev/null @@ -1,51 +0,0 @@ -REQUIRES: system-windows, lld -RUN: %build --compiler=clang-cl --output=%t.exe %S/Inputs/UdtLayoutTest.cpp -RUN: %lldb -b -s %S/Inputs/UdtLayoutTest.script -- %t.exe | FileCheck %s - -CHECK:(int) int C::abc = 123 -CHECK:(List [16]) ls = { -CHECK: [15] = { -CHECK: Prev = 0x00000000 -CHECK: Next = 0x00000000 -CHECK: Value = { -CHECK: B<0> = { -CHECK: A = { -CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2) -CHECK: } -CHECK: _a = '\x01' -CHECK: _b = 2 -CHECK: _c = 3 -CHECK: } -CHECK: B<1> = { -CHECK: A = { -CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2) -CHECK: } -CHECK: _a = '\x02' -CHECK: _b = 4 -CHECK: _c = 6 -CHECK: } -CHECK: B<2> = { -CHECK: A = { -CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2) -CHECK: } -CHECK: _a = '\x03' -CHECK: _b = 6 -CHECK: _c = 9 -CHECK: } -CHECK: B<3> = { -CHECK: A = { -CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2) -CHECK: } -CHECK: _a = '\x04' -CHECK: _b = 8 -CHECK: _c = 12 -CHECK: } -CHECK: A = { -CHECK: _u = (_u1 = '\x02', _u2 = 2, _u3 = 2) -CHECK: } -CHECK: _x = 5 -CHECK: _y = 10 -CHECK: _z = '\x0f' -CHECK: } -CHECK: } -CHECK:} diff --git a/lit/SymbolFile/PDB/variables-locations.test b/lit/SymbolFile/PDB/variables-locations.test deleted file mode 100644 index 7696dc92cee8..000000000000 --- a/lit/SymbolFile/PDB/variables-locations.test +++ /dev/null @@ -1,14 +0,0 @@ -REQUIRES: system-windows, lld -RUN: %build --compiler=clang-cl --output=%t.exe %S/Inputs/VariablesLocationsTest.cpp -RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -b -s %S/Inputs/VariablesLocationsTest.script -- %t.exe | FileCheck %s - -CHECK: g_var = 2222 - -CHECK: arg_0 = 1111 -CHECK: arg_1 = 0.123 - -CHECK: loc_0 = 'x' -CHECK: loc_1 = 0.567 - -CHECK: loc_0 = true -CHECK: loc_1 = 3333 diff --git a/lit/SymbolFile/PDB/variables.test b/lit/SymbolFile/PDB/variables.test deleted file mode 100644 index 2e9b59471091..000000000000 --- a/lit/SymbolFile/PDB/variables.test +++ /dev/null @@ -1,66 +0,0 @@ -REQUIRES: system-windows, msvc -RUN: %build --compiler=clang-cl --mode=compile --arch=64 --nodefaultlib --output=%T/VariablesTest.cpp.obj %S/Inputs/VariablesTest.cpp -RUN: %build --compiler=msvc --mode=link --arch=64 --nodefaultlib --output=%T/VariablesTest.cpp.exe %T/VariablesTest.cpp.obj -RUN: lldb-test symbols %T/VariablesTest.cpp.exe > %T/VariablesTest.out -RUN: FileCheck --check-prefix=GLOBALS --input-file=%T/VariablesTest.out %s -RUN: FileCheck --check-prefix=FUNC-F --input-file=%T/VariablesTest.out %s -RUN: FileCheck --check-prefix=FUNC-MAIN --input-file=%T/VariablesTest.out %s -RUN: FileCheck --check-prefix=FUNC-CONSTRUCTOR --input-file=%T/VariablesTest.out %s -RUN: FileCheck --check-prefix=FUNC-MEMBER --input-file=%T/VariablesTest.out %s - -GLOBALS: Module [[MOD:.*]] -GLOBALS: SymbolVendor pdb ([[MOD]]) -GLOBALS: CompileUnit{{.*}}, language = "c++", file = '{{.*}}\VariablesTest.cpp' -GLOBALS-DAG: Variable{{.*}}, name = "g_IntVar" -GLOBALS-SAME: scope = global, location = {{.*}}, external -GLOBALS-DAG: Variable{{.*}}, name = "m_StaticClassMember" -GLOBALS-SAME: scope = global, location = {{.*}}, external -GLOBALS-DAG: Variable{{.*}}, name = "g_pConst" -GLOBALS-SAME: scope = global, location = {{.*}}, external -GLOBALS-DAG: Variable{{.*}}, name = "same_name_var" -GLOBALS-SAME: scope = global, location = {{.*}}, external -GLOBALS-DAG: Variable{{.*}}, name = "g_EnumVar" -GLOBALS-SAME: scope = global, location = {{.*}}, external -GLOBALS-DAG: Variable{{.*}}, name = "g_tls" -GLOBALS-SAME: scope = thread local, location = {{.*}}, external -GLOBALS-DAG: Variable{{.*}}, name = "ClassVar" -GLOBALS-SAME: scope = global, location = {{.*}}, external -GLOBALS-DAG: Variable{{.*}}, name = "g_Const" -GLOBALS-SAME: scope = ??? (2) -GLOBALS: Function - -FUNC-F: Function{{.*}}, mangled = ?f@@YAHHH@Z -FUNC-F-NEXT: Block -FUNC-F-NEXT: Variable{{.*}}, name = "var_arg1" -FUNC-F-SAME: scope = parameter -FUNC-F-NEXT: Variable{{.*}}, name = "var_arg2" -FUNC-F-SAME: scope = parameter -FUNC-F-NEXT: Variable{{.*}}, name = "same_name_var" -FUNC-F-SAME: scope = local - -FUNC-MAIN: Function{{.*}}, mangled = main -FUNC-MAIN-NEXT: Block -FUNC-MAIN-NEXT: Variable{{.*}}, name = "same_name_var" -FUNC-MAIN-SAME: scope = local -FUNC-MAIN-NEXT: Variable{{.*}}, name = "local_const" -FUNC-MAIN-SAME: scope = local -FUNC-MAIN-NEXT: Variable{{.*}}, name = "local_CString" -FUNC-MAIN-SAME: scope = local -FUNC-MAIN-NEXT: Variable{{.*}}, name = "local_pCString" -FUNC-MAIN-SAME: scope = local -FUNC-MAIN-NEXT: Variable{{.*}}, name = "a" -FUNC-MAIN-SAME: scope = local - -FUNC-CONSTRUCTOR: Function{{.*}}, mangled = ??0Class@@QEAA@H@Z -FUNC-CONSTRUCTOR-NEXT: Block -FUNC-CONSTRUCTOR-NEXT: Variable{{.*}}, name = "this" -FUNC-CONSTRUCTOR-SAME: scope = parameter -FUNC-CONSTRUCTOR-SAME: artificial -FUNC-CONSTRUCTOR-NEXT: Variable{{.*}}, name = "a" -FUNC-CONSTRUCTOR-SAME: scope = parameter - -FUNC-MEMBER: Function{{.*}}, mangled = ?Func@Class@@QEAAXXZ -FUNC-MEMBER-NEXT: Block -FUNC-MEMBER-NEXT: Variable{{.*}}, name = "this" -FUNC-MEMBER-SAME: scope = parameter -FUNC-MEMBER-SAME: artificial diff --git a/lit/SymbolFile/PDB/vbases.test b/lit/SymbolFile/PDB/vbases.test deleted file mode 100644 index 57239e07c87d..000000000000 --- a/lit/SymbolFile/PDB/vbases.test +++ /dev/null @@ -1,15 +0,0 @@ -REQUIRES: system-windows, lld -RUN: %build --compiler=clang-cl --output=%t.exe %S/Inputs/VBases.cpp -RUN: %lldb -b -s %S/Inputs/VBases.script -- %t.exe | FileCheck %s - -CHECK: { -CHECK: A = (a = '\x01') -CHECK: B = (b = 2) -CHECK: c = 3 -CHECK: } - -CHECK: { -CHECK: A = (a = '\x01') -CHECK: B = (b = 2) -CHECK: c = 3 -CHECK: } |