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
This commit is contained in:
parent
4b2c06f49f
commit
4adbcdb4ba
|
@ -1,3 +1,8 @@
|
|||
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);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue