diff options
author | Martin Sebor <msebor@redhat.com> | 2016-09-01 22:47:49 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2016-09-01 16:47:49 -0600 |
commit | 3d7b83b6718e54c7305b24dd73b44af1c11fc721 (patch) | |
tree | cf5a770b54a1fa30fb7b5d7835bb4cf4f1dc71cf /gcc | |
parent | 3b2475ab3178e98c61314b069cd64fe5ffa8bf45 (diff) | |
download | gcc-3d7b83b6718e54c7305b24dd73b44af1c11fc721.zip gcc-3d7b83b6718e54c7305b24dd73b44af1c11fc721.tar.gz gcc-3d7b83b6718e54c7305b24dd73b44af1c11fc721.tar.bz2 |
c-ada-spec.c (dump_ada_function_declaration): Increase buffer size to guarantee it fits the output of the formatted function...
gcc/c-family/ChangeLog:
* c-ada-spec.c (dump_ada_function_declaration): Increase buffer
size to guarantee it fits the output of the formatted function
regardless of its arguments.
gcc/cp/ChangeLog:
* mangle.c: Increase buffer size to guarantee it fits the output
of the formatted function regardless of its arguments.
gcc/go/ChangeLog:
* gofrontend/expressions.cc: Increase buffer size to guarantee
it fits the output of the formatted function regardless of its
arguments.
gcc/java/ChangeLog:
* decl.c (give_name_to_locals): Increase buffer size to guarantee
it fits the output of the formatted function regardless of its
arguments.
* mangle_name.c (append_unicode_mangled_name): Same.
gcc/ChangeLog:
* genmatch.c (parser::parse_expr): Increase buffer size to guarantee
it fits the output of the formatted function regardless of its
arguments.
* gcc/genmodes.c (parser::parse_expr): Same.
* gimplify.c (gimplify_asm_expr): Same.
* passes.c (pass_manager::register_one_dump_file): Same.
* print-tree.c (print_node): Same.
From-SVN: r239949
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/c-family/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c-family/c-ada-spec.c | 2 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/mangle.c | 4 | ||||
-rw-r--r-- | gcc/genmatch.c | 3 | ||||
-rw-r--r-- | gcc/genmodes.c | 3 | ||||
-rw-r--r-- | gcc/gimplify.c | 5 | ||||
-rw-r--r-- | gcc/go/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 3 | ||||
-rw-r--r-- | gcc/java/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/java/decl.c | 3 | ||||
-rw-r--r-- | gcc/java/mangle_name.c | 6 | ||||
-rw-r--r-- | gcc/passes.c | 6 | ||||
-rw-r--r-- | gcc/print-tree.c | 14 |
15 files changed, 67 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aa5b1e0..854bcc0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2016-09-01 Martin Sebor <msebor@redhat.com> + + * genmatch.c (parser::parse_expr): Increase buffer size to guarantee + it fits the output of the formatted function regardless of its + arguments. + * gcc/genmodes.c (parser::parse_expr): Same. + * gimplify.c (gimplify_asm_expr): Same. + * passes.c (pass_manager::register_one_dump_file): Same. + * print-tree.c (print_node): Same. + 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout. diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 8a40f75..622a288 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,9 @@ +2016-09-01 Martin Sebor <msebor@redhat.com> + + * c-ada-spec.c (dump_ada_function_declaration): Increase buffer + size to guarantee it fits the output of the formatted function + regardless of its arguments. + 2016-09-01 Marek Polacek <polacek@redhat.com> PR c/7652 diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c index a4e0c38..6a8e04b 100644 --- a/gcc/c-family/c-ada-spec.c +++ b/gcc/c-family/c-ada-spec.c @@ -1603,7 +1603,7 @@ dump_ada_function_declaration (pretty_printer *buffer, tree func, { tree arg; const tree node = TREE_TYPE (func); - char buf[16]; + char buf[17]; int num = 0, num_args = 0, have_args = true, have_ellipsis = false; /* Compute number of arguments. */ diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e68ee62..c573856 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2016-09-01 Martin Sebor <msebor@redhat.com> + + * mangle.c: Increase buffer size to guarantee it fits the output + of the formatted function regardless of its arguments. + 2016-09-01 Marek Polacek <polacek@redhat.com> PR c/7652 diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index d34743c..bd23260 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -1740,7 +1740,9 @@ static void write_real_cst (const tree value) { long target_real[4]; /* largest supported float */ - char buffer[9]; /* eight hex digits in a 32-bit number */ + /* Buffer for eight hex digits in a 32-bit number but big enough + even for 64-bit long to avoid warnings. */ + char buffer[17]; int i, limit, dir; tree type = TREE_TYPE (value); diff --git a/gcc/genmatch.c b/gcc/genmatch.c index 02e945a..6195a3b 100644 --- a/gcc/genmatch.c +++ b/gcc/genmatch.c @@ -4051,7 +4051,8 @@ parser::parse_expr () else if (force_capture) { unsigned num = capture_ids->elements (); - char id[8]; + /* Big enough for a 32-bit UINT_MAX plus prefix. */ + char id[13]; bool existed; sprintf (id, "__%u", num); capture_ids->get_or_insert (xstrdup (id), &existed); diff --git a/gcc/genmodes.c b/gcc/genmodes.c index 1170d4f..92ca055 100644 --- a/gcc/genmodes.c +++ b/gcc/genmodes.c @@ -486,7 +486,8 @@ make_vector_modes (enum mode_class cl, unsigned int width, { struct mode_data *m; struct mode_data *v; - char buf[8]; + /* Big enough for a 32-bit UINT_MAX plus the text. */ + char buf[12]; unsigned int ncomponents; enum mode_class vclass = vector_class (cl); diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 288b472..21e1c09 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -5346,7 +5346,8 @@ gimplify_asm_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) flexibility, split it into separate input and output operands. */ tree input; - char buf[10]; + /* Buffer big enough to format a 32-bit UINT_MAX into. */ + char buf[11]; /* Turn the in/out constraint into an output constraint. */ char *p = xstrdup (constraint); @@ -5356,7 +5357,7 @@ gimplify_asm_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) /* And add a matching input constraint. */ if (allows_reg) { - sprintf (buf, "%d", i); + sprintf (buf, "%u", i); /* If there are multiple alternatives in the constraint, handle each of them individually. Those that allow register diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog index 2052a97..4c75010 100644 --- a/gcc/go/ChangeLog +++ b/gcc/go/ChangeLog @@ -1,3 +1,9 @@ +2016-09-01 Martin Sebor <msebor@redhat.com> + + * gofrontend/expressions.cc: Increase buffer size to guarantee + it fits the output of the formatted function regardless of its + arguments. + 2016-08-29 Ian Lance Taylor <iant@google.com> * lang.opt (fgo-c-header, fgo-compiling-runtime): New options. diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 803611d..99f9f66 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -9050,7 +9050,8 @@ Call_expression::do_flatten(Gogo* gogo, Named_object*, Location loc = this->location(); int i = 0; - char buf[10]; + /* Buffer large enough for INT_MAX plus the prefix. */ + char buf[14]; for (Typed_identifier_list::const_iterator p = results->begin(); p != results->end(); ++p, ++i) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 74c5be8..781fecd 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,10 @@ +2016-09-01 Martin Sebor <msebor@redhat.com> + + * decl.c (give_name_to_locals): Increase buffer size to guarantee + it fits the output of the formatted function regardless of its + arguments. + * mangle_name.c (append_unicode_mangled_name): Same. + 2016-08-26 Richard Biener <rguenther@suse.de> java/ diff --git a/gcc/java/decl.c b/gcc/java/decl.c index 36989d3..70eac31 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -1721,7 +1721,8 @@ give_name_to_locals (JCF *jcf) DECL_NAME (parm) = get_identifier ("this"); else { - char buffer[12]; + /* Buffer large enough for INT_MAX plus prefix. */ + char buffer[15]; sprintf (buffer, "ARG_%d", arg_i); DECL_NAME (parm) = get_identifier (buffer); } diff --git a/gcc/java/mangle_name.c b/gcc/java/mangle_name.c index 00374db..7627c5d 100644 --- a/gcc/java/mangle_name.c +++ b/gcc/java/mangle_name.c @@ -231,7 +231,8 @@ void append_gpp_mangled_name (const char *name, int len) { int encoded_len, needs_escapes; - char buf[6]; + /* Buffer large enough for INT_MIN. */ + char buf[9]; MANGLE_CXX_KEYWORDS (name, len); @@ -270,7 +271,8 @@ append_unicode_mangled_name (const char *name, int len) /* Everything else needs encoding */ else { - char buf [9]; + /* Buffer large enough for UINT_MAX plus the prefix. */ + char buf [13]; if (ch == '_' || ch == 'U') { /* Prepare to recognize __U */ diff --git a/gcc/passes.c b/gcc/passes.c index c7d7dbe..07ebf8b 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -771,7 +771,9 @@ pass_manager::register_one_dump_file (opt_pass *pass) { char *dot_name, *flag_name, *glob_name; const char *name, *full_name, *prefix; - char num[10]; + + /* Buffer big enough to format a 32-bit UINT_MAX into. */ + char num[11]; int flags, id; int optgroup_flags = OPTGROUP_NONE; gcc::dump_manager *dumps = m_ctxt->get_dumps (); @@ -779,7 +781,7 @@ pass_manager::register_one_dump_file (opt_pass *pass) /* See below in next_pass_1. */ num[0] = '\0'; if (pass->static_pass_number != -1) - sprintf (num, "%d", ((int) pass->static_pass_number < 0 + sprintf (num, "%u", ((int) pass->static_pass_number < 0 ? 1 : pass->static_pass_number)); /* The name is both used to identify the pass for the purposes of plugins, diff --git a/gcc/print-tree.c b/gcc/print-tree.c index 7546f19..e55b6bd 100644 --- a/gcc/print-tree.c +++ b/gcc/print-tree.c @@ -694,8 +694,10 @@ print_node (FILE *file, const char *prefix, tree node, int indent) i = 0; FOR_EACH_CALL_EXPR_ARG (arg, iter, node) { - char temp[10]; - sprintf (temp, "arg %d", i); + /* Buffer big enough to format a 32-bit UINT_MAX into, plus + the text. */ + char temp[15]; + sprintf (temp, "arg %u", i); print_node (file, temp, arg, indent + 4); i++; } @@ -706,7 +708,9 @@ print_node (FILE *file, const char *prefix, tree node, int indent) for (i = 0; i < len; i++) { - char temp[10]; + /* Buffer big enough to format a 32-bit UINT_MAX into, plus + the text. */ + char temp[15]; sprintf (temp, "arg %d", i); print_node (file, temp, TREE_OPERAND (node, i), indent + 4); @@ -824,7 +828,9 @@ print_node (FILE *file, const char *prefix, tree node, int indent) for (i = 0; i < len; i++) if (TREE_VEC_ELT (node, i)) { - char temp[10]; + /* Buffer big enough to format a 32-bit UINT_MAX into, plus + the text. */ + char temp[15]; sprintf (temp, "elt %d", i); print_node (file, temp, TREE_VEC_ELT (node, i), indent + 4); } |