summaryrefslogtreecommitdiff
path: root/gcc/mips-tfile.c
diff options
context:
space:
mode:
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>1992-10-22 18:57:59 +0000
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>1992-10-22 18:57:59 +0000
commit74897750ec2c5c2ce49e62236d2f1d50c4a6fb00 (patch)
tree1b1b31e371410a8bb501732849f200cebff0a014 /gcc/mips-tfile.c
parentbcf1cfbc19cbddf0cb64c633bd7b6cadd8307d56 (diff)
downloadgcc-74897750ec2c5c2ce49e62236d2f1d50c4a6fb00.tar.gz
Allow a stab line number of 0, since G++ generates it; check for >= 2**20.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2561 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/mips-tfile.c')
-rw-r--r--gcc/mips-tfile.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/mips-tfile.c b/gcc/mips-tfile.c
index 94ecc558f8f..78f8236607a 100644
--- a/gcc/mips-tfile.c
+++ b/gcc/mips-tfile.c
@@ -3678,12 +3678,18 @@ parse_stabs_common (string_start, string_end, rest)
code = strtol (p+3, &p, 0);
ch = *++p;
- if (code <= 0 || p[-1] != ',' || isdigit (ch) || !IS_ASM_IDENT (ch))
+ if (p[-1] != ',' || isdigit (ch) || !IS_ASM_IDENT (ch))
{
error ("Illegal line number .stabs/.stabn directive");
return;
}
+ if (code < 0 || code >= 0x100000)
+ {
+ error ("Line number for .stabs/.stabn directive cannot fit in index field (20 bits)");
+ return;
+ }
+
shash_ptr = hash_string (p,
strlen (p) - 1,
&orig_str_hash[0],