mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-30 12:44:10 +08:00
gas: amend X_unsigned uses
PR gas/30688 X_unsigned being clear does not indicate a negative number; it merely indicates a signed one (whose sign may still be clear). Amend two uses by an actual value check.
This commit is contained in:
parent
29c108c961
commit
95b83567a4
@ -1751,7 +1751,7 @@ s_comm_internal (int param,
|
||||
ignore_rest_of_line ();
|
||||
goto out;
|
||||
}
|
||||
else if (temp != size || !exp.X_unsigned)
|
||||
else if (temp != size || (!exp.X_unsigned && exp.X_add_number < 0))
|
||||
{
|
||||
as_warn (_("size (%ld) out of range, ignored"), (long) temp);
|
||||
ignore_rest_of_line ();
|
||||
@ -2541,7 +2541,7 @@ parse_align (int align_bytes)
|
||||
if (exp.X_op == O_absent)
|
||||
goto no_align;
|
||||
|
||||
if (!exp.X_unsigned)
|
||||
if (!exp.X_unsigned && exp.X_add_number < 0)
|
||||
{
|
||||
as_warn (_("alignment negative; 0 assumed"));
|
||||
align = 0;
|
||||
|
@ -1 +1,8 @@
|
||||
.comm foobar,30,4
|
||||
.comm buf1, 5-1, 8
|
||||
.comm buf2, 4, 9-1
|
||||
.ifndef lcomm_align
|
||||
.lcomm lbuf, 9-1
|
||||
.else
|
||||
.lcomm lbuf, 9-1, 8
|
||||
.endif
|
||||
|
@ -1,7 +1,16 @@
|
||||
#source: common3.s
|
||||
#as: --elf-stt-common=yes
|
||||
#readelf: -s -W
|
||||
# MIPS'es IRIX emulation puts lbuf (STB_LOCAL) after the globals in the
|
||||
# symbol table, and that mode is hard to check for (see irixemul in
|
||||
# binutils/testsuite/binutils-all/mips/mips.exp)
|
||||
#notarget: mips*-*-*
|
||||
|
||||
#...
|
||||
+[0-9]+: +0+ +8 +(OBJECT|NOTYPE) +LOCAL +DEFAULT +[1-9] +lbuf
|
||||
#...
|
||||
+[0-9]+: +0+4 +30 +COMMON +GLOBAL +DEFAULT +COM +foobar
|
||||
#...
|
||||
+[0-9]+: +0+8 +4 +COMMON +GLOBAL +DEFAULT +COM +buf1
|
||||
+[0-9]+: +0+8 +4 +COMMON +GLOBAL +DEFAULT +COM +buf2
|
||||
#pass
|
||||
|
@ -1,7 +1,16 @@
|
||||
#source: common3.s
|
||||
#as: --elf-stt-common=no
|
||||
#readelf: -s -W
|
||||
# MIPS'es IRIX emulation puts lbuf (STB_LOCAL) after the globals in the
|
||||
# symbol table, and that mode is hard to check for (see irixemul in
|
||||
# binutils/testsuite/binutils-all/mips/mips.exp)
|
||||
#notarget: mips*-*-*
|
||||
|
||||
#...
|
||||
+[0-9]+: +0+ +8 +(OBJECT|NOTYPE) +LOCAL +DEFAULT +[1-9] +lbuf
|
||||
#...
|
||||
+[0-9]+: +0+4 +30 +OBJECT +GLOBAL +DEFAULT +COM +foobar
|
||||
#...
|
||||
+[0-9]+: +0+8 +4 +OBJECT +GLOBAL +DEFAULT +COM +buf1
|
||||
+[0-9]+: +0+8 +4 +OBJECT +GLOBAL +DEFAULT +COM +buf2
|
||||
#pass
|
||||
|
@ -345,8 +345,16 @@ if { [is_elf_format] } then {
|
||||
|
||||
# hpux has a non-standard common directive.
|
||||
if { ![istarget "*-*-hpux*"] } then {
|
||||
run_dump_test "common3a"
|
||||
run_dump_test "common3b"
|
||||
switch -glob $target_triplet {
|
||||
ia64-*-* {
|
||||
run_dump_test "common3a" { { as "--defsym lcomm_align=1" } }
|
||||
run_dump_test "common3b" { { as "--defsym lcomm_align=1" } }
|
||||
}
|
||||
default {
|
||||
run_dump_test "common3a"
|
||||
run_dump_test "common3b"
|
||||
}
|
||||
}
|
||||
run_dump_test "common4a"
|
||||
run_dump_test "common4b"
|
||||
run_dump_test "common5a"
|
||||
|
Loading…
Reference in New Issue
Block a user