aboutsummaryrefslogtreecommitdiff
path: root/gcc/ubsan.c
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2016-09-02 02:14:50 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2016-09-01 20:14:50 -0600
commit05a647564aab92f73fc28631a1bb0311ee8f38f9 (patch)
tree8330dbb112ec47bbcf763663d1bd7051721bb3a6 /gcc/ubsan.c
parent910f2f3d8a3bccb6f65b9a99e6c36f409829f4f8 (diff)
downloadgcc-05a647564aab92f73fc28631a1bb0311ee8f38f9.zip
gcc-05a647564aab92f73fc28631a1bb0311ee8f38f9.tar.gz
gcc-05a647564aab92f73fc28631a1bb0311ee8f38f9.tar.bz2
PR tree-optimization/71831 - __builtin_object_size poor results with no
PR tree-optimization/71831 - __builtin_object_size poor results with no optimization gcc/testsuite/ChangeLog: PR tree-optimization/71831 * gcc.dg/builtin-object-size-16.c: New test. * gcc.dg/builtin-object-size-17.c: New test. gcc/ChangeLog: PR tree-optimization/71831 * tree-object-size.h: Return bool instead of the size and add argument for the size. * tree-object-size.c (compute_object_offset): Update signature. (addr_object_size): Same. (compute_builtin_object_size): Return bool instead of the size and add argument for the size. Handle POINTER_PLUS_EXPR when optimization is disabled. (expr_object_size): Adjust. (plus_stmt_object_size): Adjust. (pass_object_sizes::execute): Adjust. * builtins.c (fold_builtin_object_size): Adjust. * doc/extend.texi (Object Size Checking): Update. * ubsan.c (instrument_object_size): Adjust. From-SVN: r239953
Diffstat (limited to 'gcc/ubsan.c')
-rw-r--r--gcc/ubsan.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index a118af2..5cbc98d 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -1826,8 +1826,8 @@ instrument_object_size (gimple_stmt_iterator *gsi, bool is_lhs)
if (decl_p)
base_addr = build1 (ADDR_EXPR,
build_pointer_type (TREE_TYPE (base)), base);
- unsigned HOST_WIDE_INT size = compute_builtin_object_size (base_addr, 0);
- if (size != HOST_WIDE_INT_M1U)
+ unsigned HOST_WIDE_INT size;
+ if (compute_builtin_object_size (base_addr, 0, &size))
sizet = build_int_cst (sizetype, size);
else if (optimize)
{