[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/3871] New: Score assembler passes stack meory around
From: |
hjl at lucon dot org |
Subject: |
[Bug gas/3871] New: Score assembler passes stack meory around |
Date: |
15 Jan 2007 18:43:39 -0000 |
tc-score.c has
if (value == (int) FAIL)
{
char err_msg[100];
if ((data_type != _SIMM14_NEG) && (data_type != _SIMM16_NEG) &&
(data_type != _IMM16_NEG))
{
sprintf (err_msg,
"invalid constant: %d bit expression not in range
%d..%d",
score_df_range[data_type].bits,
score_df_range[data_type].range[0],
score_df_range[data_type].range[1]);
}
else
{
sprintf (err_msg,
"invalid constant: %d bit expression not in range
%d..%d",
score_df_range[data_type].bits,
-score_df_range[data_type].range[1],
-score_df_range[data_type].range[0]);
}
inst.error = _(err_msg);
return (int) FAIL;
}
There are 2 problems:
1. inst.error is pointed to a stack memory and used later to report an
error. It is a very bad idea.
2. _() is used on a variable. Shouldn't it be used on a string constant?
--
Summary: Score assembler passes stack meory around
Product: binutils
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: gas
AssignedTo: unassigned at sources dot redhat dot com
ReportedBy: hjl at lucon dot org
CC: bug-binutils at gnu dot org
GCC target triplet: score-unknown-elf
http://sourceware.org/bugzilla/show_bug.cgi?id=3871
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
- [Bug gas/3871] New: Score assembler passes stack meory around,
hjl at lucon dot org <=