--- /dev/null
+// Object file built using:
+// clang -g -mllvm -generate-dwarf-pubnames -o dwarfdump-pubnames.elf-x86_64 \
+// dwarfdump-pubnames.cc -c
+
+struct C {
+ void member_function();
+ static int static_member_function();
+ static int static_member_variable;
+};
+
+int C::static_member_variable = 0;
+
+void C::member_function() {
+ static_member_variable = 0;
+}
+
+int C::static_member_function() {
+ return static_member_variable;
+}
+
+C global_variable;
+
+int global_function() {
+ return -1;
+}
+
+namespace ns {
+ void global_namespace_function() {
+ global_variable.member_function();
+ }
+ int global_namespace_variable = 1;
+}
--- /dev/null
+RUN: llvm-dwarfdump %p/Inputs/dwarfdump-pubnames.elf-x86-64 \
+RUN: -debug-dump=pubnames | FileCheck %s
+
+CHECK: .debug_pubnames contents:
+CHECK: Length: 161
+CHECK: Version: 2
+CHECK: Offset in .debug_info: 0
+CHECK: Size: 321
+
+CHECK: Offset Name
+CHECK: 98 global_namespace_variable
+CHECK: a7 global_namespace_function
+CHECK: ec static_member_function
+CHECK: 7c global_variable
+CHECK: 103 global_function
+CHECK: c2 member_function