mirror of git://gcc.gnu.org/git/gcc.git
re PR sanitizer/83014 (ICE in pretty-print with -fsanitize=bounds)
PR sanitizer/83014 * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling tree_to_uhwi twice. * gcc.dg/ubsan/pr83014.c: New test. From-SVN: r255134
This commit is contained in:
parent
51feb980c9
commit
96281645bd
|
|
@ -1,5 +1,10 @@
|
||||||
2017-11-24 Jakub Jelinek <jakub@redhat.com>
|
2017-11-24 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR sanitizer/83014
|
||||||
|
* ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
|
||||||
|
instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling
|
||||||
|
tree_to_uhwi twice.
|
||||||
|
|
||||||
* tree-object-size.c (pass_through_call): Use gimple_call_return_flags
|
* tree-object-size.c (pass_through_call): Use gimple_call_return_flags
|
||||||
ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
|
ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
|
||||||
check for the latter with gimple_call_builtin_p. Do not handle
|
check for the latter with gimple_call_builtin_p. Do not handle
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
2017-11-24 Jakub Jelinek <jakub@redhat.com>
|
2017-11-24 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR sanitizer/83014
|
||||||
|
* gcc.dg/ubsan/pr83014.c: New test.
|
||||||
|
|
||||||
* gcc.dg/builtin-object-size-18.c: New test.
|
* gcc.dg/builtin-object-size-18.c: New test.
|
||||||
|
|
||||||
2017-11-23 Julia Koval <julia.koval@intel.com>
|
2017-11-23 Julia Koval <julia.koval@intel.com>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
/* PR sanitizer/83014 */
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-fsanitize=undefined" } */
|
||||||
|
|
||||||
|
int
|
||||||
|
foo (void)
|
||||||
|
{
|
||||||
|
int data[5];
|
||||||
|
data[0] = 0;
|
||||||
|
data[5] = 0;
|
||||||
|
return data[0];
|
||||||
|
}
|
||||||
|
|
@ -436,10 +436,10 @@ ubsan_type_descriptor (tree type, enum ubsan_print_style pstyle)
|
||||||
&& TYPE_MAX_VALUE (dom) != NULL_TREE
|
&& TYPE_MAX_VALUE (dom) != NULL_TREE
|
||||||
&& TREE_CODE (TYPE_MAX_VALUE (dom)) == INTEGER_CST)
|
&& TREE_CODE (TYPE_MAX_VALUE (dom)) == INTEGER_CST)
|
||||||
{
|
{
|
||||||
|
unsigned HOST_WIDE_INT m;
|
||||||
if (tree_fits_uhwi_p (TYPE_MAX_VALUE (dom))
|
if (tree_fits_uhwi_p (TYPE_MAX_VALUE (dom))
|
||||||
&& tree_to_uhwi (TYPE_MAX_VALUE (dom)) + 1 != 0)
|
&& (m = tree_to_uhwi (TYPE_MAX_VALUE (dom))) + 1 != 0)
|
||||||
pp_printf (&pretty_name, HOST_WIDE_INT_PRINT_DEC,
|
pp_unsigned_wide_integer (&pretty_name, m + 1);
|
||||||
tree_to_uhwi (TYPE_MAX_VALUE (dom)) + 1);
|
|
||||||
else
|
else
|
||||||
pp_wide_int (&pretty_name,
|
pp_wide_int (&pretty_name,
|
||||||
wi::add (wi::to_widest (TYPE_MAX_VALUE (dom)), 1),
|
wi::add (wi::to_widest (TYPE_MAX_VALUE (dom)), 1),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue