# 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