# RUN: llvm-mc --triple=x86_64-pc-linux --filetype=obj %s -o %t # RUN: %lldb -o "target variable ug U::s" -b %t | FileCheck %s # CHECK: (lldb) target variable ug # CHECK: (U) ug = (m = 14159265) # CHECK: (int) U::s = 65295141 # This tests that a static member in a class declared in the anonymous namespace # does not appear as a field of the class. There is a difference between the # debug info generated by gcc and clang, where clang flags the static member # with DW_AT_external, but gcc does not. # # Roughly corresponds to this source code: # # namespace { # struct U { # static int s; # int m = 14159265; # }; # int U::s = 65295141; # } # # U ug; .file "test.cpp" .data .quad 0 ug: .long 14159265 .Lug_s: .long 65295141 .section .debug_info,"",@progbits .Ldebug_info0: .long .Lcu_end-.Lcu_begin .Lcu_begin: .value 0x4 .long .Ldebug_abbrev0 .byte 0x8 .uleb128 0x1 .asciz "GCC DWARF reduced by hand" .byte 0x4 .asciz "test.cpp" .uleb128 0x2 .LU: .uleb128 0x3 .string "U" .byte 0x4 .LU_s: .uleb128 0x4 .string "s" .long .Lint-.Ldebug_info0 .uleb128 0x5 .string "m" .long .Lint-.Ldebug_info0 .byte 0 .byte 0 .byte 0 .uleb128 0x6 .long 0x2d .Lint: .uleb128 0x7 .byte 0x4 .byte 0x5 .string "int" .uleb128 0x9 .string "ug" .long .LU-.Ldebug_info0 .uleb128 0x9 .byte 0x3 .quad ug .uleb128 0xa .long .LU_s-.Ldebug_info0 .uleb128 0x9 .byte 0x3 .quad .Lug_s .byte 0 .Lcu_end: .section .debug_abbrev,"",@progbits .Ldebug_abbrev0: .uleb128 0x1 .uleb128 0x11 .byte 0x1 .uleb128 0x25 .uleb128 0x8 .uleb128 0x13 .uleb128 0xb .uleb128 0x3 .uleb128 0x8 .byte 0 .byte 0 .uleb128 0x2 .uleb128 0x39 .byte 0x1 .byte 0 .byte 0 .uleb128 0x3 .uleb128 0x13 .byte 0x1 .uleb128 0x3 .uleb128 0x8 .uleb128 0xb .uleb128 0xb .byte 0 .byte 0 .uleb128 0x4 .uleb128 0xd .byte 0 .uleb128 0x3 .uleb128 0x8 .uleb128 0x49 .uleb128 0x13 .uleb128 0x3c .uleb128 0x19 .byte 0 .byte 0 .uleb128 0x5 .uleb128 0xd .byte 0 .uleb128 0x3 .uleb128 0x8 .uleb128 0x49 .uleb128 0x13 .uleb128 0x38 .uleb128 0xb .byte 0 .byte 0 .uleb128 0x6 .uleb128 0x3a .byte 0 .uleb128 0x18 .uleb128 0x13 .byte 0 .byte 0 .uleb128 0x7 .uleb128 0x24 .byte 0 .uleb128 0xb .uleb128 0xb .uleb128 0x3e .uleb128 0xb .uleb128 0x3 .uleb128 0x8 .byte 0 .byte 0 .uleb128 0x8 .uleb128 0x26 .byte 0 .uleb128 0x49 .uleb128 0x13 .byte 0 .byte 0 .uleb128 0x9 .uleb128 0x34 .byte 0 .uleb128 0x3 .uleb128 0x8 .uleb128 0x49 .uleb128 0x13 .uleb128 0x2 .uleb128 0x18 .byte 0 .byte 0 .uleb128 0xa .uleb128 0x34 .byte 0 .uleb128 0x47 .uleb128 0x13 .uleb128 0x2 .uleb128 0x18 .byte 0 .byte 0 .byte 0