llvm/lldb/test/Shell/SymbolFile/DWARF/x86/debug_static-member-anonymous-namespace.s

# 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