diff options
author | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-10-22 18:57:59 +0000 |
---|---|---|
committer | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-10-22 18:57:59 +0000 |
commit | 74897750ec2c5c2ce49e62236d2f1d50c4a6fb00 (patch) | |
tree | 1b1b31e371410a8bb501732849f200cebff0a014 /gcc/mips-tfile.c | |
parent | bcf1cfbc19cbddf0cb64c633bd7b6cadd8307d56 (diff) | |
download | gcc-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.c | 8 |
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], |