* config/tc-sh.c (md_apply_fix): Do not allow the generic code in
fixup_segment() to repeat a range check on a value that have already been checked here. * gas/sh/basic.exp: Run "too_large" dump test. * gas/sh/too_large.s: New test file. Check that .byte directives do not generate a bogus overflow message. * gas/sh/too_large.s: New test control file.
This commit is contained in:
parent
743a4945a6
commit
01eaea5ad2
|
@ -1,3 +1,9 @@
|
|||
2006-07-12 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/tc-sh.c (md_apply_fix): Do not allow the generic code in
|
||||
fixup_segment() to repeat a range check on a value that have
|
||||
already been checked here.
|
||||
|
||||
2006-07-07 James E Wilson <wilson@specifix.com>
|
||||
|
||||
* config/tc-mips.c (mips_cpu_info_table): Add sb1a.
|
||||
|
|
|
@ -4080,6 +4080,11 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
|
|||
}
|
||||
if (max != 0 && (val < min || val > max))
|
||||
as_bad_where (fixP->fx_file, fixP->fx_line, _("offset out of range"));
|
||||
else if (max != 0)
|
||||
/* Stop the generic code from trying to overlow check the value as well.
|
||||
It may not have the correct value anyway, as we do not store val back
|
||||
into *valP. */
|
||||
fixP->fx_no_overflow = 1;
|
||||
|
||||
if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0)
|
||||
fixP->fx_done = 1;
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2006-07-12 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* gas/sh/basic.exp: Run "too_large" dump test.
|
||||
* gas/sh/too_large.s: New test file. Check that .byte directives
|
||||
do not generate a bogus overflow message.
|
||||
* gas/sh/too_large.s: New test control file.
|
||||
|
||||
2006-07-05 Julian Brown <julian@codesourcery.com>
|
||||
|
||||
* gas/arm/vfp-neon-syntax.d: Tweak expected fmsrr syntax.
|
||||
|
|
|
@ -167,6 +167,8 @@ if [istarget sh*-*-*] then {
|
|||
|
||||
# Test --allow-reg-prefix.
|
||||
run_dump_test "reg-prefix"
|
||||
|
||||
run_dump_test "too_large"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
#name: Check for bogus overflow errors in .byte directives
|
||||
#as: -big -relax -isa=sh4a
|
||||
#nm: -n
|
||||
|
||||
[ ]*U \.L318
|
||||
[ ]*U \.L319
|
||||
[ ]*U \.L320
|
||||
[ ]*U \.L321
|
||||
0+00100 t \.L307
|
|
@ -0,0 +1,39 @@
|
|||
.file "too_large.c"
|
||||
.text
|
||||
nop
|
||||
.align 8
|
||||
.L307:
|
||||
.byte .L302-.L307
|
||||
.byte .L303-.L307
|
||||
.byte .L304-.L307
|
||||
.byte .L305-.L307
|
||||
.L304:
|
||||
mov.l .L318,r1
|
||||
jsr @r1
|
||||
mov r8,r4
|
||||
lds r0,fpul
|
||||
fsts fpul,fr1
|
||||
flds fr1,fpul
|
||||
sts fpul,r0
|
||||
mov r14,r15
|
||||
lds.l @r15+,pr
|
||||
mov.l @r15+,r14
|
||||
mov.l @r15+,r8
|
||||
rts
|
||||
nop
|
||||
.L305:
|
||||
mov.l .L319,r7
|
||||
jsr @r7
|
||||
mov r8,r4
|
||||
lds r0,fpul
|
||||
bra .L307
|
||||
fsts fpul,fr1
|
||||
.L303:
|
||||
mov.l .L320,r6
|
||||
jsr @r6
|
||||
mov r8,r4
|
||||
lds r0,fpul
|
||||
bra .L307
|
||||
fsts fpul,fr1
|
||||
.L302:
|
||||
mov.l .L321,r5
|
Loading…
Reference in New Issue