diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-04-01 23:18:11 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-04-01 16:18:11 -0700 |
commit | aefdd5abe0eae984fa04ea12851c9ff0f1695033 (patch) | |
tree | 663746db4bb4ca4fe0f1db7a069ec51d97f795bb /gcc/cplus-dem.c | |
parent | 729da3f5a8f4cc906c185e4cbc9bdbac657a1cca (diff) | |
download | gcc-aefdd5abe0eae984fa04ea12851c9ff0f1695033.tar.gz |
c-lex.c (yylex): Initialize traditional_type, ansi_type and type.
* c-lex.c (yylex): Initialize traditional_type, ansi_type and type.
* caller-save.c (insert_save_restore): Initialize pat, code and
numregs.
* emit-rtl.c (push_to_sequence): Initialize top.
(push_topmost_sequence): Likewise.
* genattrtab.c (simplify_by_exploding): Initialize defval.
* profile.c (branch_prob): Initialize dest.
* rtl.h (note_stores): Remove duplicate prototype.
(GEN_INT): Re-instate cast of second arg to HOST_WIDE_INT.
Fix some warnings.
* cplus-dem.c (gnu_special): Don't get confused by .<digits>
strings that are not actually lengths.
A change from libiberty that didn't make it into the gcc copy.
From-SVN: r18942
Diffstat (limited to 'gcc/cplus-dem.c')
-rw-r--r-- | gcc/cplus-dem.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/cplus-dem.c b/gcc/cplus-dem.c index 898ab4bd500..acdbfa897e2 100644 --- a/gcc/cplus-dem.c +++ b/gcc/cplus-dem.c @@ -1901,6 +1901,15 @@ gnu_special (work, mangled, declp) if (isdigit(*mangled[0])) { n = consume_count(mangled); + /* We may be seeing a too-large size, or else a + ".<digits>" indicating a static local symbol. In + any case, declare victory and move on; *don't* try + to use n to allocate. */ + if (n >= strlen (*mangled)) + { + success = 1; + break; + } } else { |