Commit 4adbcdb4 by Martin Liska Committed by Martin Liska

Fix host_size_t_cst_p predicat

	* fold-const-call.c (host_size_t_cst_p): Test whether
	t is convertible to size_t.
	* gcc.dg/tree-ssa/builtins-folding-gimple-ub.c (main): Add
	test case.

From-SVN: r241780
parent 4b2c06f4
2016-11-02 Martin Liska <mliska@suse.cz>
* fold-const-call.c (host_size_t_cst_p): Test whether
t is convertible to size_t.
2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR tree-optimization/78170
......@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "case-cfn-macros.h"
#include "tm.h" /* For C[LT]Z_DEFINED_AT_ZERO. */
#include "builtins.h"
#include "gimple-expr.h"
/* Functions that test for certain constant types, abstracting away the
decision about whether to check for overflow. */
......@@ -57,7 +58,8 @@ complex_cst_p (tree t)
static inline bool
host_size_t_cst_p (tree t, size_t *size_out)
{
if (integer_cst_p (t)
if (types_compatible_p (size_type_node, TREE_TYPE (t))
&& integer_cst_p (t)
&& wi::min_precision (t, UNSIGNED) <= sizeof (size_t) * CHAR_BIT)
{
*size_out = tree_to_uhwi (t);
......
2016-11-02 Martin Liska <mliska@suse.cz>
* gcc.dg/tree-ssa/builtins-folding-gimple-ub.c (main): Add
test case.
2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR tree-optimization/78170
......
......@@ -17,6 +17,10 @@ main (void)
if (__builtin_memchr (foo1, 'x', 1000)) /* Not folded away. */
__builtin_abort ();
/* STRNCMP. */
if (strncmp ("a", "b", -1)) /* { dg-warning "implicit declaration of function" } */
__builtin_abort ();
return 0;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment