]> git.ipfire.org Git - thirdparty/gcc.git/commit
stor-layout.c (layout_type): Do not clear TREE_OVERFLOW on overflowed zeroes, except...
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 28 Nov 2012 10:51:19 +0000 (10:51 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Wed, 28 Nov 2012 10:51:19 +0000 (10:51 +0000)
commitce3da0d0d54ce3e469828698ba1ac5f25146b6f9
tree66a07373943672c9d9ef3f8e395acb3f21fe89cd
parentfb1fbef2735bce7c62511daf6f64343d9d97e299
stor-layout.c (layout_type): Do not clear TREE_OVERFLOW on overflowed zeroes, except in one specific case.

* stor-layout.c (layout_type) <ARRAY_TYPE>: Do not clear TREE_OVERFLOW
on overflowed zeroes, except in one specific case.
ada/
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use
valid_constant_size_p to detect too large objects.
<E_Subprogram_Type>: Likewise for too large return types.
(allocatable_size_p): Call valid_constant_size_p in the fixed case.
(annotate_value) <INTEGER_CST>: Simplify.
<BIT_AND_EXPR>: Deal with negative values here.
* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
valid_constant_size_p to detect too large objects on the LHS.
* gcc-interface/misc.c (default_pass_by_ref): Likewise for large types.
And use TYPE_SIZE_UNIT throughout.
(must_pass_by_ref): Likewise.
* gcc-interface/utils.c (max_size) <tcc_unary>: Split from common case.
<tcc_binary>: Likewise.  Call size_binop instead of fold_build2.
<tcc_expression>: Simplify.
* gcc-interface/utils2.c (build_allocator): Use valid_constant_size_p
to detect too large allocations.

From-SVN: r193886
13 files changed:
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/misc.c
gcc/ada/gcc-interface/trans.c
gcc/ada/gcc-interface/utils.c
gcc/ada/gcc-interface/utils2.c
gcc/stor-layout.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/object_overflow1.adb [moved from gcc/testsuite/gnat.dg/object_overflow.adb with 87% similarity]
gcc/testsuite/gnat.dg/object_overflow2.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/object_overflow3.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/object_overflow4.adb [new file with mode: 0644]