gold/
authorCary Coutant <ccoutant@google.com>
Wed, 24 Oct 2012 02:32:15 +0000 (02:32 +0000)
committerCary Coutant <ccoutant@google.com>
Wed, 24 Oct 2012 02:32:15 +0000 (02:32 +0000)
* testsuite/Makefile.am (TEST_OBJCOPY): New macro.
* testsuite/Makefile.in: Regenerate.
* testsuite/dwp_test.h: New source file.
* testsuite/dwp_test_1.cc: New source file.
* testsuite/dwp_test_1.s: New source file.
* testsuite/dwp_test_1.sh: New source file.
* testsuite/dwp_test_1b.cc: New source file.
* testsuite/dwp_test_1b.s: New source file.
* testsuite/dwp_test_2.cc: New source file.
* testsuite/dwp_test_2.s: New source file.
* testsuite/dwp_test_2.sh: New source file.
* testsuite/dwp_test_main.cc: New source file.
* testsuite/dwp_test_main.s: New source file.

14 files changed:
gold/ChangeLog
gold/testsuite/Makefile.am
gold/testsuite/Makefile.in
gold/testsuite/dwp_test.h [new file with mode: 0644]
gold/testsuite/dwp_test_1.cc [new file with mode: 0644]
gold/testsuite/dwp_test_1.s [new file with mode: 0644]
gold/testsuite/dwp_test_1.sh [new file with mode: 0755]
gold/testsuite/dwp_test_1b.cc [new file with mode: 0644]
gold/testsuite/dwp_test_1b.s [new file with mode: 0644]
gold/testsuite/dwp_test_2.cc [new file with mode: 0644]
gold/testsuite/dwp_test_2.s [new file with mode: 0644]
gold/testsuite/dwp_test_2.sh [new file with mode: 0755]
gold/testsuite/dwp_test_main.cc [new file with mode: 0644]
gold/testsuite/dwp_test_main.s [new file with mode: 0644]

index 653f65f47acceadbd2d680954eb38a83868fdd32..2256744e027bbb79bc9b06b436d1fe099547fd83 100644 (file)
@@ -1,3 +1,19 @@
+2012-10-23  Cary Coutant  <ccoutant@google.com>
+
+       * testsuite/Makefile.am (TEST_OBJCOPY): New macro.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/dwp_test.h: New source file.
+       * testsuite/dwp_test_1.cc: New source file.
+       * testsuite/dwp_test_1.s: New source file.
+       * testsuite/dwp_test_1.sh: New source file.
+       * testsuite/dwp_test_1b.cc: New source file.
+       * testsuite/dwp_test_1b.s: New source file.
+       * testsuite/dwp_test_2.cc: New source file.
+       * testsuite/dwp_test_2.s: New source file.
+       * testsuite/dwp_test_2.sh: New source file.
+       * testsuite/dwp_test_main.cc: New source file.
+       * testsuite/dwp_test_main.s: New source file.
+
 2012-10-23  Cary Coutant  <ccoutant@google.com>
 
        * dwp.h: New header file.
index 4840f080dc8d0bb2ca6d1c45c0839a5fea7cce4e..8bb16b6693da5ce465f6b4fa2808634caa19fca1 100644 (file)
@@ -21,6 +21,7 @@ AM_CPPFLAGS = \
 
 TEST_READELF = $(top_builddir)/../binutils/readelf
 TEST_OBJDUMP = $(top_builddir)/../binutils/objdump
+TEST_OBJCOPY = $(top_builddir)/../binutils/objcopy
 TEST_CXXFILT = $(top_builddir)/../binutils/cxxfilt
 TEST_STRIP = $(top_builddir)/../binutils/strip-new
 TEST_AR = $(top_builddir)/../binutils/ar
@@ -2730,3 +2731,47 @@ endif DEFAULT_TARGET_ARM
 
 endif NATIVE_OR_CROSS_LINKER
 
+# Tests for the dwp tool.
+# We don't want to rely yet on GCC support for -gsplit-dwarf,
+# so we use (for now) test cases in x86 assembly language,
+# compiled from the dwp_test_*.cc sources.
+
+if DEFAULT_TARGET_X86_64
+
+dwp_test_main.o: dwp_test_main.s
+       $(TEST_AS) -o $@ $<
+dwp_test_1.o: dwp_test_1.s
+       $(TEST_AS) -o $@ $<
+dwp_test_1b.o: dwp_test_1b.s
+       $(TEST_AS) -o $@ $<
+dwp_test_2.o: dwp_test_2.s
+       $(TEST_AS) -o $@ $<
+
+dwp_test_main.dwo: dwp_test_main.o
+       $(TEST_OBJCOPY) --extract-dwo $< $@
+dwp_test_1.dwo: dwp_test_1.o
+       $(TEST_OBJCOPY) --extract-dwo $< $@
+dwp_test_1b.dwo: dwp_test_1b.o
+       $(TEST_OBJCOPY) --extract-dwo $< $@
+dwp_test_2.dwo: dwp_test_2.o
+       $(TEST_OBJCOPY) --extract-dwo $< $@
+
+check_SCRIPTS += dwp_test_1.sh
+check_DATA += dwp_test_1.stdout
+dwp_test_1.stdout: dwp_test_1.dwp
+       $(TEST_READELF) -wi $< > $@
+dwp_test_1.dwp: ../dwp dwp_test_main.dwo dwp_test_1.dwo dwp_test_1b.dwo dwp_test_2.dwo
+       ../dwp -o $@ dwp_test_main.dwo dwp_test_1.dwo dwp_test_1b.dwo dwp_test_2.dwo
+
+check_SCRIPTS += dwp_test_2.sh
+check_DATA += dwp_test_2.stdout
+dwp_test_2.stdout: dwp_test_2.dwp
+       $(TEST_READELF) -wi $< > $@
+dwp_test_2.dwp: ../dwp dwp_test_2a.dwp dwp_test_2b.dwp
+       ../dwp -o $@ dwp_test_2a.dwp dwp_test_2b.dwp
+dwp_test_2a.dwp: ../dwp dwp_test_main.dwo dwp_test_1.dwo
+       ../dwp -o $@ dwp_test_main.dwo dwp_test_1.dwo
+dwp_test_2b.dwp: ../dwp dwp_test_1b.dwo dwp_test_2.dwo
+       ../dwp -o $@ dwp_test_1b.dwo dwp_test_2.dwo
+
+endif DEFAULT_TARGET_X86_64
index 27b3a90830d06f52057171c82dbbcfddfa661669..80aeb09b9cf7c3953eb57cb32d9c4810f28e4f80 100644 (file)
@@ -653,6 +653,10 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@ arm_farcall_thumb_thumb_6m \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@ arm_farcall_thumb_arm \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@ arm_farcall_thumb_arm_5t
+@DEFAULT_TARGET_X86_64_TRUE@am__append_76 = dwp_test_1.sh \
+@DEFAULT_TARGET_X86_64_TRUE@   dwp_test_2.sh
+@DEFAULT_TARGET_X86_64_TRUE@am__append_77 = dwp_test_1.stdout \
+@DEFAULT_TARGET_X86_64_TRUE@   dwp_test_2.stdout
 subdir = testsuite
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -2005,6 +2009,7 @@ AM_CPPFLAGS = \
 
 TEST_READELF = $(top_builddir)/../binutils/readelf
 TEST_OBJDUMP = $(top_builddir)/../binutils/objdump
+TEST_OBJCOPY = $(top_builddir)/../binutils/objcopy
 TEST_CXXFILT = $(top_builddir)/../binutils/cxxfilt
 TEST_STRIP = $(top_builddir)/../binutils/strip-new
 TEST_AR = $(top_builddir)/../binutils/ar
@@ -2031,11 +2036,12 @@ MOSTLYCLEANFILES = *.so *.syms *.stdout $(am__append_4) \
 check_SCRIPTS = $(am__append_2) $(am__append_34) $(am__append_38) \
        $(am__append_54) $(am__append_57) $(am__append_60) \
        $(am__append_65) $(am__append_67) $(am__append_70) \
-       $(am__append_73)
+       $(am__append_73) $(am__append_76)
 check_DATA = $(am__append_3) $(am__append_27) $(am__append_29) \
        $(am__append_35) $(am__append_39) $(am__append_55) \
        $(am__append_58) $(am__append_61) $(am__append_66) \
-       $(am__append_68) $(am__append_71) $(am__append_74)
+       $(am__append_68) $(am__append_71) $(am__append_74) \
+       $(am__append_77)
 BUILT_SOURCES = $(am__append_25)
 TESTS = $(check_SCRIPTS) $(check_PROGRAMS)
 
@@ -3792,6 +3798,10 @@ arm_farcall_thumb_thumb.sh.log: arm_farcall_thumb_thumb.sh
        @p='arm_farcall_thumb_thumb.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 arm_farcall_thumb_arm.sh.log: arm_farcall_thumb_arm.sh
        @p='arm_farcall_thumb_arm.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+dwp_test_1.sh.log: dwp_test_1.sh
+       @p='dwp_test_1.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+dwp_test_2.sh.log: dwp_test_2.sh
+       @p='dwp_test_2.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 object_unittest.log: object_unittest$(EXEEXT)
        @p='object_unittest$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 binary_unittest.log: binary_unittest$(EXEEXT)
@@ -5648,6 +5658,41 @@ uninstall-am:
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@arm_farcall_thumb_arm_5t.o: arm_farcall_thumb_arm.s
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@ $(TEST_AS) -march=armv5t -o $@ $<
 
