gimple-ssa-sprintf.c: Fix comment formatting.

* gimple-ssa-sprintf.c: Fix comment formatting.
	(format_integer): Use is_gimple_assign.
	(pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
	and gimple_call_fndecl.  Reorder case BUILT_IN_SPRINTF_CHK.  Fix up
	BUILT_IN_SNPRINTF_CHK comment.  Replace "to to" with "to" in comment.
	(pass_sprintf_length::execute): Use is_gimple_call.

From-SVN: r240594
This commit is contained in:
Jakub Jelinek 2016-09-28 21:47:04 +02:00 committed by Jakub Jelinek
parent 0c1729748b
commit 5fe39ec007
2 changed files with 26 additions and 25 deletions

View File

@ -1,3 +1,12 @@
2016-09-28 Jakub Jelinek <jakub@redhat.com>
* gimple-ssa-sprintf.c: Fix comment formatting.
(format_integer): Use is_gimple_assign.
(pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
(pass_sprintf_length::execute): Use is_gimple_call.
2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
* gimple-fold.c (gimple_fold_builtin): After failing to fold

View File

@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see
The pass handles all forms standard sprintf format directives,
including character, integer, floating point, pointer, and strings,
with the standard C flags, widths, and precisions. For integers
with the standard C flags, widths, and precisions. For integers
and strings it computes the length of output itself. For floating
point it uses MPFR to fornmat known constants with up and down
rounding and uses the resulting range of output lengths. For
@ -464,7 +464,7 @@ struct conversion_spec
/* Format conversion function that given a conversion specification
and an argument returns the formatting result. */
fmtresult (*fmtfunc) (const conversion_spec &, tree);
fmtresult (*fmtfunc) (const conversion_spec &, tree);
/* Return True when a the format flag CHR has been used. */
bool get_flag (char chr) const
@ -1041,10 +1041,10 @@ format_integer (const conversion_spec &spec, tree arg)
{
/* The argument here may be the result of promoting the actual
argument to int. Try to determine the type of the actual
argument before promotion and narrow down its range that
argument before promotion and narrow down its range that
way. */
gimple *def = SSA_NAME_DEF_STMT (arg);
if (gimple_code (def) == GIMPLE_ASSIGN)
if (is_gimple_assign (def))
{
tree_code code = gimple_assign_rhs_code (def);
if (code == NOP_EXPR)
@ -2480,18 +2480,10 @@ pass_sprintf_length::handle_gimple_call (gimple_stmt_iterator gsi)
call_info info = call_info ();
info.callstmt = gsi_stmt (gsi);
info.func = gimple_call_fn (info.callstmt);
if (!info.func)
return;
if (TREE_CODE (info.func) == ADDR_EXPR)
info.func = TREE_OPERAND (info.func, 0);
if (TREE_CODE (info.func) != FUNCTION_DECL
|| !DECL_BUILT_IN(info.func)
|| DECL_BUILT_IN_CLASS (info.func) != BUILT_IN_NORMAL)
if (!gimple_call_builtin_p (info.callstmt, BUILT_IN_NORMAL))
return;
info.func = gimple_call_fndecl (info.callstmt);
info.fncode = DECL_FUNCTION_CODE (info.func);
/* The size of the destination as in snprintf(dest, size, ...). */
@ -2518,6 +2510,14 @@ pass_sprintf_length::handle_gimple_call (gimple_stmt_iterator gsi)
info.argidx = 2;
break;
case BUILT_IN_SPRINTF_CHK:
// Signature:
// __builtin___sprintf_chk (dst, ost, objsize, format, ...)
idx_objsize = 2;
idx_format = 3;
info.argidx = 4;
break;
case BUILT_IN_SNPRINTF:
// Signature:
// __builtin_snprintf (dst, size, format, ...)
@ -2529,7 +2529,7 @@ pass_sprintf_length::handle_gimple_call (gimple_stmt_iterator gsi)
case BUILT_IN_SNPRINTF_CHK:
// Signature:
// __builtin___sprintf_chk (dst, size, ost, objsize, format, ...)
// __builtin___snprintf_chk (dst, size, ost, objsize, format, ...)
idx_dstsize = 1;
idx_objsize = 3;
idx_format = 4;
@ -2537,14 +2537,6 @@ pass_sprintf_length::handle_gimple_call (gimple_stmt_iterator gsi)
info.bounded = true;
break;
case BUILT_IN_SPRINTF_CHK:
// Signature:
// __builtin___sprintf_chk (dst, ost, objsize, format, ...)
idx_objsize = 2;
idx_format = 3;
info.argidx = 4;
break;
case BUILT_IN_VSNPRINTF:
// Signature:
// __builtin_vsprintf (dst, size, format, va)
@ -2587,7 +2579,7 @@ pass_sprintf_length::handle_gimple_call (gimple_stmt_iterator gsi)
if (idx_dstsize == HOST_WIDE_INT_M1U)
{
// For non-bounded functions like sprintf, to to determine
// For non-bounded functions like sprintf, to determine
// the size of the destination from the object or pointer
// passed to it as the first argument.
dstsize = get_destination_size (gimple_call_arg (info.callstmt, 0));
@ -2698,7 +2690,7 @@ pass_sprintf_length::execute (function *fun)
/* Iterate over statements, looking for function calls. */
gimple *stmt = gsi_stmt (si);
if (gimple_code (stmt) == GIMPLE_CALL)
if (is_gimple_call (stmt))
handle_gimple_call (si);
}
}