aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-object-size.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-09-02 14:25:14 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2009-09-02 14:25:14 +0200
commitded97380f0703da62c2f4c61cf46eafc56f6aa78 (patch)
treeefb22c41209ac029bd4fbc0200c7d0c9bd288ef2 /gcc/tree-object-size.c
parent683ebd75535df2238c74cec637724a906bc228df (diff)
downloadgcc-ded97380f0703da62c2f4c61cf46eafc56f6aa78.zip
gcc-ded97380f0703da62c2f4c61cf46eafc56f6aa78.tar.gz
gcc-ded97380f0703da62c2f4c61cf46eafc56f6aa78.tar.bz2
tree-object-size.c (addr_object_size): Always use object_size_type 0 or 2 when determining the pointer pointed object size.
* tree-object-size.c (addr_object_size): Always use object_size_type 0 or 2 when determining the pointer pointed object size. * gcc.dg/builtin-object-size-9.c: New test. From-SVN: r151323
Diffstat (limited to 'gcc/tree-object-size.c')
-rw-r--r--gcc/tree-object-size.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c
index 5b9fe38..443f280 100644
--- a/gcc/tree-object-size.c
+++ b/gcc/tree-object-size.c
@@ -171,9 +171,9 @@ addr_object_size (struct object_size_info *osi, const_tree ptr,
{
unsigned HOST_WIDE_INT sz;
- if (!osi)
+ if (!osi || (object_size_type & 1) != 0)
sz = compute_builtin_object_size (TREE_OPERAND (pt_var, 0),
- object_size_type);
+ object_size_type & ~1);
else
{
tree var = TREE_OPERAND (pt_var, 0);