+# Tests for the dwp tool.
+# We don't want to rely yet on GCC support for -gsplit-dwarf,
+# so we use (for now) test cases in x86 assembly language,
+# compiled from the dwp_test_*.cc sources.
+
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_main.o: dwp_test_main.s
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_AS) -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_1.o: dwp_test_1.s
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_AS) -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_1b.o: dwp_test_1b.s
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_AS) -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_2.o: dwp_test_2.s
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_AS) -o $@ $<
+
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_main.dwo: dwp_test_main.o
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_OBJCOPY) --extract-dwo $< $@
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_1.dwo: dwp_test_1.o
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_OBJCOPY) --extract-dwo $< $@
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_1b.dwo: dwp_test_1b.o
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_OBJCOPY) --extract-dwo $< $@
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_2.dwo: dwp_test_2.o
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_OBJCOPY) --extract-dwo $< $@
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_1.stdout: dwp_test_1.dwp
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_READELF) -wi $< > $@
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_1.dwp: ../dwp dwp_test_main.dwo dwp_test_1.dwo dwp_test_1b.dwo dwp_test_2.dwo
+@DEFAULT_TARGET_X86_64_TRUE@   ../dwp -o $@ dwp_test_main.dwo dwp_test_1.dwo dwp_test_1b.dwo dwp_test_2.dwo
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_2.stdout: dwp_test_2.dwp
+@DEFAULT_TARGET_X86_64_TRUE@   $(TEST_READELF) -wi $< > $@
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_2.dwp: ../dwp dwp_test_2a.dwp dwp_test_2b.dwp
+@DEFAULT_TARGET_X86_64_TRUE@   ../dwp -o $@ dwp_test_2a.dwp dwp_test_2b.dwp
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_2a.dwp: ../dwp dwp_test_main.dwo dwp_test_1.dwo
+@DEFAULT_TARGET_X86_64_TRUE@   ../dwp -o $@ dwp_test_main.dwo dwp_test_1.dwo
+@DEFAULT_TARGET_X86_64_TRUE@dwp_test_2b.dwp: ../dwp dwp_test_1b.dwo dwp_test_2.dwo
+@DEFAULT_TARGET_X86_64_TRUE@   ../dwp -o $@ dwp_test_1b.dwo dwp_test_2.dwo
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/gold/testsuite/dwp_test.h b/gold/testsuite/dwp_test.h
new file mode 100644 (file)
index 0000000..37256d3
--- /dev/null
@@ -0,0 +1,87 @@
+// dwp_test.h -- a test case for dwp, header file  -*- C++ -*-
+
+// Copyright 2012 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// Adapted from two_file_test.h.
+
+class C1
+{
+ public:
+  bool testcase1();
+  bool t1a();
+  int t1_2();
+  bool testcase2();
+  bool testcase3();
+  bool testcase4();
+  int member1;
+};
+
+class C2
+{
+ public:
+  bool testcase1();
+  bool testcase2();
+  bool testcase3();
+  bool testcase4();
+  int member1;
+};
+
+class C3
+{
+ public:
+  bool testcase1();
+  bool testcase2();
+  bool testcase3();
+  bool (*f4())();
+  int member1;
+};
+
+extern C3 c3;
+
+extern int v2;
+extern int v3;
+extern char v4[];
+extern char v5[];
+
+extern int f10();
+extern int f11a();
+extern int f11b(int (*)());
+extern bool t12();
+
+extern bool t13();
+inline void f13i() { }
+extern void (*f13())();
+
+#define TEST_STRING_CONSTANT "test string constant"
+extern const char* f14();
+
+#define TEST_WIDE_STRING_CONSTANT L"test wide string constant"
+extern const wchar_t* f15();
+
+extern bool t16();
+extern bool t16a();
+
+extern bool t17();
+extern const char* t17data[];
+#define T17_COUNT 5
+
+extern bool t18();
+extern const char* f18(int);
diff --git a/gold/testsuite/dwp_test_1.cc b/gold/testsuite/dwp_test_1.cc
new file mode 100644 (file)
index 0000000..71fbc5b
--- /dev/null
@@ -0,0 +1,210 @@
+// dwp_test_1.cc -- a test case for dwp
+
+// Copyright 2012 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// Adapted from two_file_test_1.cc.
+
+#include "dwp_test.h"
+
+// 1  Code in file 1 calls code in file 2.
+
+bool
+C1::testcase1()
+{
+  return t1_2() == 123;
+}
+
+// 2  Code in file 1 refers to global data in file 2.
+
+bool
+C1::testcase2()
+{
+  return v2 == 456;
+}
+
+// 3  Code in file 1 referes to common symbol in file 2.
+
+bool
+C1::testcase3()
+{
+  return v3 == 789;
+}
+
+// 4  Code in file 1 refers to offset within global data in file 2.
+
+bool
+C1::testcase4()
+{
+  return v4[5] == ',';
+}
+
+// 5  Code in file 1 refers to offset within common symbol in file 2.
+
+bool
+C2::testcase1()
+{
+  return v5[7] == 'w';
+}
+
+// 6  Data in file 1 refers to global data in file 2.
+
+int* p6 = &v2;
+
+bool
+C2::testcase2()
+{
+  return *p6 == 456;
+}
+
+// 7  Data in file 1 refers to common symbol in file 2.
+
+int* p7 = &v3;
+
+bool
+C2::testcase3()
+{
+  return *p7 == 789;
+}
+
+// 8  Data in file 1 refers to offset within global data in file 2.
+
+char* p8 = &v4[6];
+
+bool
+C2::testcase4()
+{
+  return *p8 == ' ';
+}
+
+// 9  Data in file 1 refers to offset within common symbol in file 2.
+
+char* p9 = &v5[8];
+
+bool
+C3::testcase1()
+{
+  return *p9 == 'o';
+}
+
+// 10 Data in file 1 refers to function in file 2.
+
+int (*pfn)() = &f10;
+
+bool
+C3::testcase2()
+{
+  return (*pfn)() == 135;
+}
+
+// 11 Pass function pointer from file 1 to file 2.
+
+int
+f11a()
+{
+  return 246;
+}
+
+bool
+C3::testcase3()
+{
+  return f11b(&f11a) == 246;
+}
+
+// 12 Compare address of function for equality in both files.
+
+bool
+t12()
+{
+  return &t12 == c3.f4();
+}
+
+// 13 Compare address of inline function for equality in both files.
+
+bool
+t13()
+{
+  return &f13i == f13();
+}
+
+// 14 Compare string constants in file 1 and file 2.
+
+bool
+t14()
+{
+  const char* s1 = TEST_STRING_CONSTANT;
+  const char* s2 = f14();
+  while (*s1 != '\0')
+    if (*s1++ != *s2++)
+      return false;
+  return *s2 == '\0';
+}
+
+// 15 Compare wide string constants in file 1 and file 2.
+
+bool
+t15()
+{
+  const wchar_t* s1 = TEST_WIDE_STRING_CONSTANT;
+  const wchar_t* s2 = f15();
+  while (*s1 != '\0')
+    if (*s1++ != *s2++)
+      return false;
+  return *s2 == '\0';
+}
+
+// 16 Call a function directly after its address has been taken.
+
+bool
+t16()
+{
+  return f10() == 135;
+}
+
+// 17 File 1 checks array of string constants defined in file 2.
+
+bool
+t17()
+{
+  char c = 'a';
+  for (int i = 0; i < T17_COUNT; ++i)
+    {
+      if (t17data[i][0] != c || t17data[i][1] != '\0')
+       return false;
+      ++c;
+    }
+  return true;
+}
+
+// 18 File 1 checks string constants referenced in code in file 2.
+
+bool
+t18()
+{
+  char c = 'a';
+  for (int i = 0; i < T17_COUNT; ++i)
+    {
+      const char* s = f18(i);
+      if (s[0] != c || s[1] != '\0')
+        return false;
+      ++c;
+    }
+  return true;
+}
diff --git a/gold/testsuite/dwp_test_1.s b/gold/testsuite/dwp_test_1.s
new file mode 100644 (file)
index 0000000..d3a898d
--- /dev/null
@@ -0,0 +1,2660 @@
+       .file   "dwp_test_1.cc"
+       .text
+.Ltext0:
+       .section        .text._Z4f13iv,"axG",@progbits,_Z4f13iv,comdat
+       .weak   _Z4f13iv
+       .type   _Z4f13iv, @function
+_Z4f13iv:
+.LFB0:
+       .file 1 "dwp_test.h"
+       .loc 1 70 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 1 70 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE0:
+       .size   _Z4f13iv, .-_Z4f13iv
+       .text
+       .align 2
+       .globl  _ZN2C19testcase1Ev
+       .type   _ZN2C19testcase1Ev, @function
+_ZN2C19testcase1Ev:
+.LFB1:
+       .file 2 "dwp_test_1.cc"
+       .loc 2 31 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $16, %rsp
+       movq    %rdi, -8(%rbp)
+       .loc 2 32 0
+       movq    -8(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C14t1_2Ev
+       cmpl    $123, %eax
+       sete    %al
+       .loc 2 33 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE1:
+       .size   _ZN2C19testcase1Ev, .-_ZN2C19testcase1Ev
+       .align 2
+       .globl  _ZN2C19testcase2Ev
+       .type   _ZN2C19testcase2Ev, @function
+_ZN2C19testcase2Ev:
+.LFB2:
+       .loc 2 39 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 40 0
+       movl    v2(%rip), %eax
+       cmpl    $456, %eax
+       sete    %al
+       .loc 2 41 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE2:
+       .size   _ZN2C19testcase2Ev, .-_ZN2C19testcase2Ev
+       .align 2
+       .globl  _ZN2C19testcase3Ev
+       .type   _ZN2C19testcase3Ev, @function
+_ZN2C19testcase3Ev:
+.LFB3:
+       .loc 2 47 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 48 0
+       movl    v3(%rip), %eax
+       cmpl    $789, %eax
+       sete    %al
+       .loc 2 49 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE3:
+       .size   _ZN2C19testcase3Ev, .-_ZN2C19testcase3Ev
+       .align 2
+       .globl  _ZN2C19testcase4Ev
+       .type   _ZN2C19testcase4Ev, @function
+_ZN2C19testcase4Ev:
+.LFB4:
+       .loc 2 55 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 56 0
+       movzbl  v4+5(%rip), %eax
+       cmpb    $44, %al
+       sete    %al
+       .loc 2 57 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE4:
+       .size   _ZN2C19testcase4Ev, .-_ZN2C19testcase4Ev
+       .align 2
+       .globl  _ZN2C29testcase1Ev
+       .type   _ZN2C29testcase1Ev, @function
+_ZN2C29testcase1Ev:
+.LFB5:
+       .loc 2 63 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 64 0
+       movzbl  v5+7(%rip), %eax
+       cmpb    $119, %al
+       sete    %al
+       .loc 2 65 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE5:
+       .size   _ZN2C29testcase1Ev, .-_ZN2C29testcase1Ev
+       .globl  p6
+       .data
+       .align 8
+       .type   p6, @object
+       .size   p6, 8
+p6:
+       .quad   v2
+       .text
+       .align 2
+       .globl  _ZN2C29testcase2Ev
+       .type   _ZN2C29testcase2Ev, @function
+_ZN2C29testcase2Ev:
+.LFB6:
+       .loc 2 73 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 74 0
+       movq    p6(%rip), %rax
+       movl    (%rax), %eax
+       cmpl    $456, %eax
+       sete    %al
+       .loc 2 75 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE6:
+       .size   _ZN2C29testcase2Ev, .-_ZN2C29testcase2Ev
+       .globl  p7
+       .data
+       .align 8
+       .type   p7, @object
+       .size   p7, 8
+p7:
+       .quad   v3
+       .text
+       .align 2
+       .globl  _ZN2C29testcase3Ev
+       .type   _ZN2C29testcase3Ev, @function
+_ZN2C29testcase3Ev:
+.LFB7:
+       .loc 2 83 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 84 0
+       movq    p7(%rip), %rax
+       movl    (%rax), %eax
+       cmpl    $789, %eax
+       sete    %al
+       .loc 2 85 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE7:
+       .size   _ZN2C29testcase3Ev, .-_ZN2C29testcase3Ev
+       .globl  p8
+       .data
+       .align 8
+       .type   p8, @object
+       .size   p8, 8
+p8:
+       .quad   v4+6
+       .text
+       .align 2
+       .globl  _ZN2C29testcase4Ev
+       .type   _ZN2C29testcase4Ev, @function
+_ZN2C29testcase4Ev:
+.LFB8:
+       .loc 2 93 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 94 0
+       movq    p8(%rip), %rax
+       movzbl  (%rax), %eax
+       cmpb    $32, %al
+       sete    %al
+       .loc 2 95 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE8:
+       .size   _ZN2C29testcase4Ev, .-_ZN2C29testcase4Ev
+       .globl  p9
+       .data
+       .align 8
+       .type   p9, @object
+       .size   p9, 8
+p9:
+       .quad   v5+8
+       .text
+       .align 2
+       .globl  _ZN2C39testcase1Ev
+       .type   _ZN2C39testcase1Ev, @function
+_ZN2C39testcase1Ev:
+.LFB9:
+       .loc 2 103 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 104 0
+       movq    p9(%rip), %rax
+       movzbl  (%rax), %eax
+       cmpb    $111, %al
+       sete    %al
+       .loc 2 105 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE9:
+       .size   _ZN2C39testcase1Ev, .-_ZN2C39testcase1Ev
+       .globl  pfn
+       .data
+       .align 8
+       .type   pfn, @object
+       .size   pfn, 8
+pfn:
+       .quad   _Z3f10v
+       .text
+       .align 2
+       .globl  _ZN2C39testcase2Ev
+       .type   _ZN2C39testcase2Ev, @function
+_ZN2C39testcase2Ev:
+.LFB10:
+       .loc 2 113 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $16, %rsp
+       movq    %rdi, -8(%rbp)
+       .loc 2 114 0
+       movq    pfn(%rip), %rax
+       call    *%rax
+       cmpl    $135, %eax
+       sete    %al
+       .loc 2 115 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE10:
+       .size   _ZN2C39testcase2Ev, .-_ZN2C39testcase2Ev
+       .globl  _Z4f11av
+       .type   _Z4f11av, @function
+_Z4f11av:
+.LFB11:
+       .loc 2 121 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 2 122 0
+       movl    $246, %eax
+       .loc 2 123 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE11:
+       .size   _Z4f11av, .-_Z4f11av
+       .align 2
+       .globl  _ZN2C39testcase3Ev
+       .type   _ZN2C39testcase3Ev, @function
+_ZN2C39testcase3Ev:
+.LFB12:
+       .loc 2 127 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $16, %rsp
+       movq    %rdi, -8(%rbp)
+       .loc 2 128 0
+       movl    $_Z4f11av, %edi
+       call    _Z4f11bPFivE
+       cmpl    $246, %eax
+       sete    %al
+       .loc 2 129 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE12:
+       .size   _ZN2C39testcase3Ev, .-_ZN2C39testcase3Ev
+       .globl  _Z3t12v
+       .type   _Z3t12v, @function
+_Z3t12v:
+.LFB13:
+       .loc 2 135 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 2 136 0
+       movl    $c3, %edi
+       call    _ZN2C32f4Ev
+       cmpq    $_Z3t12v, %rax
+       sete    %al
+       .loc 2 137 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE13:
+       .size   _Z3t12v, .-_Z3t12v
+       .globl  _Z3t13v
+       .type   _Z3t13v, @function
+_Z3t13v:
+.LFB14:
+       .loc 2 143 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 2 144 0
+       call    _Z3f13v
+       cmpq    $_Z4f13iv, %rax
+       sete    %al
+       .loc 2 145 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE14:
+       .size   _Z3t13v, .-_Z3t13v
+       .section        .rodata
+.LC0:
+       .string "test string constant"
+       .text
+       .globl  _Z3t14v
+       .type   _Z3t14v, @function
+_Z3t14v:
+.LFB15:
+       .loc 2 151 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $16, %rsp
+.LBB2:
+       .loc 2 152 0
+       movq    $.LC0, -8(%rbp)
+       .loc 2 153 0
+       call    _Z3f14v
+       movq    %rax, -16(%rbp)
+       .loc 2 154 0
+       jmp     .L31
+.L33:
+       .loc 2 155 0
+       movq    -8(%rbp), %rax
+       movzbl  (%rax), %edx
+       movq    -16(%rbp), %rax
+       movzbl  (%rax), %eax
+       cmpb    %al, %dl
+       setne   %al
+       addq    $1, -8(%rbp)
+       addq    $1, -16(%rbp)
+       testb   %al, %al
+       je      .L31
+       .loc 2 156 0
+       movl    $0, %eax
+       jmp     .L32
+.L31:
+       .loc 2 154 0 discriminator 1
+       movq    -8(%rbp), %rax
+       movzbl  (%rax), %eax
+       testb   %al, %al
+       setne   %al
+       testb   %al, %al
+       jne     .L33
+       .loc 2 157 0
+       movq    -16(%rbp), %rax
+       movzbl  (%rax), %eax
+       testb   %al, %al
+       sete    %al
+.L32:
+.LBE2:
+       .loc 2 158 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE15:
+       .size   _Z3t14v, .-_Z3t14v
+       .section        .rodata
+       .align 8
+.LC1:
+       .string "t"
+       .string ""
+       .string ""
+       .string "e"
+       .string ""
+       .string ""
+       .string "s"
+       .string ""
+       .string ""
+       .string "t"
+       .string ""
+       .string ""
+       .string " "
+       .string ""
+       .string ""
+       .string "w"
+       .string ""
+       .string ""
+       .string "i"
+       .string ""
+       .string ""
+       .string "d"
+       .string ""
+       .string ""
+       .string "e"
+       .string ""
+       .string ""
+       .string " "
+       .string ""
+       .string ""
+       .string "s"
+       .string ""
+       .string ""
+       .string "t"
+       .string ""
+       .string ""
+       .string "r"
+       .string ""
+       .string ""
+       .string "i"
+       .string ""
+       .string ""
+       .string "n"
+       .string ""
+       .string ""
+       .string "g"
+       .string ""
+       .string ""
+       .string " "
+       .string ""
+       .string ""
+       .string "c"
+       .string ""
+       .string ""
+       .string "o"
+       .string ""
+       .string ""
+       .string "n"
+       .string ""
+       .string ""
+       .string "s"
+       .string ""
+       .string ""
+       .string "t"
+       .string ""
+       .string ""
+       .string "a"
+       .string ""
+       .string ""
+       .string "n"
+       .string ""
+       .string ""
+       .string "t"
+       .string ""
+       .string ""
+       .string ""
+       .string ""
+       .string ""
+       .string ""
+       .text
+       .globl  _Z3t15v
+       .type   _Z3t15v, @function
+_Z3t15v:
+.LFB16:
+       .loc 2 164 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $16, %rsp
+.LBB3:
+       .loc 2 165 0
+       movq    $.LC1, -8(%rbp)
+       .loc 2 166 0
+       call    _Z3f15v
+       movq    %rax, -16(%rbp)
+       .loc 2 167 0
+       jmp     .L35
+.L37:
+       .loc 2 168 0
+       movq    -8(%rbp), %rax
+       movl    (%rax), %edx
+       movq    -16(%rbp), %rax
+       movl    (%rax), %eax
+       cmpl    %eax, %edx
+       setne   %al
+       addq    $4, -8(%rbp)
+       addq    $4, -16(%rbp)
+       testb   %al, %al
+       je      .L35
+       .loc 2 169 0
+       movl    $0, %eax
+       jmp     .L36
+.L35:
+       .loc 2 167 0 discriminator 1
+       movq    -8(%rbp), %rax
+       movl    (%rax), %eax
+       testl   %eax, %eax
+       setne   %al
+       testb   %al, %al
+       jne     .L37
+       .loc 2 170 0
+       movq    -16(%rbp), %rax
+       movl    (%rax), %eax
+       testl   %eax, %eax
+       sete    %al
+.L36:
+.LBE3:
+       .loc 2 171 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE16:
+       .size   _Z3t15v, .-_Z3t15v
+       .globl  _Z3t16v
+       .type   _Z3t16v, @function
+_Z3t16v:
+.LFB17:
+       .loc 2 177 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 2 178 0
+       call    _Z3f10v
+       cmpl    $135, %eax
+       sete    %al
+       .loc 2 179 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE17:
+       .size   _Z3t16v, .-_Z3t16v
+       .globl  _Z3t17v
+       .type   _Z3t17v, @function
+_Z3t17v:
+.LFB18:
+       .loc 2 185 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+.LBB4:
+       .loc 2 186 0
+       movb    $97, -1(%rbp)
+.LBB5:
+       .loc 2 187 0
+       movl    $0, -8(%rbp)
+       jmp     .L41
+.L45:
+       .loc 2 189 0
+       movl    -8(%rbp), %eax
+       cltq
+       movq    t17data(,%rax,8), %rax
+       movzbl  (%rax), %eax
+       cmpb    -1(%rbp), %al
+       jne     .L42
+       .loc 2 189 0 is_stmt 0 discriminator 1
+       movl    -8(%rbp), %eax
+       cltq
+       movq    t17data(,%rax,8), %rax
+       addq    $1, %rax
+       movzbl  (%rax), %eax
+       testb   %al, %al
+       je      .L43
+.L42:
+       .loc 2 190 0 is_stmt 1
+       movl    $0, %eax
+       jmp     .L44
+.L43:
+       .loc 2 191 0
+       addb    $1, -1(%rbp)
+       .loc 2 187 0
+       addl    $1, -8(%rbp)
+.L41:
+       .loc 2 187 0 is_stmt 0 discriminator 1
+       cmpl    $4, -8(%rbp)
+       setle   %al
+       testb   %al, %al
+       jne     .L45
+.LBE5:
+       .loc 2 193 0 is_stmt 1
+       movl    $1, %eax
+.L44:
+.LBE4:
+       .loc 2 194 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE18:
+       .size   _Z3t17v, .-_Z3t17v
+       .globl  _Z3t18v
+       .type   _Z3t18v, @function
+_Z3t18v:
+.LFB19:
+       .loc 2 200 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $16, %rsp
+.LBB6:
+       .loc 2 201 0
+       movb    $97, -1(%rbp)
+.LBB7:
+       .loc 2 202 0
+       movl    $0, -8(%rbp)
+       jmp     .L47
+.L51:
+.LBB8:
+       .loc 2 204 0
+       movl    -8(%rbp), %eax
+       movl    %eax, %edi
+       call    _Z3f18i
+       movq    %rax, -16(%rbp)
+       .loc 2 205 0
+       movq    -16(%rbp), %rax
+       movzbl  (%rax), %eax
+       cmpb    -1(%rbp), %al
+       jne     .L48
+       .loc 2 205 0 is_stmt 0 discriminator 1
+       movq    -16(%rbp), %rax
+       addq    $1, %rax
+       movzbl  (%rax), %eax
+       testb   %al, %al
+       je      .L49
+.L48:
+       .loc 2 206 0 is_stmt 1
+       movl    $0, %eax
+       jmp     .L50
+.L49:
+       .loc 2 207 0
+       addb    $1, -1(%rbp)
+.LBE8:
+       .loc 2 202 0
+       addl    $1, -8(%rbp)
+.L47:
+       .loc 2 202 0 is_stmt 0 discriminator 1
+       cmpl    $4, -8(%rbp)
+       setle   %al
+       testb   %al, %al
+       jne     .L51
+.LBE7:
+       .loc 2 209 0 is_stmt 1
+       movl    $1, %eax
+.L50:
+.LBE6:
+       .loc 2 210 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE19:
+       .size   _Z3t18v, .-_Z3t18v
+.Letext0:
+       .section        .debug_types.dwo,"G",@progbits,wt.bb2916f0c1bd34b5,comdat
+       .long   0xc1
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x8a
+       .byte   0xda
+       .byte   0x59
+       .byte   0x6e
+       .byte   0x4d
+       .byte   0x5c
+       .byte   0xa
+       .byte   0x88
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C3"
+       .byte   0x4
+       .byte   0x1
+       .byte   0x2f
+       .long   0xa4
+       .uleb128 0x3
+       .uleb128 0x6
+       .byte   0x1
+       .byte   0x36
+       .long   0xa4
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .uleb128 0
+       .byte   0x1
+       .byte   0x32
+       .uleb128 0x2
+       .long   0xab
+       .byte   0x1
+       .long   0x4c
+       .long   0x52
+       .uleb128 0x5
+       .long   0xb3
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x33
+       .uleb128 0x3
+       .long   0xab
+       .byte   0x1
+       .long   0x64
+       .long   0x6a
+       .uleb128 0x5
+       .long   0xb3
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x4
+       .byte   0x1
+       .byte   0x34
+       .uleb128 0x5
+       .long   0xab
+       .byte   0x1
+       .long   0x7c
+       .long   0x82
+       .uleb128 0x5
+       .long   0xb3
+       .byte   0
+       .uleb128 0x6
+       .string "f4"
+       .byte   0x1
+       .byte   0x35
+       .string "_ZN2C32f4Ev"
+       .long   0xb9
+       .byte   0x1
+       .long   0x9d
+       .uleb128 0x5
+       .long   0xb3
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .uleb128 0x8
+       .byte   0x8
+       .long   0xbf
+       .uleb128 0x9
+       .long   0xab
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.bb2916f0c1bd34b5,comdat
+       .long   0x6e
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_1.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_types.dwo,"G",@progbits,wt.66526f88bcc798ab,comdat
+       .long   0xa9
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0x66
+       .byte   0x52
+       .byte   0x6f
+       .byte   0x88
+       .byte   0xbc
+       .byte   0xc7
+       .byte   0x98
+       .byte   0xab
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x4b
+       .byte   0xf9
+       .byte   0xce
+       .byte   0xbf
+       .byte   0xd8
+       .byte   0xf0
+       .byte   0x4a
+       .byte   0xae
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C2"
+       .byte   0x4
+       .byte   0x1
+       .byte   0x25
+       .long   0x97
+       .uleb128 0x3
+       .uleb128 0x6
+       .byte   0x1
+       .byte   0x2c
+       .long   0x97
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .uleb128 0
+       .byte   0x1
+       .byte   0x28
+       .uleb128 0x7
+       .long   0x9e
+       .byte   0x1
+       .long   0x4c
+       .long   0x52
+       .uleb128 0x5
+       .long   0xa6
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x29
+       .uleb128 0x8
+       .long   0x9e
+       .byte   0x1
+       .long   0x64
+       .long   0x6a
+       .uleb128 0x5
+       .long   0xa6
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x4
+       .byte   0x1
+       .byte   0x2a
+       .uleb128 0x9
+       .long   0x9e
+       .byte   0x1
+       .long   0x7c
+       .long   0x82
+       .uleb128 0x5
+       .long   0xa6
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0xa
+       .byte   0x1
+       .byte   0x2b
+       .uleb128 0xb
+       .long   0x9e
+       .byte   0x1
+       .long   0x90
+       .uleb128 0x5
+       .long   0xa6
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.66526f88bcc798ab,comdat
+       .long   0x6e
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0x66
+       .byte   0x52
+       .byte   0x6f
+       .byte   0x88
+       .byte   0xbc
+       .byte   0xc7
+       .byte   0x98
+       .byte   0xab
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_1.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_types.dwo,"G",@progbits,wt.c419a9b7a4a2fab5,comdat
+       .long   0xf9
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0xe3
+       .byte   0xad
+       .byte   0x5
+       .byte   0x3b
+       .byte   0x75
+       .byte   0xeb
+       .byte   0xfb
+       .byte   0xc7
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C1"
+       .byte   0x4
+       .byte   0x1
+       .byte   0x19
+       .long   0xe7
+       .uleb128 0x3
+       .uleb128 0x6
+       .byte   0x1
+       .byte   0x22
+       .long   0xe7
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .uleb128 0
+       .byte   0x1
+       .byte   0x1c
+       .uleb128 0xc
+       .long   0xee
+       .byte   0x1
+       .long   0x4c
+       .long   0x52
+       .uleb128 0x5
+       .long   0xf6
+       .byte   0
+       .uleb128 0xb
+       .string "t1a"
+       .byte   0x1
+       .byte   0x1d
+       .string "_ZN2C13t1aEv"
+       .long   0xee
+       .byte   0x1
+       .long   0x73
+       .long   0x79
+       .uleb128 0x5
+       .long   0xf6
+       .byte   0
+       .uleb128 0xb
+       .string "t1_2"
+       .byte   0x1
+       .byte   0x1e
+       .string "_ZN2C14t1_2Ev"
+       .long   0xe7
+       .byte   0x1
+       .long   0x9c
+       .long   0xa2
+       .uleb128 0x5
+       .long   0xf6
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x1f
+       .uleb128 0xd
+       .long   0xee
+       .byte   0x1
+       .long   0xb4
+       .long   0xba
+       .uleb128 0x5
+       .long   0xf6
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x4
+       .byte   0x1
+       .byte   0x20
+       .uleb128 0xe
+       .long   0xee
+       .byte   0x1
+       .long   0xcc
+       .long   0xd2
+       .uleb128 0x5
+       .long   0xf6
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0xa
+       .byte   0x1
+       .byte   0x21
+       .uleb128 0xf
+       .long   0xee
+       .byte   0x1
+       .long   0xe0
+       .uleb128 0x5
+       .long   0xf6
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.c419a9b7a4a2fab5,comdat
+       .long   0x6e
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_1.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_info.dwo,"e",@progbits
+.Ldebug_info0:
+       .long   0x5af
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .uleb128 0xc
+       .string "GNU C++ 4.7.x-google 20120720 (prerelease)"
+       .byte   0x4
+       .string "dwp_test_1.cc"
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .byte   0x27
+       .byte   0x37
+       .byte   0xdc
+       .byte   0x2f
+       .byte   0x9
+       .byte   0xc6
+       .byte   0xf9
+       .byte   0x52
+       .uleb128 0xd
+       .string "C1"
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .long   0xc6
+       .uleb128 0xe
+       .uleb128 0
+       .byte   0x1
+       .byte   0x1c
+       .uleb128 0xc
+       .long   0xcd
+       .byte   0x1
+       .uleb128 0xe
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x1f
+       .uleb128 0xd
+       .long   0xcd
+       .byte   0x1
+       .uleb128 0xe
+       .uleb128 0x4
+       .byte   0x1
+       .byte   0x20
+       .uleb128 0xe
+       .long   0xcd
+       .byte   0x1
+       .uleb128 0xe
+       .uleb128 0xa
+       .byte   0x1
+       .byte   0x21
+       .uleb128 0xf
+       .long   0xcd
+       .byte   0x1
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0xf
+       .byte   0x8
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .uleb128 0xd
+       .string "C2"
+       .byte   0x66
+       .byte   0x52
+       .byte   0x6f
+       .byte   0x88
+       .byte   0xbc
+       .byte   0xc7
+       .byte   0x98
+       .byte   0xab
+       .long   0x118
+       .uleb128 0xe
+       .uleb128 0
+       .byte   0x1
+       .byte   0x28
+       .uleb128 0x7
+       .long   0xcd
+       .byte   0x1
+       .uleb128 0xe
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x29
+       .uleb128 0x8
+       .long   0xcd
+       .byte   0x1
+       .uleb128 0xe
+       .uleb128 0x4
+       .byte   0x1
+       .byte   0x2a
+       .uleb128 0x9
+       .long   0xcd
+       .byte   0x1
+       .uleb128 0xe
+       .uleb128 0xa
+       .byte   0x1
+       .byte   0x2b
+       .uleb128 0xb
+       .long   0xcd
+       .byte   0x1
+       .byte   0
+       .uleb128 0xf
+       .byte   0x8
+       .byte   0x66
+       .byte   0x52
+       .byte   0x6f
+       .byte   0x88
+       .byte   0xbc
+       .byte   0xc7
+       .byte   0x98
+       .byte   0xab
+       .uleb128 0xd
+       .string "C3"
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0x151
+       .uleb128 0xe
+       .uleb128 0
+       .byte   0x1
+       .byte   0x32
+       .uleb128 0x2
+       .long   0xcd
+       .byte   0x1
+       .uleb128 0xe
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x33
+       .uleb128 0x3
+       .long   0xcd
+       .byte   0x1
+       .uleb128 0xe
+       .uleb128 0x4
+       .byte   0x1
+       .byte   0x34
+       .uleb128 0x5
+       .long   0xcd
+       .byte   0x1
+       .byte   0
+       .uleb128 0xf
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .uleb128 0x10
+       .string "f13i"
+       .byte   0x1
+       .byte   0x46
+       .string "_Z4f13iv"
+       .uleb128 0
+       .quad   .LFE0-.LFB0
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x11
+       .long   0x9d
+       .byte   0x2
+       .byte   0x1e
+       .uleb128 0x1
+       .quad   .LFE1-.LFB1
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x191
+       .long   0x19b
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x19b
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x13
+       .long   0xd5
+       .uleb128 0x14
+       .long   0xa7
+       .byte   0x2
+       .byte   0x26
+       .uleb128 0x2
+       .quad   .LFE2-.LFB2
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x1ba
+       .long   0x1c4
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x19b
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x14
+       .long   0xb1
+       .byte   0x2
+       .byte   0x2e
+       .uleb128 0x3
+       .quad   .LFE3-.LFB3
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x1de
+       .long   0x1e8
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x19b
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x14
+       .long   0xbb
+       .byte   0x2
+       .byte   0x36
+       .uleb128 0x4
+       .quad   .LFE4-.LFB4
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x202
+       .long   0x20c
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x19b
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x14
+       .long   0xef
+       .byte   0x2
+       .byte   0x3e
+       .uleb128 0x5
+       .quad   .LFE5-.LFB5
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x226
+       .long   0x230
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x230
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x13
+       .long   0x118
+       .uleb128 0x14
+       .long   0xf9
+       .byte   0x2
+       .byte   0x48
+       .uleb128 0x6
+       .quad   .LFE6-.LFB6
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x24f
+       .long   0x259
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x230
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x14
+       .long   0x103
+       .byte   0x2
+       .byte   0x52
+       .uleb128 0x7
+       .quad   .LFE7-.LFB7
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x273
+       .long   0x27d
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x230
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x14
+       .long   0x10d
+       .byte   0x2
+       .byte   0x5c
+       .uleb128 0x8
+       .quad   .LFE8-.LFB8
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x297
+       .long   0x2a1
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x230
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x14
+       .long   0x132
+       .byte   0x2
+       .byte   0x66
+       .uleb128 0x9
+       .quad   .LFE9-.LFB9
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x2bb
+       .long   0x2c5
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x2c5
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x13
+       .long   0x151
+       .uleb128 0x11
+       .long   0x13c
+       .byte   0x2
+       .byte   0x70
+       .uleb128 0xa
+       .quad   .LFE10-.LFB10
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x2e4
+       .long   0x2ee
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x2c5
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x15
+       .string "f11a"
+       .byte   0x2
+       .byte   0x78
+       .string "_Z4f11av"
+       .long   0xc6
+       .uleb128 0xb
+       .quad   .LFE11-.LFB11
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x11
+       .long   0x146
+       .byte   0x2
+       .byte   0x7e
+       .uleb128 0xc
+       .quad   .LFE12-.LFB12
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x328
+       .long   0x332
+       .uleb128 0x12
+       .uleb128 0x10
+       .long   0x2c5
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x16
+       .string "t12"
+       .byte   0x2
+       .byte   0x86
+       .string "_Z3t12v"
+       .long   0xcd
+       .uleb128 0xd
+       .quad   .LFE13-.LFB13
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x16
+       .string "t13"
+       .byte   0x2
+       .byte   0x8e
+       .string "_Z3t13v"
+       .long   0xcd
+       .uleb128 0xe
+       .quad   .LFE14-.LFB14
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x17
+       .string "t14"
+       .byte   0x2
+       .byte   0x96
+       .string "_Z3t14v"
+       .long   0xcd
+       .uleb128 0xf
+       .quad   .LFE15-.LFB15
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x3b6
+       .uleb128 0x18
+       .uleb128 0x10
+       .quad   .LBE2-.LBB2
+       .uleb128 0x19
+       .string "s1"
+       .byte   0x2
+       .byte   0x98
+       .long   0x3b6
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .uleb128 0x19
+       .string "s2"
+       .byte   0x2
+       .byte   0x99
+       .long   0x3b6
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -32
+       .byte   0
+       .byte   0
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x3bc
+       .uleb128 0x13
+       .long   0x3c1
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x6
+       .string "char"
+       .uleb128 0x17
+       .string "t15"
+       .byte   0x2
+       .byte   0xa3
+       .string "_Z3t15v"
+       .long   0xcd
+       .uleb128 0x11
+       .quad   .LFE16-.LFB16
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x411
+       .uleb128 0x18
+       .uleb128 0x12
+       .quad   .LBE3-.LBB3
+       .uleb128 0x19
+       .string "s1"
+       .byte   0x2
+       .byte   0xa5
+       .long   0x411
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .uleb128 0x19
+       .string "s2"
+       .byte   0x2
+       .byte   0xa6
+       .long   0x411
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -32
+       .byte   0
+       .byte   0
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x417
+       .uleb128 0x13
+       .long   0x41c
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "wchar_t"
+       .uleb128 0x16
+       .string "t16"
+       .byte   0x2
+       .byte   0xb0
+       .string "_Z3t16v"
+       .long   0xcd
+       .uleb128 0x13
+       .quad   .LFE17-.LFB17
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x1a
+       .string "t17"
+       .byte   0x2
+       .byte   0xb8
+       .string "_Z3t17v"
+       .long   0xcd
+       .uleb128 0x14
+       .quad   .LFE18-.LFB18
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x496
+       .uleb128 0x18
+       .uleb128 0x15
+       .quad   .LBE4-.LBB4
+       .uleb128 0x19
+       .string "c"
+       .byte   0x2
+       .byte   0xba
+       .long   0x3c1
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -17
+       .uleb128 0x18
+       .uleb128 0x16
+       .quad   .LBE5-.LBB5
+       .uleb128 0x19
+       .string "i"
+       .byte   0x2
+       .byte   0xbb
+       .long   0xc6
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0x17
+       .string "t18"
+       .byte   0x2
+       .byte   0xc7
+       .string "_Z3t18v"
+       .long   0xcd
+       .uleb128 0x17
+       .quad   .LFE19-.LFB19
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x4fe
+       .uleb128 0x18
+       .uleb128 0x18
+       .quad   .LBE6-.LBB6
+       .uleb128 0x19
+       .string "c"
+       .byte   0x2
+       .byte   0xc9
+       .long   0x3c1
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -17
+       .uleb128 0x18
+       .uleb128 0x19
+       .quad   .LBE7-.LBB7
+       .uleb128 0x19
+       .string "i"
+       .byte   0x2
+       .byte   0xca
+       .long   0xc6
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .uleb128 0x18
+       .uleb128 0x1a
+       .quad   .LBE8-.LBB8
+       .uleb128 0x19
+       .string "s"
+       .byte   0x2
+       .byte   0xcc
+       .long   0x3b6
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -32
+       .byte   0
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0x1b
+       .string "c3"
+       .byte   0x1
+       .byte   0x39
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .uleb128 0x1c
+       .string "v2"
+       .byte   0x1
+       .byte   0x3b
+       .long   0xc6
+       .uleb128 0x1c
+       .string "v3"
+       .byte   0x1
+       .byte   0x3c
+       .long   0xc6
+       .uleb128 0x1d
+       .long   0x3c1
+       .long   0x52b
+       .uleb128 0x1e
+       .byte   0
+       .uleb128 0x1c
+       .string "v4"
+       .byte   0x1
+       .byte   0x3d
+       .long   0x520
+       .uleb128 0x1c
+       .string "v5"
+       .byte   0x1
+       .byte   0x3e
+       .long   0x520
+       .uleb128 0x1d
+       .long   0x3b6
+       .long   0x54a
+       .uleb128 0x1e
+       .byte   0
+       .uleb128 0x1c
+       .string "t17data"
+       .byte   0x1
+       .byte   0x53
+       .long   0x53f
+       .uleb128 0x1f
+       .string "p6"
+       .byte   0x2
+       .byte   0x45
+       .long   0x566
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0x1b
+       .uleb128 0x8
+       .byte   0x8
+       .long   0xc6
+       .uleb128 0x1f
+       .string "p7"
+       .byte   0x2
+       .byte   0x4f
+       .long   0x566
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0x1c
+       .uleb128 0x1f
+       .string "p8"
+       .byte   0x2
+       .byte   0x59
+       .long   0x586
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0x1d
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x3c1
+       .uleb128 0x1f
+       .string "p9"
+       .byte   0x2
+       .byte   0x63
+       .long   0x586
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0x1e
+       .uleb128 0x9
+       .long   0xc6
+       .uleb128 0x1f
+       .string "pfn"
+       .byte   0x2
+       .byte   0x6d
+       .long   0x5ac
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0x1f
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x599
+       .byte   0
+       .section        .debug_info,"",@progbits
+.Lskeleton_debug_info0:
+       .long   0x7e
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .uleb128 0x1
+       .long   .Ldebug_ranges0+0
+       .quad   0
+       .long   .Ldebug_line0
+       .byte   0x27
+       .byte   0x37
+       .byte   0xdc
+       .byte   0x2f
+       .byte   0x9
+       .byte   0xc6
+       .byte   0xf9
+       .byte   0x52
+       .long   .Ldebug_ranges0
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_1.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_abbrev,"",@progbits
+.Lskeleton_debug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x11
+       .byte   0
+       .uleb128 0x55
+       .uleb128 0x17
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x10
+       .uleb128 0x17
+       .uleb128 0x2131
+       .uleb128 0x7
+       .uleb128 0x2132
+       .uleb128 0x17
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2130
+       .uleb128 0x8
+       .uleb128 0x2134
+       .uleb128 0x17
+       .uleb128 0x2135
+       .uleb128 0x17
+       .uleb128 0x2133
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x41
+       .byte   0
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2130
+       .uleb128 0x8
+       .uleb128 0x2134
+       .uleb128 0x17
+       .uleb128 0x2135
+       .uleb128 0x17
+       .uleb128 0x2133
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_abbrev.dwo,"e",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x41
+       .byte   0x1
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x210f
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x2
+       .byte   0x1
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xd
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x38
+       .uleb128 0xb
+       .uleb128 0x32
+       .uleb128 0xb
+       .byte   0
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x1f02
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x5
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x34
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x6
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .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 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x9
+       .uleb128 0x15
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x1f02
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xc
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0x8
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2131
+       .uleb128 0x7
+       .byte   0
+       .byte   0
+       .uleb128 0xd
+       .uleb128 0x2
+       .byte   0x1
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x69
+       .uleb128 0x20
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xe
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x1f02
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0xf
+       .uleb128 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x20
+       .byte   0
+       .byte   0
+       .uleb128 0x10
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2117
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x11
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x47
+       .uleb128 0x13
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x2116
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x12
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x34
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x13
+       .uleb128 0x26
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x14
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x47
+       .uleb128 0x13
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x2117
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x15
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2117
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x16
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2116
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x17
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2116
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x18
+       .uleb128 0xb
+       .byte   0x1
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .byte   0
+       .byte   0
+       .uleb128 0x19
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x1a
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2117
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x1b
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x20
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x1c
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x1d
+       .uleb128 0x1
+       .byte   0x1
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x1e
+       .uleb128 0x21
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0x1f
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_gnu_pubnames,"",@progbits
+.Ldebug_pubnames0:
+       .long   0x15b
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .long   0x5b3
+       .long   0x15b
+       .byte   0x30
+       .string "f13i"
+       .long   0x177
+       .byte   0x30
+       .string "C1::testcase1"
+       .long   0x1a0
+       .byte   0x30
+       .string "C1::testcase2"
+       .long   0x1c4
+       .byte   0x30
+       .string "C1::testcase3"
+       .long   0x1e8
+       .byte   0x30
+       .string "C1::testcase4"
+       .long   0x20c
+       .byte   0x30
+       .string "C2::testcase1"
+       .long   0x235
+       .byte   0x30
+       .string "C2::testcase2"
+       .long   0x259
+       .byte   0x30
+       .string "C2::testcase3"
+       .long   0x27d
+       .byte   0x30
+       .string "C2::testcase4"
+       .long   0x2a1
+       .byte   0x30
+       .string "C3::testcase1"
+       .long   0x2ca
+       .byte   0x30
+       .string "C3::testcase2"
+       .long   0x2ee
+       .byte   0x30
+       .string "f11a"
+       .long   0x30e
+       .byte   0x30
+       .string "C3::testcase3"
+       .long   0x332
+       .byte   0x30
+       .string "t12"
+       .long   0x350
+       .byte   0x30
+       .string "t13"
+       .long   0x36e
+       .byte   0x30
+       .string "t14"
+       .long   0x3c9
+       .byte   0x30
+       .string "t15"
+       .long   0x427
+       .byte   0x30
+       .string "t16"
+       .long   0x445
+       .byte   0x30
+       .string "t17"
+       .long   0x496
+       .byte   0x30
+       .string "t18"
+       .long   0x559
+       .byte   0x20
+       .string "p6"
+       .long   0x56c
+       .byte   0x20
+       .string "p7"
+       .long   0x579
+       .byte   0x20
+       .string "p8"
+       .long   0x58c
+       .byte   0x20
+       .string "p9"
+       .long   0x59e
+       .byte   0x20
+       .string "pfn"
+       .long   0
+       .section        .debug_gnu_pubtypes,"",@progbits
+.Ldebug_pubtypes0:
+       .long   0x50
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .long   0x5b3
+       .long   0xc6
+       .byte   0x90
+       .string "int"
+       .long   0xcd
+       .byte   0x90
+       .string "bool"
+       .long   0x8d
+       .byte   0x10
+       .string "C1"
+       .long   0xdf
+       .byte   0x10
+       .string "C2"
+       .long   0x122
+       .byte   0x10
+       .string "C3"
+       .long   0x3c1
+       .byte   0x90
+       .string "char"
+       .long   0x41c
+       .byte   0x90
+       .string "wchar_t"
+       .long   0
+       .section        .debug_aranges,"",@progbits
+       .long   0x3c
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .byte   0x8
+       .byte   0
+       .value  0
+       .value  0
+       .quad   .Ltext0
+       .quad   .Letext0-.Ltext0
+       .quad   .LFB0
+       .quad   .LFE0-.LFB0
+       .quad   0
+       .quad   0
+       .section        .debug_ranges,"",@progbits
+.Ldebug_ranges0:
+       .quad   .Ltext0
+       .quad   .Letext0
+       .quad   .LFB0
+       .quad   .LFE0
+       .quad   0
+       .quad   0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_line.dwo,"e",@progbits
+.Lskeleton_debug_line0:
+       .long   .LELT0-.LSLT0
+.LSLT0:
+       .value  0x4
+       .long   .LELTP0-.LASLTP0
+.LASLTP0:
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0xf6
+       .byte   0xf2
+       .byte   0xd
+       .byte   0
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0
+       .byte   0
+       .byte   0
+       .byte   0x1
+       .byte   0
+       .byte   0
+       .byte   0x1
+       .byte   0
+       .string "dwp_test.h"
+       .uleb128 0
+       .uleb128 0
+       .uleb128 0
+       .string "dwp_test_1.cc"
+       .uleb128 0
+       .uleb128 0
+       .uleb128 0
+       .byte   0
+.LELTP0:
+.LELT0:
+       .section        .debug_str_offsets.dwo,"e",@progbits
+       .long   0
+       .long   0xa
+       .long   0x14
+       .long   0x27
+       .long   0x3a
+       .long   0x44
+       .long   0x57
+       .long   0x5f
+       .long   0x72
+       .long   0x85
+       .long   0x98
+       .long   0xa2
+       .long   0xb5
+       .long   0xc8
+       .long   0xdb
+       .long   0xee
+       .long   0x101
+       .section        .debug_str.dwo,"e",@progbits
+.LASF0:
+       .string "testcase1"
+.LASF1:
+       .string "testcase2"
+.LASF2:
+       .string "_ZN2C39testcase1Ev"
+.LASF3:
+       .string "_ZN2C39testcase2Ev"
+.LASF4:
+       .string "testcase3"
+.LASF5:
+       .string "_ZN2C39testcase3Ev"
+.LASF6:
+       .string "member1"
+.LASF7:
+       .string "_ZN2C29testcase1Ev"
+.LASF8:
+       .string "_ZN2C29testcase2Ev"
+.LASF9:
+       .string "_ZN2C29testcase3Ev"
+.LASF10:
+       .string "testcase4"
+.LASF11:
+       .string "_ZN2C29testcase4Ev"
+.LASF12:
+       .string "_ZN2C19testcase1Ev"
+.LASF13:
+       .string "_ZN2C19testcase2Ev"
+.LASF14:
+       .string "_ZN2C19testcase3Ev"
+.LASF15:
+       .string "_ZN2C19testcase4Ev"
+.LASF16:
+       .string "this"
+       .section        .debug_addr,"",@progbits
+.Ldebug_addr0:
+       .quad   .LFB0
+       .quad   .LFB1
+       .quad   .LFB2
+       .quad   .LFB3
+       .quad   .LFB4
+       .quad   .LFB5
+       .quad   .LFB6
+       .quad   .LFB7
+       .quad   .LFB8
+       .quad   .LFB9
+       .quad   .LFB10
+       .quad   .LFB11
+       .quad   .LFB12
+       .quad   .LFB13
+       .quad   .LFB14
+       .quad   .LFB15
+       .quad   .LBB2
+       .quad   .LFB16
+       .quad   .LBB3
+       .quad   .LFB17
+       .quad   .LFB18
+       .quad   .LBB4
+       .quad   .LBB5
+       .quad   .LFB19
+       .quad   .LBB6
+       .quad   .LBB7
+       .quad   .LBB8
+       .quad   p6
+       .quad   p7
+       .quad   p8
+       .quad   p9
+       .quad   pfn
+       .ident  "GCC: (Google_crosstoolv16-gcc-4.7.x-grtev3) 4.7.x-google 20120720 (prerelease)"
+       .section        .note.GNU-stack,"",@progbits
diff --git a/gold/testsuite/dwp_test_1.sh b/gold/testsuite/dwp_test_1.sh
new file mode 100755 (executable)
index 0000000..7831a49
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+# dwp_test_1.sh -- Test the dwp tool.
+
+# Copyright 2012 Free Software Foundation, Inc.
+# Written by Cary Coutant <ccoutant@google.com>.
+
+# This file is part of gold.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+check()
+{
+    if ! grep -q "$2" "$1"
+    then
+       echo "Did not find expected output:"
+       echo "   $2"
+       echo ""
+       echo "Actual error output below:"
+       cat "$1"
+       exit 1
+    fi
+}
+
+check_num()
+{
+    n=$(grep -c "$2" "$1")
+    if test "$n" -ne "$3"
+    then
+       echo "Found $n occurrences (should find $3):"
+       echo "   $2"
+       echo ""
+       echo "Actual error output below:"
+       cat "$1"
+       exit 1
+    fi
+}
+
+STDOUT="dwp_test_1.stdout"
+
+check $STDOUT "^Contents of the .debug_info.dwo section"
+check_num $STDOUT "DW_TAG_compile_unit" 4
+check_num $STDOUT "DW_TAG_type_unit" 3
+check_num $STDOUT "DW_AT_name.*: C1" 3
+check_num $STDOUT "DW_AT_name.*: C2" 2
+check_num $STDOUT "DW_AT_name.*: C3" 3
+check_num $STDOUT "DW_AT_name.*: testcase1" 6
+check_num $STDOUT "DW_AT_name.*: testcase2" 6
+check_num $STDOUT "DW_AT_name.*: testcase3" 6
+check_num $STDOUT "DW_AT_name.*: testcase4" 4
diff --git a/gold/testsuite/dwp_test_1b.cc b/gold/testsuite/dwp_test_1b.cc
new file mode 100644 (file)
index 0000000..c75376b
--- /dev/null
@@ -0,0 +1,35 @@
+// dwp_test_1b.cc -- a test case for dwp
+
+// Copyright 2012 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// Adapted from two_file_test_1b.cc.
+
+#include "dwp_test.h"
+
+// 16 Call a function directly after its address has been taken.
+
+C3 c3;
+
+bool
+t16a()
+{
+  return f10() == 135;
+}
diff --git a/gold/testsuite/dwp_test_1b.s b/gold/testsuite/dwp_test_1b.s
new file mode 100644 (file)
index 0000000..9c9891d
--- /dev/null
@@ -0,0 +1,549 @@
+       .file   "dwp_test_1b.cc"
+       .text
+.Ltext0:
+       .globl  c3
+       .bss
+       .align 4
+       .type   c3, @object
+       .size   c3, 4
+c3:
+       .zero   4
+       .text
+       .globl  _Z4t16av
+       .type   _Z4t16av, @function
+_Z4t16av:
+.LFB1:
+       .file 1 "dwp_test_1b.cc"
+       .loc 1 33 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 1 34 0
+       call    _Z3f10v
+       cmpl    $135, %eax
+       sete    %al
+       .loc 1 35 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE1:
+       .size   _Z4t16av, .-_Z4t16av
+.Letext0:
+       .file 2 "dwp_test.h"
+       .section        .debug_types.dwo,"G",@progbits,wt.bb2916f0c1bd34b5,comdat
+       .long   0x119
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x8a
+       .byte   0xda
+       .byte   0x59
+       .byte   0x6e
+       .byte   0x4d
+       .byte   0x5c
+       .byte   0xa
+       .byte   0x88
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C3"
+       .byte   0x4
+       .byte   0x2
+       .byte   0x2f
+       .long   0xfc
+       .uleb128 0x3
+       .string "member1"
+       .byte   0x2
+       .byte   0x36
+       .long   0xfc
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .string "testcase1"
+       .byte   0x2
+       .byte   0x32
+       .string "_ZN2C39testcase1Ev"
+       .long   0x103
+       .byte   0x1
+       .long   0x6e
+       .long   0x74
+       .uleb128 0x5
+       .long   0x10b
+       .byte   0
+       .uleb128 0x4
+       .string "testcase2"
+       .byte   0x2
+       .byte   0x33
+       .string "_ZN2C39testcase2Ev"
+       .long   0x103
+       .byte   0x1
+       .long   0xa1
+       .long   0xa7
+       .uleb128 0x5
+       .long   0x10b
+       .byte   0
+       .uleb128 0x4
+       .string "testcase3"
+       .byte   0x2
+       .byte   0x34
+       .string "_ZN2C39testcase3Ev"
+       .long   0x103
+       .byte   0x1
+       .long   0xd4
+       .long   0xda
+       .uleb128 0x5
+       .long   0x10b
+       .byte   0
+       .uleb128 0x6
+       .string "f4"
+       .byte   0x2
+       .byte   0x35
+       .string "_ZN2C32f4Ev"
+       .long   0x111
+       .byte   0x1
+       .long   0xf5
+       .uleb128 0x5
+       .long   0x10b
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x117
+       .uleb128 0x9
+       .long   0x103
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.bb2916f0c1bd34b5,comdat
+       .long   0x6f
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_1b.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_info.dwo,"e",@progbits
+.Ldebug_info0:
+       .long   0xcb
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .uleb128 0xa
+       .string "GNU C++ 4.7.x-google 20120720 (prerelease)"
+       .byte   0x4
+       .string "dwp_test_1b.cc"
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .byte   0xf6
+       .byte   0xef
+       .byte   0x47
+       .byte   0xa2
+       .byte   0x3e
+       .byte   0xc1
+       .byte   0x6e
+       .byte   0xbd
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0xb
+       .string "t16a"
+       .byte   0x1
+       .byte   0x20
+       .string "_Z4t16av"
+       .long   0x95
+       .uleb128 0
+       .quad   .LFE1-.LFB1
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0xc
+       .string "c3"
+       .byte   0x1
+       .byte   0x1d
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0x1
+       .byte   0
+       .section        .debug_info,"",@progbits
+.Lskeleton_debug_info0:
+       .long   0x7f
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .uleb128 0x1
+       .quad   .Ltext0
+       .quad   .Letext0-.Ltext0
+       .long   .Ldebug_line0
+       .byte   0xf6
+       .byte   0xef
+       .byte   0x47
+       .byte   0xa2
+       .byte   0x3e
+       .byte   0xc1
+       .byte   0x6e
+       .byte   0xbd
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_1b.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_abbrev,"",@progbits
+.Lskeleton_debug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x11
+       .byte   0
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .uleb128 0x2131
+       .uleb128 0x7
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2130
+       .uleb128 0x8
+       .uleb128 0x2134
+       .uleb128 0x17
+       .uleb128 0x2135
+       .uleb128 0x17
+       .uleb128 0x2133
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x41
+       .byte   0
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2130
+       .uleb128 0x8
+       .uleb128 0x2134
+       .uleb128 0x17
+       .uleb128 0x2135
+       .uleb128 0x17
+       .uleb128 0x2133
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_abbrev.dwo,"e",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x41
+       .byte   0x1
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x210f
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x2
+       .byte   0x1
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xd
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x38
+       .uleb128 0xb
+       .uleb128 0x32
+       .uleb128 0xb
+       .byte   0
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x5
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x34
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x6
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .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 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x9
+       .uleb128 0x15
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0x8
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2131
+       .uleb128 0x7
+       .byte   0
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2116
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0xc
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x20
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_gnu_pubnames,"",@progbits
+.Ldebug_pubnames0:
+       .long   0x20
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .long   0xcf
+       .long   0x9d
+       .byte   0x30
+       .string "t16a"
+       .long   0xbd
+       .byte   0x20
+       .string "c3"
+       .long   0
+       .section        .debug_gnu_pubtypes,"",@progbits
+.Ldebug_pubtypes0:
+       .long   0x29
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .long   0xcf
+       .long   0x8e
+       .byte   0x90
+       .string "int"
+       .long   0x95
+       .byte   0x90
+       .string "bool"
+       .long   0
+       .byte   0x10
+       .string "C3"
+       .long   0
+       .section        .debug_aranges,"",@progbits
+       .long   0x2c
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .byte   0x8
+       .byte   0
+       .value  0
+       .value  0
+       .quad   .Ltext0
+       .quad   .Letext0-.Ltext0
+       .quad   0
+       .quad   0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_line.dwo,"e",@progbits
+.Lskeleton_debug_line0:
+       .long   .LELT0-.LSLT0
+.LSLT0:
+       .value  0x4
+       .long   .LELTP0-.LASLTP0
+.LASLTP0:
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0xf6
+       .byte   0xf2
+       .byte   0xd
+       .byte   0
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0
+       .byte   0
+       .byte   0
+       .byte   0x1
+       .byte   0
+       .byte   0
+       .byte   0x1
+       .byte   0
+       .string "dwp_test_1b.cc"
+       .uleb128 0
+       .uleb128 0
+       .uleb128 0
+       .string "dwp_test.h"
+       .uleb128 0
+       .uleb128 0
+       .uleb128 0
+       .byte   0
+.LELTP0:
+.LELT0:
+       .section        .debug_addr,"",@progbits
+.Ldebug_addr0:
+       .quad   .LFB1
+       .quad   c3
+       .ident  "GCC: (Google_crosstoolv16-gcc-4.7.x-grtev3) 4.7.x-google 20120720 (prerelease)"
+       .section        .note.GNU-stack,"",@progbits
diff --git a/gold/testsuite/dwp_test_2.cc b/gold/testsuite/dwp_test_2.cc
new file mode 100644 (file)
index 0000000..a1172b3
--- /dev/null
@@ -0,0 +1,144 @@
+// dwp_test_2.cc -- a test case for dwp
+
+// Copyright 2012 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// Adapted from two_file_test_2.cc.
+
+#include "dwp_test.h"
+
+// 1  Code in file 1 calls code in file 2.
+
+int
+C1::t1_2()
+{
+  return 123;
+}
+
+bool
+C1::t1a()
+{
+  return t1_2() == 123;
+}
+
+// 2  Code in file 1 refers to global data in file 2.
+
+int v2 = 456;
+
+// 3 Code in file 1 referes to common symbol in file 2.  This is
+// initialized at runtime to 789.
+
+int v3;
+
+// 4  Code in file 1 refers to offset within global data in file 2.
+
+char v4[] = "Hello, world";
+
+// 5 Code in file 1 refers to offset within common symbol in file 2.
+// This is initialized at runtime to a copy of v4.
+
+char v5[13];
+
+// 6  Data in file 1 refers to global data in file 2.  This reuses v2.
+
+// 7  Data in file 1 refers to common symbol in file 2.  This reuses v3.
+
+// 8 Data in file 1 refers to offset within global data in file 2.
+// This reuses v4.
+
+// 9 Data in file 1 refers to offset within common symbol in file 2.
+// This reuses v5.
+
+// 10 Data in file 1 refers to function in file 2.
+
+int
+f10()
+{
+  return 135;
+}
+
+// 11 Pass function pointer from file 1 to file 2.
+
+int
+f11b(int (*pfn)())
+{
+  return (*pfn)();
+}
+
+// 12 Compare address of function for equality in both files.
+
+bool
+(*C3::f4())()
+{
+  return &t12;
+}
+
+// 13 Compare address of inline function for equality in both files.
+
+void
+(*f13())()
+{
+  return &f13i;
+}
+
+// 14 Compare string constants in file 1 and file 2.
+
+const char*
+f14()
+{
+  return TEST_STRING_CONSTANT;
+}
+
+// 15 Compare wide string constants in file 1 and file 2.
+
+const wchar_t*
+f15()
+{
+  return TEST_WIDE_STRING_CONSTANT;
+}
+
+// 17 File 1 checks array of string constants defined in file 2.
+
+const char* t17data[T17_COUNT] =
+{
+  "a", "b", "c", "d", "e"
+};
+
+// 18 File 1 checks string constants referenced directly in file 2.
+
+const char*
+f18(int i)
+{
+  switch (i)
+    {
+    case 0:
+      return "a";
+    case 1:
+      return "b";
+    case 2:
+      return "c";
+    case 3:
+      return "d";
+    case 4:
+      return "e";
+    default:
+      return 0;
+    }
+}
diff --git a/gold/testsuite/dwp_test_2.s b/gold/testsuite/dwp_test_2.s
new file mode 100644 (file)
index 0000000..fa80771
--- /dev/null
@@ -0,0 +1,1714 @@
+       .file   "dwp_test_2.cc"
+       .text
+.Ltext0:
+       .section        .text._Z4f13iv,"axG",@progbits,_Z4f13iv,comdat
+       .weak   _Z4f13iv
+       .type   _Z4f13iv, @function
+_Z4f13iv:
+.LFB0:
+       .file 1 "dwp_test.h"
+       .loc 1 70 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 1 70 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE0:
+       .size   _Z4f13iv, .-_Z4f13iv
+       .text
+       .align 2
+       .globl  _ZN2C14t1_2Ev
+       .type   _ZN2C14t1_2Ev, @function
+_ZN2C14t1_2Ev:
+.LFB1:
+       .file 2 "dwp_test_2.cc"
+       .loc 2 31 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 32 0
+       movl    $123, %eax
+       .loc 2 33 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE1:
+       .size   _ZN2C14t1_2Ev, .-_ZN2C14t1_2Ev
+       .align 2
+       .globl  _ZN2C13t1aEv
+       .type   _ZN2C13t1aEv, @function
+_ZN2C13t1aEv:
+.LFB2:
+       .loc 2 37 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $8, %rsp
+       movq    %rdi, -8(%rbp)
+       .loc 2 38 0
+       movq    -8(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C14t1_2Ev
+       cmpl    $123, %eax
+       sete    %al
+       .loc 2 39 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE2:
+       .size   _ZN2C13t1aEv, .-_ZN2C13t1aEv
+       .globl  v2
+       .data
+       .align 4
+       .type   v2, @object
+       .size   v2, 4
+v2:
+       .long   456
+       .globl  v3
+       .bss
+       .align 4
+       .type   v3, @object
+       .size   v3, 4
+v3:
+       .zero   4
+       .globl  v4
+       .data
+       .type   v4, @object
+       .size   v4, 13
+v4:
+       .string "Hello, world"
+       .globl  v5
+       .bss
+       .type   v5, @object
+       .size   v5, 13
+v5:
+       .zero   13
+       .text
+       .globl  _Z3f10v
+       .type   _Z3f10v, @function
+_Z3f10v:
+.LFB3:
+       .loc 2 73 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 2 74 0
+       movl    $135, %eax
+       .loc 2 75 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE3:
+       .size   _Z3f10v, .-_Z3f10v
+       .globl  _Z4f11bPFivE
+       .type   _Z4f11bPFivE, @function
+_Z4f11bPFivE:
+.LFB4:
+       .loc 2 81 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $16, %rsp
+       movq    %rdi, -8(%rbp)
+       .loc 2 82 0
+       movq    -8(%rbp), %rax
+       call    *%rax
+       .loc 2 83 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE4:
+       .size   _Z4f11bPFivE, .-_Z4f11bPFivE
+       .align 2
+       .globl  _ZN2C32f4Ev
+       .type   _ZN2C32f4Ev, @function
+_ZN2C32f4Ev:
+.LFB5:
+       .loc 2 89 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movq    %rdi, -8(%rbp)
+       .loc 2 90 0
+       movl    $_Z3t12v, %eax
+       .loc 2 91 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE5:
+       .size   _ZN2C32f4Ev, .-_ZN2C32f4Ev
+       .globl  _Z3f13v
+       .type   _Z3f13v, @function
+_Z3f13v:
+.LFB6:
+       .loc 2 97 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 2 98 0
+       movl    $_Z4f13iv, %eax
+       .loc 2 99 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE6:
+       .size   _Z3f13v, .-_Z3f13v
+       .section        .rodata
+.LC0:
+       .string "test string constant"
+       .text
+       .globl  _Z3f14v
+       .type   _Z3f14v, @function
+_Z3f14v:
+.LFB7:
+       .loc 2 105 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 2 106 0
+       movl    $.LC0, %eax
+       .loc 2 107 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE7:
+       .size   _Z3f14v, .-_Z3f14v
+       .section        .rodata
+       .align 8
+.LC1:
+       .string "t"
+       .string ""
+       .string ""
+       .string "e"
+       .string ""
+       .string ""
+       .string "s"
+       .string ""
+       .string ""
+       .string "t"
+       .string ""
+       .string ""
+       .string " "
+       .string ""
+       .string ""
+       .string "w"
+       .string ""
+       .string ""
+       .string "i"
+       .string ""
+       .string ""
+       .string "d"
+       .string ""
+       .string ""
+       .string "e"
+       .string ""
+       .string ""
+       .string " "
+       .string ""
+       .string ""
+       .string "s"
+       .string ""
+       .string ""
+       .string "t"
+       .string ""
+       .string ""
+       .string "r"
+       .string ""
+       .string ""
+       .string "i"
+       .string ""
+       .string ""
+       .string "n"
+       .string ""
+       .string ""
+       .string "g"
+       .string ""
+       .string ""
+       .string " "
+       .string ""
+       .string ""
+       .string "c"
+       .string ""
+       .string ""
+       .string "o"
+       .string ""
+       .string ""
+       .string "n"
+       .string ""
+       .string ""
+       .string "s"
+       .string ""
+       .string ""
+       .string "t"
+       .string ""
+       .string ""
+       .string "a"
+       .string ""
+       .string ""
+       .string "n"
+       .string ""
+       .string ""
+       .string "t"
+       .string ""
+       .string ""
+       .string ""
+       .string ""
+       .string ""
+       .string ""
+       .text
+       .globl  _Z3f15v
+       .type   _Z3f15v, @function
+_Z3f15v:
+.LFB8:
+       .loc 2 113 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       .loc 2 114 0
+       movl    $.LC1, %eax
+       .loc 2 115 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE8:
+       .size   _Z3f15v, .-_Z3f15v
+       .globl  t17data
+       .section        .rodata
+.LC2:
+       .string "a"
+.LC3:
+       .string "b"
+.LC4:
+       .string "c"
+.LC5:
+       .string "d"
+.LC6:
+       .string "e"
+       .data
+       .align 32
+       .type   t17data, @object
+       .size   t17data, 40
+t17data:
+       .quad   .LC2
+       .quad   .LC3
+       .quad   .LC4
+       .quad   .LC5
+       .quad   .LC6
+       .text
+       .globl  _Z3f18i
+       .type   _Z3f18i, @function
+_Z3f18i:
+.LFB9:
+       .loc 2 128 0
+       .cfi_startproc
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movl    %edi, -4(%rbp)
+       .loc 2 129 0
+       cmpl    $4, -4(%rbp)
+       ja      .L19
+       movl    -4(%rbp), %eax
+       movq    .L25(,%rax,8), %rax
+       jmp     *%rax
+       .section        .rodata
+       .align 8
+       .align 4
+.L25:
+       .quad   .L20
+       .quad   .L21
+       .quad   .L22
+       .quad   .L23
+       .quad   .L24
+       .text
+.L20:
+       .loc 2 132 0
+       movl    $.LC2, %eax
+       jmp     .L26
+.L21:
+       .loc 2 134 0
+       movl    $.LC3, %eax
+       jmp     .L26
+.L22:
+       .loc 2 136 0
+       movl    $.LC4, %eax
+       jmp     .L26
+.L23:
+       .loc 2 138 0
+       movl    $.LC5, %eax
+       jmp     .L26
+.L24:
+       .loc 2 140 0
+       movl    $.LC6, %eax
+       jmp     .L26
+.L19:
+       .loc 2 142 0
+       movl    $0, %eax
+.L26:
+       .loc 2 144 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE9:
+       .size   _Z3f18i, .-_Z3f18i
+.Letext0:
+       .section        .debug_types.dwo,"G",@progbits,wt.bb2916f0c1bd34b5,comdat
+       .long   0xf3
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x8a
+       .byte   0xda
+       .byte   0x59
+       .byte   0x6e
+       .byte   0x4d
+       .byte   0x5c
+       .byte   0xa
+       .byte   0x88
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C3"
+       .byte   0x4
+       .byte   0x1
+       .byte   0x2f
+       .long   0xd6
+       .uleb128 0x3
+       .string "member1"
+       .byte   0x1
+       .byte   0x36
+       .long   0xd6
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .uleb128 0
+       .byte   0x1
+       .byte   0x32
+       .string "_ZN2C39testcase1Ev"
+       .long   0xdd
+       .byte   0x1
+       .long   0x65
+       .long   0x6b
+       .uleb128 0x5
+       .long   0xe5
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x33
+       .string "_ZN2C39testcase2Ev"
+       .long   0xdd
+       .byte   0x1
+       .long   0x8f
+       .long   0x95
+       .uleb128 0x5
+       .long   0xe5
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2
+       .byte   0x1
+       .byte   0x34
+       .string "_ZN2C39testcase3Ev"
+       .long   0xdd
+       .byte   0x1
+       .long   0xb9
+       .long   0xbf
+       .uleb128 0x5
+       .long   0xe5
+       .byte   0
+       .uleb128 0x6
+       .string "f4"
+       .byte   0x1
+       .byte   0x35
+       .uleb128 0x3
+       .long   0xeb
+       .byte   0x1
+       .long   0xcf
+       .uleb128 0x5
+       .long   0xe5
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .uleb128 0x8
+       .byte   0x8
+       .long   0xf1
+       .uleb128 0x9
+       .long   0xdd
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.bb2916f0c1bd34b5,comdat
+       .long   0x6e
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_2.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_types.dwo,"G",@progbits,wt.c419a9b7a4a2fab5,comdat
+       .long   0x138
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0xe3
+       .byte   0xad
+       .byte   0x5
+       .byte   0x3b
+       .byte   0x75
+       .byte   0xeb
+       .byte   0xfb
+       .byte   0xc7
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C1"
+       .byte   0x4
+       .byte   0x1
+       .byte   0x19
+       .long   0x126
+       .uleb128 0x3
+       .string "member1"
+       .byte   0x1
+       .byte   0x22
+       .long   0x126
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .uleb128 0
+       .byte   0x1
+       .byte   0x1c
+       .string "_ZN2C19testcase1Ev"
+       .long   0x12d
+       .byte   0x1
+       .long   0x65
+       .long   0x6b
+       .uleb128 0x5
+       .long   0x135
+       .byte   0
+       .uleb128 0xa
+       .string "t1a"
+       .byte   0x1
+       .byte   0x1d
+       .uleb128 0x4
+       .long   0x12d
+       .byte   0x1
+       .long   0x80
+       .long   0x86
+       .uleb128 0x5
+       .long   0x135
+       .byte   0
+       .uleb128 0xa
+       .string "t1_2"
+       .byte   0x1
+       .byte   0x1e
+       .uleb128 0x5
+       .long   0x126
+       .byte   0x1
+       .long   0x9c
+       .long   0xa2
+       .uleb128 0x5
+       .long   0x135
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x1f
+       .string "_ZN2C19testcase2Ev"
+       .long   0x12d
+       .byte   0x1
+       .long   0xc6
+       .long   0xcc
+       .uleb128 0x5
+       .long   0x135
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2
+       .byte   0x1
+       .byte   0x20
+       .string "_ZN2C19testcase3Ev"
+       .long   0x12d
+       .byte   0x1
+       .long   0xf0
+       .long   0xf6
+       .uleb128 0x5
+       .long   0x135
+       .byte   0
+       .uleb128 0xb
+       .string "testcase4"
+       .byte   0x1
+       .byte   0x21
+       .string "_ZN2C19testcase4Ev"
+       .long   0x12d
+       .byte   0x1
+       .long   0x11f
+       .uleb128 0x5
+       .long   0x135
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.c419a9b7a4a2fab5,comdat
+       .long   0x6e
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_2.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_info.dwo,"e",@progbits
+.Ldebug_info0:
+       .long   0x329
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .uleb128 0xc
+       .string "GNU C++ 4.7.x-google 20120720 (prerelease)"
+       .byte   0x4
+       .string "dwp_test_2.cc"
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .byte   0xb9
+       .byte   0xf8
+       .byte   0xe0
+       .byte   0x8c
+       .byte   0x71
+       .byte   0xab
+       .byte   0xc
+       .byte   0xcf
+       .uleb128 0xd
+       .string "C1"
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .long   0xb9
+       .uleb128 0xe
+       .string "t1a"
+       .byte   0x1
+       .byte   0x1d
+       .uleb128 0x4
+       .long   0xc0
+       .byte   0x1
+       .uleb128 0xe
+       .string "t1_2"
+       .byte   0x1
+       .byte   0x1e
+       .uleb128 0x5
+       .long   0xb9
+       .byte   0x1
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0xf
+       .byte   0x8
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .uleb128 0xd
+       .string "C3"
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0xef
+       .uleb128 0xe
+       .string "f4"
+       .byte   0x1
+       .byte   0x35
+       .uleb128 0x3
+       .long   0xfe
+       .byte   0x1
+       .byte   0
+       .uleb128 0xf
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .uleb128 0x9
+       .long   0xc0
+       .uleb128 0x8
+       .byte   0x8
+       .long   0xf9
+       .uleb128 0x10
+       .string "f13i"
+       .byte   0x1
+       .byte   0x46
+       .string "_Z4f13iv"
+       .uleb128 0
+       .quad   .LFE0-.LFB0
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x11
+       .long   0xaa
+       .byte   0x2
+       .uleb128 0x1
+       .quad   .LFE1-.LFB1
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x139
+       .long   0x147
+       .uleb128 0x12
+       .string "this"
+       .long   0x147
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x13
+       .long   0xc8
+       .uleb128 0x14
+       .long   0x9d
+       .byte   0x2
+       .byte   0x24
+       .uleb128 0x2
+       .quad   .LFE2-.LFB2
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x166
+       .long   0x174
+       .uleb128 0x12
+       .string "this"
+       .long   0x147
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x15
+       .string "f10"
+       .byte   0x2
+       .byte   0x48
+       .string "_Z3f10v"
+       .long   0xb9
+       .uleb128 0x3
+       .quad   .LFE3-.LFB3
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x16
+       .string "f11b"
+       .byte   0x2
+       .byte   0x50
+       .string "_Z4f11bPFivE"
+       .long   0xb9
+       .uleb128 0x4
+       .quad   .LFE4-.LFB4
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x1c9
+       .uleb128 0x17
+       .string "pfn"
+       .byte   0x2
+       .byte   0x50
+       .long   0x1ce
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x9
+       .long   0xb9
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x1c9
+       .uleb128 0x18
+       .long   0xe2
+       .byte   0x2
+       .byte   0x58
+       .uleb128 0x5
+       .quad   .LFE5-.LFB5
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x1ee
+       .long   0x1fc
+       .uleb128 0x12
+       .string "this"
+       .long   0x1fc
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -24
+       .byte   0
+       .uleb128 0x13
+       .long   0xef
+       .uleb128 0x19
+       .uleb128 0x15
+       .string "f13"
+       .byte   0x2
+       .byte   0x60
+       .string "_Z3f13v"
+       .long   0x220
+       .uleb128 0x6
+       .quad   .LFE6-.LFB6
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x201
+       .uleb128 0x15
+       .string "f14"
+       .byte   0x2
+       .byte   0x68
+       .string "_Z3f14v"
+       .long   0x244
+       .uleb128 0x7
+       .quad   .LFE7-.LFB7
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x24a
+       .uleb128 0x13
+       .long   0x24f
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x6
+       .string "char"
+       .uleb128 0x15
+       .string "f15"
+       .byte   0x2
+       .byte   0x70
+       .string "_Z3f15v"
+       .long   0x275
+       .uleb128 0x8
+       .quad   .LFE8-.LFB8
+       .uleb128 0x1
+       .byte   0x9c
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x27b
+       .uleb128 0x13
+       .long   0x280
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "wchar_t"
+       .uleb128 0x1a
+       .string "f18"
+       .byte   0x2
+       .byte   0x7f
+       .string "_Z3f18i"
+       .long   0x244
+       .uleb128 0x9
+       .quad   .LFE9-.LFB9
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x2ba
+       .uleb128 0x17
+       .string "i"
+       .byte   0x2
+       .byte   0x7f
+       .long   0xb9
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -20
+       .byte   0
+       .uleb128 0x1b
+       .string "v2"
+       .byte   0x2
+       .byte   0x2b
+       .long   0xb9
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0xa
+       .uleb128 0x1b
+       .string "v3"
+       .byte   0x2
+       .byte   0x30
+       .long   0xb9
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0xb
+       .uleb128 0x1c
+       .long   0x24f
+       .long   0x2e4
+       .uleb128 0x1d
+       .long   0x2e4
+       .byte   0xc
+       .byte   0
+       .uleb128 0x7
+       .byte   0x8
+       .byte   0x7
+       .string "sizetype"
+       .uleb128 0x1b
+       .string "v4"
+       .byte   0x2
+       .byte   0x34
+       .long   0x2d4
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0xc
+       .uleb128 0x1b
+       .string "v5"
+       .byte   0x2
+       .byte   0x39
+       .long   0x2d4
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0xd
+       .uleb128 0x1c
+       .long   0x244
+       .long   0x31a
+       .uleb128 0x1d
+       .long   0x2e4
+       .byte   0x4
+       .byte   0
+       .uleb128 0x1b
+       .string "t17data"
+       .byte   0x2
+       .byte   0x77
+       .long   0x30a
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0xe
+       .byte   0
+       .section        .debug_info,"",@progbits
+.Lskeleton_debug_info0:
+       .long   0x7e
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .uleb128 0x1
+       .long   .Ldebug_ranges0+0
+       .quad   0
+       .long   .Ldebug_line0
+       .byte   0xb9
+       .byte   0xf8
+       .byte   0xe0
+       .byte   0x8c
+       .byte   0x71
+       .byte   0xab
+       .byte   0xc
+       .byte   0xcf
+       .long   .Ldebug_ranges0
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_2.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_abbrev,"",@progbits
+.Lskeleton_debug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x11
+       .byte   0
+       .uleb128 0x55
+       .uleb128 0x17
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x10
+       .uleb128 0x17
+       .uleb128 0x2131
+       .uleb128 0x7
+       .uleb128 0x2132
+       .uleb128 0x17
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2130
+       .uleb128 0x8
+       .uleb128 0x2134
+       .uleb128 0x17
+       .uleb128 0x2135
+       .uleb128 0x17
+       .uleb128 0x2133
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x41
+       .byte   0
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2130
+       .uleb128 0x8
+       .uleb128 0x2134
+       .uleb128 0x17
+       .uleb128 0x2135
+       .uleb128 0x17
+       .uleb128 0x2133
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_abbrev.dwo,"e",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x41
+       .byte   0x1
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x210f
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x2
+       .byte   0x1
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xd
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x38
+       .uleb128 0xb
+       .uleb128 0x32
+       .uleb128 0xb
+       .byte   0
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x5
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x34
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x6
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x1f02
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .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 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x9
+       .uleb128 0x15
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x1f02
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xc
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0x8
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2131
+       .uleb128 0x7
+       .byte   0
+       .byte   0
+       .uleb128 0xd
+       .uleb128 0x2
+       .byte   0x1
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x69
+       .uleb128 0x20
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xe
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x1f02
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0xf
+       .uleb128 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x20
+       .byte   0
+       .byte   0
+       .uleb128 0x10
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2117
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x11
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x47
+       .uleb128 0x13
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x2117
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x12
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x34
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x13
+       .uleb128 0x26
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x14
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x47
+       .uleb128 0x13
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x2116
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x15
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2117
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x16
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2116
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x17
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x18
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x47
+       .uleb128 0x13
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x2117
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x19
+       .uleb128 0x15
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0x1a
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2117
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x1b
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x1c
+       .uleb128 0x1
+       .byte   0x1
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x1d
+       .uleb128 0x21
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x2f
+       .uleb128 0xb
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_gnu_pubnames,"",@progbits
+.Ldebug_pubnames0:
+       .long   0xa3
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .long   0x32d
+       .long   0x104
+       .byte   0x30
+       .string "f13i"
+       .long   0x120
+       .byte   0x30
+       .string "C1::t1_2"
+       .long   0x14c
+       .byte   0x30
+       .string "C1::t1a"
+       .long   0x174
+       .byte   0x30
+       .string "f10"
+       .long   0x192
+       .byte   0x30
+       .string "f11b"
+       .long   0x1d4
+       .byte   0x30
+       .string "C3::f4"
+       .long   0x202
+       .byte   0x30
+       .string "f13"
+       .long   0x226
+       .byte   0x30
+       .string "f14"
+       .long   0x257
+       .byte   0x30
+       .string "f15"
+       .long   0x28b
+       .byte   0x30
+       .string "f18"
+       .long   0x2ba
+       .byte   0x20
+       .string "v2"
+       .long   0x2c7
+       .byte   0x20
+       .string "v3"
+       .long   0x2f0
+       .byte   0x20
+       .string "v4"
+       .long   0x2fd
+       .byte   0x20
+       .string "v5"
+       .long   0x31a
+       .byte   0x20
+       .string "t17data"
+       .long   0
+       .section        .debug_gnu_pubtypes,"",@progbits
+.Ldebug_pubtypes0:
+       .long   0x56
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .long   0x32d
+       .long   0xb9
+       .byte   0x90
+       .string "int"
+       .long   0xc0
+       .byte   0x90
+       .string "bool"
+       .long   0x8d
+       .byte   0x10
+       .string "C1"
+       .long   0xd2
+       .byte   0x10
+       .string "C3"
+       .long   0x24f
+       .byte   0x90
+       .string "char"
+       .long   0x280
+       .byte   0x90
+       .string "wchar_t"
+       .long   0x2e4
+       .byte   0x90
+       .string "sizetype"
+       .long   0
+       .section        .debug_aranges,"",@progbits
+       .long   0x3c
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .byte   0x8
+       .byte   0
+       .value  0
+       .value  0
+       .quad   .Ltext0
+       .quad   .Letext0-.Ltext0
+       .quad   .LFB0
+       .quad   .LFE0-.LFB0
+       .quad   0
+       .quad   0
+       .section        .debug_ranges,"",@progbits
+.Ldebug_ranges0:
+       .quad   .Ltext0
+       .quad   .Letext0
+       .quad   .LFB0
+       .quad   .LFE0
+       .quad   0
+       .quad   0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_line.dwo,"e",@progbits
+.Lskeleton_debug_line0:
+       .long   .LELT0-.LSLT0
+.LSLT0:
+       .value  0x4
+       .long   .LELTP0-.LASLTP0
+.LASLTP0:
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0xf6
+       .byte   0xf2
+       .byte   0xd
+       .byte   0
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0
+       .byte   0
+       .byte   0
+       .byte   0x1
+       .byte   0
+       .byte   0
+       .byte   0x1
+       .byte   0
+       .string "dwp_test.h"
+       .uleb128 0
+       .uleb128 0
+       .uleb128 0
+       .string "dwp_test_2.cc"
+       .uleb128 0
+       .uleb128 0
+       .uleb128 0
+       .byte   0
+.LELTP0:
+.LELT0:
+       .section        .debug_str_offsets.dwo,"e",@progbits
+       .long   0
+       .long   0xa
+       .long   0x14
+       .long   0x1e
+       .long   0x2a
+       .long   0x37
+       .section        .debug_str.dwo,"e",@progbits
+.LASF0:
+       .string "testcase1"
+.LASF1:
+       .string "testcase2"
+.LASF2:
+       .string "testcase3"
+.LASF3:
+       .string "_ZN2C32f4Ev"
+.LASF4:
+       .string "_ZN2C13t1aEv"
+.LASF5:
+       .string "_ZN2C14t1_2Ev"
+       .section        .debug_addr,"",@progbits
+.Ldebug_addr0:
+       .quad   .LFB0
+       .quad   .LFB1
+       .quad   .LFB2
+       .quad   .LFB3
+       .quad   .LFB4
+       .quad   .LFB5
+       .quad   .LFB6
+       .quad   .LFB7
+       .quad   .LFB8
+       .quad   .LFB9
+       .quad   v2
+       .quad   v3
+       .quad   v4
+       .quad   v5
+       .quad   t17data
+       .ident  "GCC: (Google_crosstoolv16-gcc-4.7.x-grtev3) 4.7.x-google 20120720 (prerelease)"
+       .section        .note.GNU-stack,"",@progbits
diff --git a/gold/testsuite/dwp_test_2.sh b/gold/testsuite/dwp_test_2.sh
new file mode 100755 (executable)
index 0000000..619d73b
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+# dwp_test_2.sh -- Test the dwp tool.
+
+# Copyright 2012 Free Software Foundation, Inc.
+# Written by Cary Coutant <ccoutant@google.com>.
+
+# This file is part of gold.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+check()
+{
+    if ! grep -q "$2" "$1"
+    then
+       echo "Did not find expected output:"
+       echo "   $2"
+       echo ""
+       echo "Actual error output below:"
+       cat "$1"
+       exit 1
+    fi
+}
+
+check_num()
+{
+    n=$(grep -c "$2" "$1")
+    if test "$n" -ne "$3"
+    then
+       echo "Found $n occurrences (should find $3):"
+       echo "   $2"
+       echo ""
+       echo "Actual error output below:"
+       cat "$1"
+       exit 1
+    fi
+}
+
+STDOUT="dwp_test_2.stdout"
+
+check $STDOUT "^Contents of the .debug_info.dwo section"
+check_num $STDOUT "DW_TAG_compile_unit" 4
+check_num $STDOUT "DW_TAG_type_unit" 3
+check_num $STDOUT "DW_AT_name.*: C1" 3
+check_num $STDOUT "DW_AT_name.*: C2" 2
+check_num $STDOUT "DW_AT_name.*: C3" 3
+check_num $STDOUT "DW_AT_name.*: testcase1" 6
+check_num $STDOUT "DW_AT_name.*: testcase2" 6
+check_num $STDOUT "DW_AT_name.*: testcase3" 6
+check_num $STDOUT "DW_AT_name.*: testcase4" 4
diff --git a/gold/testsuite/dwp_test_main.cc b/gold/testsuite/dwp_test_main.cc
new file mode 100644 (file)
index 0000000..abddc0f
--- /dev/null
@@ -0,0 +1,59 @@
+// dwp_test_main.cc -- a test case for dwp
+
+// Copyright 2012 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// Adapted from two_file_test_main.cc.
+
+#include <cassert>
+
+#include "dwp_test.h"
+
+int
+main()
+{
+  C1 c1;
+  C2 c2;
+
+  // Initialize common data.
+  v3 = 789;
+  for (int i = 0; i < 13; ++i)
+    v5[i] = v4[i];
+
+  assert(c1.testcase1());
+  assert(c1.t1a());
+  assert(c1.testcase2());
+  assert(c1.testcase3());
+  assert(c1.testcase4());
+  assert(c2.testcase1());
+  assert(c2.testcase2());
+  assert(c2.testcase3());
+  assert(c2.testcase4());
+  assert(c3.testcase1());
+  assert(c3.testcase2());
+  assert(c3.testcase3());
+  assert(t12());
+  assert(t13());
+  assert(t16());
+  assert(t16a());
+  assert(t17());
+  assert(t18());
+  return 0;
+}
diff --git a/gold/testsuite/dwp_test_main.s b/gold/testsuite/dwp_test_main.s
new file mode 100644 (file)
index 0000000..f864365
--- /dev/null
@@ -0,0 +1,1399 @@
+       .file   "dwp_test_main.cc"
+       .text
+.Ltext0:
+       .section        .rodata
+.LC0:
+       .string "dwp_test_main.cc"
+.LC1:
+       .string "c1.testcase1()"
+.LC2:
+       .string "c1.t1a()"
+.LC3:
+       .string "c1.testcase2()"
+.LC4:
+       .string "c1.testcase3()"
+.LC5:
+       .string "c1.testcase4()"
+.LC6:
+       .string "c2.testcase1()"
+.LC7:
+       .string "c2.testcase2()"
+.LC8:
+       .string "c2.testcase3()"
+.LC9:
+       .string "c2.testcase4()"
+.LC10:
+       .string "c3.testcase1()"
+.LC11:
+       .string "c3.testcase2()"
+.LC12:
+       .string "c3.testcase3()"
+.LC13:
+       .string "t12()"
+.LC14:
+       .string "t13()"
+.LC15:
+       .string "t16()"
+.LC16:
+       .string "t16a()"
+.LC17:
+       .string "t17()"
+.LC18:
+       .string "t18()"
+       .text
+       .globl  main
+       .type   main, @function
+main:
+.LFB1:
+       .file 1 "dwp_test_main.cc"
+       .loc 1 31 0
+       .cfi_startproc
+       .cfi_personality 0x3,__gxx_personality_v0
+       .cfi_lsda 0x3,.LLSDA1
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       subq    $32, %rsp
+.LBB2:
+       .loc 1 36 0
+       movl    $789, v3(%rip)
+.LBB3:
+       .loc 1 37 0
+       movl    $0, -4(%rbp)
+       jmp     .L2
+.L3:
+       .loc 1 38 0
+       movl    -4(%rbp), %eax
+       cltq
+       movzbl  v4(%rax), %edx
+       movl    -4(%rbp), %eax
+       cltq
+       movb    %dl, v5(%rax)
+       .loc 1 37 0 discriminator 2
+       addl    $1, -4(%rbp)
+.L2:
+       .loc 1 37 0 is_stmt 0 discriminator 1
+       cmpl    $12, -4(%rbp)
+       setle   %al
+       testb   %al, %al
+       jne     .L3
+.LBE3:
+       .loc 1 40 0 is_stmt 1
+       leaq    -16(%rbp), %rax
+       movq    %rax, %rdi
+.LEHB0:
+       call    _ZN2C19testcase1Ev
+       .loc 1 40 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L4
+       .loc 1 40 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $40, %edx
+       movl    $.LC0, %esi
+       movl    $.LC1, %edi
+       call    __assert_fail
+.L4:
+       .loc 1 41 0 is_stmt 1
+       leaq    -16(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C13t1aEv
+       .loc 1 41 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L5
+       .loc 1 41 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $41, %edx
+       movl    $.LC0, %esi
+       movl    $.LC2, %edi
+       call    __assert_fail
+.L5:
+       .loc 1 42 0 is_stmt 1
+       leaq    -16(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C19testcase2Ev
+       .loc 1 42 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L6
+       .loc 1 42 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $42, %edx
+       movl    $.LC0, %esi
+       movl    $.LC3, %edi
+       call    __assert_fail
+.L6:
+       .loc 1 43 0 is_stmt 1
+       leaq    -16(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C19testcase3Ev
+       .loc 1 43 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L7
+       .loc 1 43 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $43, %edx
+       movl    $.LC0, %esi
+       movl    $.LC4, %edi
+       call    __assert_fail
+.L7:
+       .loc 1 44 0 is_stmt 1
+       leaq    -16(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C19testcase4Ev
+       .loc 1 44 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L8
+       .loc 1 44 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $44, %edx
+       movl    $.LC0, %esi
+       movl    $.LC5, %edi
+       call    __assert_fail
+.L8:
+       .loc 1 45 0 is_stmt 1
+       leaq    -32(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C29testcase1Ev
+       .loc 1 45 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L9
+       .loc 1 45 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $45, %edx
+       movl    $.LC0, %esi
+       movl    $.LC6, %edi
+       call    __assert_fail
+.L9:
+       .loc 1 46 0 is_stmt 1
+       leaq    -32(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C29testcase2Ev
+       .loc 1 46 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L10
+       .loc 1 46 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $46, %edx
+       movl    $.LC0, %esi
+       movl    $.LC7, %edi
+       call    __assert_fail
+.L10:
+       .loc 1 47 0 is_stmt 1
+       leaq    -32(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C29testcase3Ev
+       .loc 1 47 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L11
+       .loc 1 47 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $47, %edx
+       movl    $.LC0, %esi
+       movl    $.LC8, %edi
+       call    __assert_fail
+.L11:
+       .loc 1 48 0 is_stmt 1
+       leaq    -32(%rbp), %rax
+       movq    %rax, %rdi
+       call    _ZN2C29testcase4Ev
+       .loc 1 48 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L12
+       .loc 1 48 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $48, %edx
+       movl    $.LC0, %esi
+       movl    $.LC9, %edi
+       call    __assert_fail
+.L12:
+       .loc 1 49 0 is_stmt 1
+       movl    $c3, %edi
+       call    _ZN2C39testcase1Ev
+       .loc 1 49 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L13
+       .loc 1 49 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $49, %edx
+       movl    $.LC0, %esi
+       movl    $.LC10, %edi
+       call    __assert_fail
+.L13:
+       .loc 1 50 0 is_stmt 1
+       movl    $c3, %edi
+       call    _ZN2C39testcase2Ev
+       .loc 1 50 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L14
+       .loc 1 50 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $50, %edx
+       movl    $.LC0, %esi
+       movl    $.LC11, %edi
+       call    __assert_fail
+.L14:
+       .loc 1 51 0 is_stmt 1
+       movl    $c3, %edi
+       call    _ZN2C39testcase3Ev
+       .loc 1 51 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L15
+       .loc 1 51 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $51, %edx
+       movl    $.LC0, %esi
+       movl    $.LC12, %edi
+       call    __assert_fail
+.L15:
+       .loc 1 52 0 is_stmt 1
+       call    _Z3t12v
+       .loc 1 52 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L16
+       .loc 1 52 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $52, %edx
+       movl    $.LC0, %esi
+       movl    $.LC13, %edi
+       call    __assert_fail
+.L16:
+       .loc 1 53 0 is_stmt 1
+       call    _Z3t13v
+       .loc 1 53 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L17
+       .loc 1 53 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $53, %edx
+       movl    $.LC0, %esi
+       movl    $.LC14, %edi
+       call    __assert_fail
+.L17:
+       .loc 1 54 0 is_stmt 1
+       call    _Z3t16v
+       .loc 1 54 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L18
+       .loc 1 54 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $54, %edx
+       movl    $.LC0, %esi
+       movl    $.LC15, %edi
+       call    __assert_fail
+.L18:
+       .loc 1 55 0 is_stmt 1
+       call    _Z4t16av
+       .loc 1 55 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L19
+       .loc 1 55 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $55, %edx
+       movl    $.LC0, %esi
+       movl    $.LC16, %edi
+       call    __assert_fail
+.L19:
+       .loc 1 56 0 is_stmt 1
+       call    _Z3t17v
+       .loc 1 56 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L20
+       .loc 1 56 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $56, %edx
+       movl    $.LC0, %esi
+       movl    $.LC17, %edi
+       call    __assert_fail
+.L20:
+       .loc 1 57 0 is_stmt 1
+       call    _Z3t18v
+.LEHE0:
+       .loc 1 57 0 is_stmt 0 discriminator 1
+       testb   %al, %al
+       jne     .L21
+       .loc 1 57 0 discriminator 2
+       movl    $_ZZ4mainE19__PRETTY_FUNCTION__, %ecx
+       movl    $57, %edx
+       movl    $.LC0, %esi
+       movl    $.LC18, %edi
+       call    __assert_fail
+.L21:
+       .loc 1 58 0 is_stmt 1
+       movl    $0, %eax
+       jmp     .L25
+.L24:
+       movq    %rax, %rdi
+.LEHB1:
+       call    _Unwind_Resume
+.LEHE1:
+.L25:
+.LBE2:
+       .loc 1 59 0
+       leave
+       .cfi_def_cfa 7, 8
+       ret
+       .cfi_endproc
+.LFE1:
+       .globl  __gxx_personality_v0
+       .section        .gcc_except_table,"a",@progbits
+.LLSDA1:
+       .byte   0xff
+       .byte   0xff
+       .byte   0x1
+       .uleb128 .LLSDACSE1-.LLSDACSB1
+.LLSDACSB1:
+       .uleb128 .LEHB0-.LFB1
+       .uleb128 .LEHE0-.LEHB0
+       .uleb128 .L24-.LFB1
+       .uleb128 0
+       .uleb128 .LEHB1-.LFB1
+       .uleb128 .LEHE1-.LEHB1
+       .uleb128 0
+       .uleb128 0
+.LLSDACSE1:
+       .text
+       .size   main, .-main
+       .section        .rodata
+       .type   _ZZ4mainE19__PRETTY_FUNCTION__, @object
+       .size   _ZZ4mainE19__PRETTY_FUNCTION__, 11
+_ZZ4mainE19__PRETTY_FUNCTION__:
+       .string "int main()"
+       .text
+.Letext0:
+       .file 2 "dwp_test.h"
+       .section        .debug_types.dwo,"G",@progbits,wt.bb2916f0c1bd34b5,comdat
+       .long   0xf7
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x8a
+       .byte   0xda
+       .byte   0x59
+       .byte   0x6e
+       .byte   0x4d
+       .byte   0x5c
+       .byte   0xa
+       .byte   0x88
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C3"
+       .byte   0x4
+       .byte   0x2
+       .byte   0x2f
+       .long   0xda
+       .uleb128 0x3
+       .uleb128 0x3
+       .byte   0x2
+       .byte   0x36
+       .long   0xda
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .uleb128 0
+       .byte   0x2
+       .byte   0x32
+       .string "_ZN2C39testcase1Ev"
+       .long   0xe1
+       .byte   0x1
+       .long   0x5e
+       .long   0x64
+       .uleb128 0x5
+       .long   0xe9
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x33
+       .string "_ZN2C39testcase2Ev"
+       .long   0xe1
+       .byte   0x1
+       .long   0x88
+       .long   0x8e
+       .uleb128 0x5
+       .long   0xe9
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2
+       .byte   0x2
+       .byte   0x34
+       .string "_ZN2C39testcase3Ev"
+       .long   0xe1
+       .byte   0x1
+       .long   0xb2
+       .long   0xb8
+       .uleb128 0x5
+       .long   0xe9
+       .byte   0
+       .uleb128 0x6
+       .string "f4"
+       .byte   0x2
+       .byte   0x35
+       .string "_ZN2C32f4Ev"
+       .long   0xef
+       .byte   0x1
+       .long   0xd3
+       .uleb128 0x5
+       .long   0xe9
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .uleb128 0x8
+       .byte   0x8
+       .long   0xf5
+       .uleb128 0x9
+       .long   0xe1
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.bb2916f0c1bd34b5,comdat
+       .long   0x71
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_main.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_types.dwo,"G",@progbits,wt.66526f88bcc798ab,comdat
+       .long   0xf1
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0x66
+       .byte   0x52
+       .byte   0x6f
+       .byte   0x88
+       .byte   0xbc
+       .byte   0xc7
+       .byte   0x98
+       .byte   0xab
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x4b
+       .byte   0xf9
+       .byte   0xce
+       .byte   0xbf
+       .byte   0xd8
+       .byte   0xf0
+       .byte   0x4a
+       .byte   0xae
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C2"
+       .byte   0x4
+       .byte   0x2
+       .byte   0x25
+       .long   0xdf
+       .uleb128 0x3
+       .uleb128 0x3
+       .byte   0x2
+       .byte   0x2c
+       .long   0xdf
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .uleb128 0
+       .byte   0x2
+       .byte   0x28
+       .string "_ZN2C29testcase1Ev"
+       .long   0xe6
+       .byte   0x1
+       .long   0x5e
+       .long   0x64
+       .uleb128 0x5
+       .long   0xee
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x29
+       .string "_ZN2C29testcase2Ev"
+       .long   0xe6
+       .byte   0x1
+       .long   0x88
+       .long   0x8e
+       .uleb128 0x5
+       .long   0xee
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2
+       .byte   0x2
+       .byte   0x2a
+       .string "_ZN2C29testcase3Ev"
+       .long   0xe6
+       .byte   0x1
+       .long   0xb2
+       .long   0xb8
+       .uleb128 0x5
+       .long   0xee
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0x4
+       .byte   0x2
+       .byte   0x2b
+       .string "_ZN2C29testcase4Ev"
+       .long   0xe6
+       .byte   0x1
+       .long   0xd8
+       .uleb128 0x5
+       .long   0xee
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.66526f88bcc798ab,comdat
+       .long   0x71
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0x66
+       .byte   0x52
+       .byte   0x6f
+       .byte   0x88
+       .byte   0xbc
+       .byte   0xc7
+       .byte   0x98
+       .byte   0xab
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_main.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_types.dwo,"G",@progbits,wt.c419a9b7a4a2fab5,comdat
+       .long   0x141
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .long   0x25
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0xe3
+       .byte   0xad
+       .byte   0x5
+       .byte   0x3b
+       .byte   0x75
+       .byte   0xeb
+       .byte   0xfb
+       .byte   0xc7
+       .long   .Lskeleton_debug_line0
+       .uleb128 0x2
+       .string "C1"
+       .byte   0x4
+       .byte   0x2
+       .byte   0x19
+       .long   0x12f
+       .uleb128 0x3
+       .uleb128 0x3
+       .byte   0x2
+       .byte   0x22
+       .long   0x12f
+       .byte   0
+       .byte   0x1
+       .uleb128 0x4
+       .uleb128 0
+       .byte   0x2
+       .byte   0x1c
+       .string "_ZN2C19testcase1Ev"
+       .long   0x136
+       .byte   0x1
+       .long   0x5e
+       .long   0x64
+       .uleb128 0x5
+       .long   0x13e
+       .byte   0
+       .uleb128 0xb
+       .string "t1a"
+       .byte   0x2
+       .byte   0x1d
+       .string "_ZN2C13t1aEv"
+       .long   0x136
+       .byte   0x1
+       .long   0x85
+       .long   0x8b
+       .uleb128 0x5
+       .long   0x13e
+       .byte   0
+       .uleb128 0xb
+       .string "t1_2"
+       .byte   0x2
+       .byte   0x1e
+       .string "_ZN2C14t1_2Ev"
+       .long   0x12f
+       .byte   0x1
+       .long   0xae
+       .long   0xb4
+       .uleb128 0x5
+       .long   0x13e
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x1f
+       .string "_ZN2C19testcase2Ev"
+       .long   0x136
+       .byte   0x1
+       .long   0xd8
+       .long   0xde
+       .uleb128 0x5
+       .long   0x13e
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2
+       .byte   0x2
+       .byte   0x20
+       .string "_ZN2C19testcase3Ev"
+       .long   0x136
+       .byte   0x1
+       .long   0x102
+       .long   0x108
+       .uleb128 0x5
+       .long   0x13e
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0x4
+       .byte   0x2
+       .byte   0x21
+       .string "_ZN2C19testcase4Ev"
+       .long   0x136
+       .byte   0x1
+       .long   0x128
+       .uleb128 0x5
+       .long   0x13e
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0x8
+       .byte   0x8
+       .long   0x25
+       .byte   0
+       .section        .debug_types,"G",@progbits,wt.c419a9b7a4a2fab5,comdat
+       .long   0x71
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .long   0
+       .uleb128 0x2
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_main.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_info.dwo,"e",@progbits
+.Ldebug_info0:
+       .long   0x178
+       .value  0x4
+       .long   .Ldebug_abbrev0
+       .byte   0x8
+       .uleb128 0xc
+       .string "GNU C++ 4.7.x-google 20120720 (prerelease)"
+       .byte   0x4
+       .string "dwp_test_main.cc"
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .byte   0xc8
+       .byte   0xeb
+       .byte   0x9a
+       .byte   0x5c
+       .byte   0xd9
+       .byte   0x51
+       .byte   0xba
+       .byte   0xe5
+       .uleb128 0x7
+       .byte   0x4
+       .byte   0x5
+       .string "int"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x2
+       .string "bool"
+       .uleb128 0xd
+       .string "main"
+       .byte   0x1
+       .byte   0x1e
+       .long   0x90
+       .uleb128 0
+       .quad   .LFE1-.LFB1
+       .uleb128 0x1
+       .byte   0x9c
+       .long   0x11b
+       .uleb128 0xe
+       .uleb128 0x1
+       .quad   .LBE2-.LBB2
+       .uleb128 0xf
+       .string "c1"
+       .byte   0x1
+       .byte   0x20
+       .byte   0xc4
+       .byte   0x19
+       .byte   0xa9
+       .byte   0xb7
+       .byte   0xa4
+       .byte   0xa2
+       .byte   0xfa
+       .byte   0xb5
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -32
+       .uleb128 0xf
+       .string "c2"
+       .byte   0x1
+       .byte   0x21
+       .byte   0x66
+       .byte   0x52
+       .byte   0x6f
+       .byte   0x88
+       .byte   0xbc
+       .byte   0xc7
+       .byte   0x98
+       .byte   0xab
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -48
+       .uleb128 0x10
+       .string "__PRETTY_FUNCTION__"
+       .long   0x13f
+       .uleb128 0x2
+       .byte   0xfb
+       .uleb128 0x2
+       .uleb128 0xe
+       .uleb128 0x3
+       .quad   .LBE3-.LBB3
+       .uleb128 0x11
+       .string "i"
+       .byte   0x1
+       .byte   0x25
+       .long   0x90
+       .uleb128 0x2
+       .byte   0x91
+       .sleb128 -20
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0x12
+       .long   0x137
+       .long   0x12b
+       .uleb128 0x13
+       .long   0x12b
+       .byte   0xa
+       .byte   0
+       .uleb128 0x7
+       .byte   0x8
+       .byte   0x7
+       .string "sizetype"
+       .uleb128 0x7
+       .byte   0x1
+       .byte   0x6
+       .string "char"
+       .uleb128 0x14
+       .long   0x11b
+       .uleb128 0x15
+       .string "c3"
+       .byte   0x2
+       .byte   0x39
+       .byte   0xbb
+       .byte   0x29
+       .byte   0x16
+       .byte   0xf0
+       .byte   0xc1
+       .byte   0xbd
+       .byte   0x34
+       .byte   0xb5
+       .uleb128 0x16
+       .string "v3"
+       .byte   0x2
+       .byte   0x3c
+       .long   0x90
+       .uleb128 0x12
+       .long   0x137
+       .long   0x167
+       .uleb128 0x17
+       .byte   0
+       .uleb128 0x16
+       .string "v4"
+       .byte   0x2
+       .byte   0x3d
+       .long   0x15c
+       .uleb128 0x16
+       .string "v5"
+       .byte   0x2
+       .byte   0x3e
+       .long   0x15c
+       .byte   0
+       .section        .debug_info,"",@progbits
+.Lskeleton_debug_info0:
+       .long   0x81
+       .value  0x4
+       .long   .Lskeleton_debug_abbrev0
+       .byte   0x8
+       .uleb128 0x1
+       .quad   .Ltext0
+       .quad   .Letext0-.Ltext0
+       .long   .Ldebug_line0
+       .byte   0xc8
+       .byte   0xeb
+       .byte   0x9a
+       .byte   0x5c
+       .byte   0xd9
+       .byte   0x51
+       .byte   0xba
+       .byte   0xe5
+       .string "/home/ccoutant/opensource/binutils-git/binutils/gold/testsuite"
+       .string "dwp_test_main.dwo"
+       .long   .Ldebug_pubnames0
+       .long   .Ldebug_pubtypes0
+       .long   .Ldebug_addr0
+       .section        .debug_abbrev,"",@progbits
+.Lskeleton_debug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x11
+       .byte   0
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .uleb128 0x2131
+       .uleb128 0x7
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2130
+       .uleb128 0x8
+       .uleb128 0x2134
+       .uleb128 0x17
+       .uleb128 0x2135
+       .uleb128 0x17
+       .uleb128 0x2133
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x41
+       .byte   0
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2130
+       .uleb128 0x8
+       .uleb128 0x2134
+       .uleb128 0x17
+       .uleb128 0x2135
+       .uleb128 0x17
+       .uleb128 0x2133
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_abbrev.dwo,"e",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x41
+       .byte   0x1
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x210f
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x2
+       .byte   0x1
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xd
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x38
+       .uleb128 0xb
+       .uleb128 0x32
+       .uleb128 0xb
+       .byte   0
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x5
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x34
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x6
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .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 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x9
+       .uleb128 0x15
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x1f02
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x6e
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x32
+       .uleb128 0xb
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x64
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xc
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0x8
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x1b
+       .uleb128 0x8
+       .uleb128 0x2131
+       .uleb128 0x7
+       .byte   0
+       .byte   0
+       .uleb128 0xd
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x2116
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xe
+       .uleb128 0xb
+       .byte   0x1
+       .uleb128 0x11
+       .uleb128 0x1f01
+       .uleb128 0x12
+       .uleb128 0x7
+       .byte   0
+       .byte   0
+       .uleb128 0xf
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x20
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x10
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x34
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x11
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x12
+       .uleb128 0x1
+       .byte   0x1
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x13
+       .uleb128 0x21
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x2f
+       .uleb128 0xb
+       .byte   0
+       .byte   0
+       .uleb128 0x14
+       .uleb128 0x26
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x15
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x20
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x16
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x8
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x17
+       .uleb128 0x21
+       .byte   0
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_gnu_pubnames,"",@progbits
+.Ldebug_pubnames0:
+       .long   0x18
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .long   0x17c
+       .long   0x9f
+       .byte   0x30
+       .string "main"
+       .long   0
+       .section        .debug_gnu_pubtypes,"",@progbits
+.Ldebug_pubtypes0:
+       .long   0x51
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .long   0x17c
+       .long   0x90
+       .byte   0x90
+       .string "int"
+       .long   0x97
+       .byte   0x90
+       .string "bool"
+       .long   0
+       .byte   0x10
+       .string "C1"
+       .long   0
+       .byte   0x10
+       .string "C2"
+       .long   0
+       .byte   0x10
+       .string "C3"
+       .long   0x12b
+       .byte   0x90
+       .string "sizetype"
+       .long   0x137
+       .byte   0x90
+       .string "char"
+       .long   0
+       .section        .debug_aranges,"",@progbits
+       .long   0x2c
+       .value  0x2
+       .long   .Lskeleton_debug_info0
+       .byte   0x8
+       .byte   0
+       .value  0
+       .value  0
+       .quad   .Ltext0
+       .quad   .Letext0-.Ltext0
+       .quad   0
+       .quad   0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_line.dwo,"e",@progbits
+.Lskeleton_debug_line0:
+       .long   .LELT0-.LSLT0
+.LSLT0:
+       .value  0x4
+       .long   .LELTP0-.LASLTP0
+.LASLTP0:
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0xf6
+       .byte   0xf2
+       .byte   0xd
+       .byte   0
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0x1
+       .byte   0
+       .byte   0
+       .byte   0
+       .byte   0x1
+       .byte   0
+       .byte   0
+       .byte   0x1
+       .byte   0
+       .string "dwp_test_main.cc"
+       .uleb128 0
+       .uleb128 0
+       .uleb128 0
+       .string "dwp_test.h"
+       .uleb128 0
+       .uleb128 0
+       .uleb128 0
+       .byte   0
+.LELTP0:
+.LELT0:
+       .section        .debug_str_offsets.dwo,"e",@progbits
+       .long   0
+       .long   0xa
+       .long   0x14
+       .long   0x1e
+       .long   0x26
+       .section        .debug_str.dwo,"e",@progbits
+.LASF0:
+       .string "testcase1"
+.LASF1:
+       .string "testcase2"
+.LASF2:
+       .string "testcase3"
+.LASF3:
+       .string "member1"
+.LASF4:
+       .string "testcase4"
+       .section        .debug_addr,"",@progbits
+.Ldebug_addr0:
+       .quad   .LFB1
+       .quad   .LBB2
+       .quad   _ZZ4mainE19__PRETTY_FUNCTION__
+       .quad   .LBB3
+       .ident  "GCC: (Google_crosstoolv16-gcc-4.7.x-grtev3) 4.7.x-google 20120720 (prerelease)"
+       .section        .note.GNU-stack,"",@progbits