# REQUIRES: lld # Make sure DWARF v4 type units work. # RUN: %clangxx -target x86_64-pc-linux %S/Inputs/debug-types-basic.cpp \ # RUN: -g -gdwarf-4 -fdebug-types-section -c -o %t4.o # RUN: ld.lld %t4.o -o %t4 # RUN: %lldb %t4 -s %s -o exit | FileCheck %s # Now do the same for DWARF v5. # RUN: %clangxx -target x86_64-pc-linux %S/Inputs/debug-types-basic.cpp \ # RUN: -g -gdwarf-5 -fdebug-types-section -c -o %t5.o # RUN: ld.lld %t5.o -o %t5 # RUN: %lldb %t5 -s %s -o exit | FileCheck %s # Test type units in dwo files. # RUN: %clangxx -target x86_64-pc-linux %S/Inputs/debug-types-basic.cpp \ # RUN: -g -gdwarf-4 -fdebug-types-section -gsplit-dwarf -c -o %t4dwo.o # RUN: ld.lld %t4dwo.o -o %t4dwo # RUN: %lldb %t4dwo -s %s -o exit | FileCheck %s # And type units+dwo+dwarf5. # RUN: %clangxx -target x86_64-pc-linux %S/Inputs/debug-types-basic.cpp \ # RUN: -g -gdwarf-5 -fdebug-types-section -c -o %t5dwo.o # RUN: ld.lld %t5dwo.o -o %t5dwo # RUN: %lldb %t5dwo -s %s -o exit | FileCheck %s type lookup A # CHECK-LABEL: type lookup A # CHECK: struct A { # CHECK-NEXT: int i; # CHECK-NEXT: long l; # CHECK-NEXT: float f; # CHECK-NEXT: double d; # CHECK-NEXT: E e; # CHECK-NEXT: EC ec; # CHECK-NEXT: } type lookup E # CHECK-LABEL: type lookup E # CHECK: enum E { # CHECK-NEXT: e1, # CHECK-NEXT: e2, # CHECK-NEXT: e3 # CHECK-NEXT: } type lookup EC # CHECK-LABEL: type lookup EC # CHECK: enum class EC { # CHECK-NEXT: e1, # CHECK-NEXT: e2, # CHECK-NEXT: e3 # CHECK-NEXT: } print (E) 1 # CHECK-LABEL: print (E) 1 # CHECK: (E) $0 = e2 print (EC) 1 # CHECK-LABEL: print (EC) 1 # CHECK: (EC) $1 = e2 target variable a e ec # CHECK-LABEL: target variable a e ec # CHECK: (const A) a = (i = 42, l = 47, f = 4.{{[12].*}}, d = 4.{{[67].*}}, e = e1, ec = e3) # CHECK: (const E) e = e2 # CHECK: (const EC) ec = e2