+2003-04-23 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * readelf.c (decode_location_expression): Don't add a trailing ';'.
+
2003-04-23 Dimitrie O. Paun <dpaun@rogers.com>
Nick Clifton <nickc@redhat.com>
}
/* Separate the ops. */
- printf ("; ");
+ if (data < end)
+ printf ("; ");
}
}
+2003-04-23 Nick Clifton <nickc@redhat.com>
+
+ * readelf.exp (proc prune_readelf_warnings): New function.
+ (proc readelf_test): Prune warning messages.
+ (readelf_test -wi): Add more expected failures.
+ * readelf.wi: Severly reduce expected output.
+ * testprog.c (string): Explicitly use unsigned chars.
+ (stdio.h, string.h): Remove inclusion.
+
+2003-04-23 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * readelf.wi: Update.
+
2003-04-22 Dimitrie O. Paun <dpaun@rogers.com>
* binutils-all/windres/windres.exp: Add test for the new -J
pass $testname
}
+# Simple proc to skip certain expected warning messages.
+proc prune_readelf_warnings { text } {
+ regsub -all "(^|\n)(.*Skipping unexpected symbol type.*)" $text "\\1" text
+ return $text
+}
+
# Run an individual readelf test.
# Basically readelf is run on the binary_file with the given options.
# Readelf's output is captured and then compared against the contents
foreach xfail $xfails {
setup_xfail $xfail
}
+
+ set got [prune_readelf_warnings $got]
if ![string match "" $got] then {
+ fail "readelf $options (reason: unexpected output)"
send_log $got
- fail "readelf $options"
+ send_log "\n"
return
}
# The xfail targets here do not default to DWARF2 format debug information
# The symptom is that the output of 'readelf -wi' is empty.
-readelf_test -wi $tempfile readelf.wi {v850*-*-* cris-*-* mips*-*-elf* *-*-linux* h8300*-*-*}
+readelf_test -wi $tempfile readelf.wi {v850*-*-* cris-*-* mips*-*-elf* avr-*-* d30v-*-* h8300*-*-* i960-*-* m32r-*-* sparc-*-*}
Length: .*
Version: 2
Abbrev Offset: 0
- Pointer Size: 4
+ Pointer Size: .
<.><.*>: Abbrev Number: .* \(DW_TAG_compile_unit\)
- DW_AT_name : .*/testprog.c
- DW_AT_comp_dir : .*/binutils
- DW_AT_producer : GNU C .*
- DW_AT_language : 1 \(ANSI C\)
- DW_AT_low_pc : 0
- DW_AT_high_pc : .*
DW_AT_stmt_list : 0
- <.><.*>: Abbrev Number: 2 \(DW_TAG_subprogram\)
+ DW_AT_high_pc : .*
+ DW_AT_low_pc : 0.*
+ DW_AT_producer :.*
+ DW_AT_language : 1 \(ANSI C\)
+ DW_AT_name : .*
+ <.><.*>: Abbrev Number: .* \(DW_TAG_subprogram\)
DW_AT_external : 1
DW_AT_name : fn
DW_AT_decl_file : 1
- DW_AT_decl_line : 10
+ DW_AT_decl_line : 12
DW_AT_type : .*
- DW_AT_low_pc : 0
+ DW_AT_low_pc : 0.*
DW_AT_high_pc : .*
- DW_AT_frame_base : 1 byte block: .*
- <.><.*>: Abbrev Number: 3 \(DW_TAG_base_type\)
+ DW_AT_frame_base : .*
+ <.><.*>: Abbrev Number: .* \(DW_TAG_base_type\)
DW_AT_name : int
- DW_AT_byte_size : 4
- DW_AT_encoding : 5 \(signed\)
- <.><.*>: Abbrev Number: 4 \(DW_TAG_subprogram\)
- DW_AT_sibling : .*
- DW_AT_external : 1
- DW_AT_name : main
- DW_AT_decl_file : 1
- DW_AT_decl_line : 16
- DW_AT_type : .*
- DW_AT_low_pc : .*
- DW_AT_high_pc : .*
- DW_AT_frame_base : 1 byte block: .*
- <.><.*>: Abbrev Number: 5 \(DW_TAG_lexical_block\)
- DW_AT_low_pc : .*
- DW_AT_high_pc : .*
- <.><.*>: Abbrev Number: 6 \(DW_TAG_variable\)
- DW_AT_name : common
- DW_AT_decl_file : 1
- DW_AT_decl_line : 3
- DW_AT_type : <.*>
- DW_AT_external : 1
- DW_AT_location : 5 byte block: 3 0 0 0 0 \(DW_OP_addr: 0\)
- <.><.*>: Abbrev Number: 6 \(DW_TAG_variable\)
- DW_AT_name : global
- DW_AT_decl_file : 1
- DW_AT_decl_line : 4
- DW_AT_type : <.*>
- DW_AT_external : 1
- DW_AT_location : 5 byte block: 3 0 0 0 0 \(DW_OP_addr: 0\)
- <.><.*>: Abbrev Number: 7 \(DW_TAG_variable\)
- DW_AT_name : local
- DW_AT_decl_file : 1
- DW_AT_decl_line : 5
- DW_AT_type : <.*>
- DW_AT_location : 5 byte block: 3 . 0 0 . \(DW_OP_addr: .\)
- <.><.*>: Abbrev Number: 8 \(DW_TAG_array_type\)
- DW_AT_sibling : <.*>
- DW_AT_type : <.*>
- <.><.*>: Abbrev Number: 9 \(DW_TAG_subrange_type\)
- DW_AT_upper_bound : 6
- <.><.*>: Abbrev Number: 3 \(DW_TAG_base_type\)
- DW_AT_name : char
- DW_AT_byte_size : 1
- DW_AT_encoding : 8 \(unsigned char\)
- <.><.*>: Abbrev Number: 7 \(DW_TAG_variable\)
- DW_AT_name : string
- DW_AT_decl_file : 1
- DW_AT_decl_line : 6
- DW_AT_type : <.*>
- DW_AT_location : 5 byte block: 3 . 0 0 . \(DW_OP_addr: .\)
+ DW_AT_byte_size : .*
+ DW_AT_encoding : .* \(signed\)
+ <.><.*>: Abbrev Number: .* \(DW_TAG_subprogram\)
+#pass
-/* This program is used to test objcopy and strip. */
+/* This program is used to test objcopy, readelf and strip. */
-#include <stdio.h>
-#include <string.h>
+extern int strcmp (char *, const char *);
int common;
int global = 1;
static int local = 2;
-static char string[] = "string";
+static unsigned char string[] = "string";
int
fn ()