This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[committed, PATCH] Add a testcase for PR gas/18087


Hi,

I checked in this patch to properly add a testcase for PR gas/18087.


H.J.
---
	PR gas/18087
	* gas/i386/dw2-compress-1.d: Revert the last change.
	* gas/i386/dw2-compress-3.d: New.
	* gas/i386/dw2-compress-3.s: Likewise.
	* gas/i386/i386.exp: Run dw2-compress-3 for ELF targets.
---
 binutils/doc/binutils.texi              |   2 +-
 gas/testsuite/ChangeLog                 |   8 +++
 gas/testsuite/gas/i386/dw2-compress-1.d |   2 +-
 gas/testsuite/gas/i386/dw2-compress-3.d | 103 ++++++++++++++++++++++++++++++++
 gas/testsuite/gas/i386/dw2-compress-3.s |  96 +++++++++++++++++++++++++++++
 gas/testsuite/gas/i386/i386.exp         |   1 +
 gas/write.c                             |   2 +-
 7 files changed, 211 insertions(+), 3 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/dw2-compress-3.d
 create mode 100644 gas/testsuite/gas/i386/dw2-compress-3.s

diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index da50163..e0527aa 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -1847,7 +1847,7 @@ linker input file.
 Compress DWARF debug sections using zlib.  The debug sections are
 renamed to begin with @samp{.zdebug} instead of @samp{.debug}.  Note -
 if compression would actually make a section @emph{larger} then it is
-not compressed or renamed. 
+not compressed or renamed.
 
 @item --decompress-debug-sections
 Decompress DWARF debug sections using zlib.  The original section
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 5b16085..f814d36 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2015-03-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR gas/18087
+	* gas/i386/dw2-compress-1.d: Revert the last change.
+	* gas/i386/dw2-compress-3.d: New.
+	* gas/i386/dw2-compress-3.s: Likewise.
+	* gas/i386/i386.exp: Run dw2-compress-3 for ELF targets.
+
 2015-03-18  Jon Turney  <jon.turney@dronecode.org.uk>
 	    Nick Clifton  <nickc@redhat.com>
 
diff --git a/gas/testsuite/gas/i386/dw2-compress-1.d b/gas/testsuite/gas/i386/dw2-compress-1.d
index 2b2fd8d..c29a26c 100644
--- a/gas/testsuite/gas/i386/dw2-compress-1.d
+++ b/gas/testsuite/gas/i386/dw2-compress-1.d
@@ -2,7 +2,7 @@
 #readelf: -w
 #name: DWARF2 debugging information 1
 
-Contents of the .debug_info section:
+Contents of the .zdebug_info section:
 
   Compilation Unit @ offset 0x0:
    Length:        0x4e \(32-bit\)
