From 35c813e2242319efee1bad5c7cdd6e7e224ce94e Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Wed, 24 Oct 2012 02:32:15 +0000 Subject: [PATCH] gold/ * 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. --- gold/ChangeLog | 16 + gold/testsuite/Makefile.am | 45 + gold/testsuite/Makefile.in | 49 +- gold/testsuite/dwp_test.h | 87 + gold/testsuite/dwp_test_1.cc | 210 +++ gold/testsuite/dwp_test_1.s | 2660 +++++++++++++++++++++++++++++++ gold/testsuite/dwp_test_1.sh | 63 + gold/testsuite/dwp_test_1b.cc | 35 + gold/testsuite/dwp_test_1b.s | 549 +++++++ gold/testsuite/dwp_test_2.cc | 144 ++ gold/testsuite/dwp_test_2.s | 1714 ++++++++++++++++++++ gold/testsuite/dwp_test_2.sh | 63 + gold/testsuite/dwp_test_main.cc | 59 + gold/testsuite/dwp_test_main.s | 1399 ++++++++++++++++ 14 files changed, 7091 insertions(+), 2 deletions(-) create mode 100644 gold/testsuite/dwp_test.h create mode 100644 gold/testsuite/dwp_test_1.cc create mode 100644 gold/testsuite/dwp_test_1.s create mode 100755 gold/testsuite/dwp_test_1.sh create mode 100644 gold/testsuite/dwp_test_1b.cc create mode 100644 gold/testsuite/dwp_test_1b.s create mode 100644 gold/testsuite/dwp_test_2.cc create mode 100644 gold/testsuite/dwp_test_2.s create mode 100755 gold/testsuite/dwp_test_2.sh create mode 100644 gold/testsuite/dwp_test_main.cc create mode 100644 gold/testsuite/dwp_test_main.s diff --git a/gold/ChangeLog b/gold/ChangeLog index 653f65f47ac..2256744e027 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,19 @@ +2012-10-23 Cary Coutant + + * 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 * dwp.h: New header file. diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am index 4840f080dc8..8bb16b6693d 100644 --- a/gold/testsuite/Makefile.am +++ b/gold/testsuite/Makefile.am @@ -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 diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in index 27b3a90830d..80aeb09b9cf 100644 --- a/gold/testsuite/Makefile.in +++ b/gold/testsuite/Makefile.in @@ -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 index 00000000000..37256d3423c --- /dev/null +++ b/gold/testsuite/dwp_test.h @@ -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 . + +// 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 index 00000000000..71fbc5b3c2c --- /dev/null +++ b/gold/testsuite/dwp_test_1.cc @@ -0,0 +1,210 @@ +// dwp_test_1.cc -- a test case for dwp + +// Copyright 2012 Free Software Foundation, Inc. +// Written by Cary Coutant . + +// 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 index 00000000000..d3a898dcbdf --- /dev/null +++ b/gold/testsuite/dwp_test_1.s @@ -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 index 00000000000..7831a499e76 --- /dev/null +++ b/gold/testsuite/dwp_test_1.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +# dwp_test_1.sh -- Test the dwp tool. + +# Copyright 2012 Free Software Foundation, Inc. +# Written by Cary Coutant . + +# 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 index 00000000000..c75376b5b1a --- /dev/null +++ b/gold/testsuite/dwp_test_1b.cc @@ -0,0 +1,35 @@ +// dwp_test_1b.cc -- a test case for dwp + +// Copyright 2012 Free Software Foundation, Inc. +// Written by Cary Coutant . + +// 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 index 00000000000..9c9891d7504 --- /dev/null +++ b/gold/testsuite/dwp_test_1b.s @@ -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 index 00000000000..a1172b31559 --- /dev/null +++ b/gold/testsuite/dwp_test_2.cc @@ -0,0 +1,144 @@ +// dwp_test_2.cc -- a test case for dwp + +// Copyright 2012 Free Software Foundation, Inc. +// Written by Cary Coutant . + +// 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 index 00000000000..fa807714c8e --- /dev/null +++ b/gold/testsuite/dwp_test_2.s @@ -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 index 00000000000..619d73b9a2e --- /dev/null +++ b/gold/testsuite/dwp_test_2.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +# dwp_test_2.sh -- Test the dwp tool. + +# Copyright 2012 Free Software Foundation, Inc. +# Written by Cary Coutant . + +# 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 index 00000000000..abddc0fa0c9 --- /dev/null +++ b/gold/testsuite/dwp_test_main.cc @@ -0,0 +1,59 @@ +// dwp_test_main.cc -- a test case for dwp + +// Copyright 2012 Free Software Foundation, Inc. +// Written by Cary Coutant . + +// 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 + +#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 index 00000000000..f86436585a5 --- /dev/null +++ b/gold/testsuite/dwp_test_main.s @@ -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 -- 2.30.2