diff --git a/gas/testsuite/gas/i386/dw2-compress-3.d b/gas/testsuite/gas/i386/dw2-compress-3.d
new file mode 100644
index 0000000..d2aa8ef
--- /dev/null
+++ b/gas/testsuite/gas/i386/dw2-compress-3.d
@@ -0,0 +1,103 @@
+#as: --compress-debug-sections
+#readelf: -w
+#name: DWARF2 debugging information 3
+
+Contents of the .debug_info section:
+
+  Compilation Unit @ offset 0x0:
+   Length:        0x32 \(32-bit\)
+   Version:       4
+   Abbrev Offset: 0x0
+   Pointer Size:  4
+ <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
+    <c>   DW_AT_producer    : \(indirect string, offset: 0x2\): GNU C 4.8.3
+    <10>   DW_AT_language    : 1	\(ANSI C\)
+    <11>   DW_AT_name        : \(indirect string, offset: 0xe\): dw2-compress-3.c
+    <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x0\): .
+    <19>   DW_AT_stmt_list   : 0x0
+ <1><1d>: Abbrev Number: 2 \(DW_TAG_variable\)
+    <1e>   DW_AT_name        : foo
+    <22>   DW_AT_decl_file   : 1
+    <23>   DW_AT_decl_line   : 1
+    <24>   DW_AT_type        : <0x2e>
+    <28>   DW_AT_external    : 1
+    <28>   DW_AT_location    : 5 byte block: 3 4 0 0 0 	\(DW_OP_addr: 4\)
+ <1><2e>: Abbrev Number: 3 \(DW_TAG_base_type\)
+    <2f>   DW_AT_byte_size   : 4
+    <30>   DW_AT_encoding    : 5	\(signed\)
+    <31>   DW_AT_name        : int
+ <1><35>: Abbrev Number: 0
+
+Contents of the .debug_abbrev section:
+
+  Number TAG \(0x0\)
+   1      DW_TAG_compile_unit    \[has children\]
+    DW_AT_producer     DW_FORM_strp
+    DW_AT_language     DW_FORM_data1
+    DW_AT_name         DW_FORM_strp
+    DW_AT_comp_dir     DW_FORM_strp
+    DW_AT_stmt_list    DW_FORM_sec_offset
+    DW_AT value: 0     DW_FORM value: 0
+   2      DW_TAG_variable    \[no children\]
+    DW_AT_name         DW_FORM_string
+    DW_AT_decl_file    DW_FORM_data1
+    DW_AT_decl_line    DW_FORM_data1
+    DW_AT_type         DW_FORM_ref4
+    DW_AT_external     DW_FORM_flag_present
+    DW_AT_location     DW_FORM_exprloc
+    DW_AT value: 0     DW_FORM value: 0
+   3      DW_TAG_base_type    \[no children\]
+    DW_AT_byte_size    DW_FORM_data1
+    DW_AT_encoding     DW_FORM_data1
+    DW_AT_name         DW_FORM_string
+    DW_AT value: 0     DW_FORM value: 0
+
+Contents of the .debug_aranges section:
+
+  Length:                   20
+  Version:                  2
+  Offset into .debug_info:  0x0
+  Pointer Size:             4
+  Segment Size:             0
+
+    Address    Length
+    00000000 00000000 
+
+Raw dump of debug contents of section .debug_line:
+
+  Offset:                      0x0
+  Length:                      45
+  DWARF Version:               2
+  Prologue Length:             39
+  Minimum Instruction Length:  1
+  Initial value of 'is_stmt':  1
+  Line Base:                   -5
+  Line Range:                  14
+  Opcode Base:                 13
+
+ Opcodes:
+  Opcode 1 has 0 args
+  Opcode 2 has 1 args
+  Opcode 3 has 1 args
+  Opcode 4 has 1 args
+  Opcode 5 has 1 args
+  Opcode 6 has 0 args
+  Opcode 7 has 0 args
+  Opcode 8 has 0 args
+  Opcode 9 has 1 args
+  Opcode 10 has 0 args
+  Opcode 11 has 0 args
+  Opcode 12 has 1 args
+
+ The Directory Table is empty.
+
+ The File Name Table \(offset 0x1c\):
+  Entry	Dir	Time	Size	Name
+  1	0	0	0	dw2-compress-3.c
+
+ No Line Number Statements.
+Contents of the .debug_str section:
+
+  0x00000000 2e00474e 55204320 342e382e 33006477 ..GNU C 4.8.3.dw
+  0x00000010 322d636f 6d707265 73732d33 2e6300   2-compress-3.c.
+
diff --git a/gas/testsuite/gas/i386/dw2-compress-3.s b/gas/testsuite/gas/i386/dw2-compress-3.s
new file mode 100644
index 0000000..c2e6f2e
--- /dev/null
+++ b/gas/testsuite/gas/i386/dw2-compress-3.s
@@ -0,0 +1,96 @@
+	.file	"dw2-compress-3.c"
+	.text
+.Ltext0:
+	.comm	foo,4,4
+.Letext0:
+	.file 1 "dw2-compress-3.c"
+	.section	.debug_info,"",@progbits
+.Ldebug_info0:
+	.long	0x32
+	.value	0x4
+	.long	.Ldebug_abbrev0
+	.byte	0x4
+	.uleb128 0x1
+	.long	.LASF0
+	.byte	0x1
+	.long	.LASF1
+	.long	.LASF2
+	.long	.Ldebug_line0
+	.uleb128 0x2
+	.string	"foo"
+	.byte	0x1
+	.byte	0x1
+	.long	0x2e
+	.uleb128 0x5
+	.byte	0x3
+	.long	foo
+	.uleb128 0x3
+	.byte	0x4
+	.byte	0x5
+	.string	"int"
+	.byte	0
+	.section	.debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+	.uleb128 0x1
+	.uleb128 0x11
+	.byte	0x1
+	.uleb128 0x25
+	.uleb128 0xe
+	.uleb128 0x13
+	.uleb128 0xb
+	.uleb128 0x3
+	.uleb128 0xe
+	.uleb128 0x1b
+	.uleb128 0xe
+	.uleb128 0x10
+	.uleb128 0x17
+	.byte	0
+	.byte	0
+	.uleb128 0x2
+	.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 0x3
+	.uleb128 0x24
+	.byte	0
+	.uleb128 0xb
+	.uleb128 0xb
+	.uleb128 0x3e
+	.uleb128 0xb
+	.uleb128 0x3
+	.uleb128 0x8
+	.byte	0
+	.byte	0
+	.byte	0
+	.section	.debug_aranges,"",@progbits
+	.long	0x14
+	.value	0x2
+	.long	.Ldebug_info0
+	.byte	0x4
+	.byte	0
+	.value	0
+	.value	0
+	.long	0
+	.long	0
+	.section	.debug_line,"",@progbits
+.Ldebug_line0:
+	.section	.debug_str,"MS",@progbits,1
+.LASF2:
+	.string	"."
+.LASF0:
+	.string	"GNU C 4.8.3"
+.LASF1:
+	.string	"dw2-compress-3.c"
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 381a1e3..19ef914 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -426,6 +426,7 @@ if [expr [istarget "i*86-*-*"] || [istarget "x86_64-*-*"]] then {
 	run_list_test_stdin "list-2" "-al"
 	run_list_test_stdin "list-3" "-al"
 	run_dump_test "dw2-compress-1"
+	run_dump_test "dw2-compress-3"
     }
 }
 
diff --git a/gas/write.c b/gas/write.c
index e3570ac..397ea48 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -1530,7 +1530,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
      the section smaller, just keep it uncompressed.  */
   if (compressed_size > sec->size)
     return;
-  
+
   /* Replace the uncompressed frag list with the compressed frag list.  */
   seginfo->frchainP->frch_root = first_newf;
   seginfo->frchainP->frch_last = last_newf;
-- 
1.9.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]