mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-08 09:41:09 +08:00
re PR tree-optimization/78742 (internal compiler error: in int_cst_value, at tree.c:10782)
2016-12-13 Richard Biener <rguenther@suse.de> PR middle-end/78742 * tree.c (cst_and_fits_in_hwi): Look if the actual value fits. * tree-object-size.c (compute_builtin_object_size): Use tree_fits_shwi_p. * tree-data-ref.c (initialize_matrix_A): Remove excess assert. * gcc.dg/torture/pr78742.c: New testcase. From-SVN: r243598
This commit is contained in:
parent
56b7aede91
commit
6182121c12
@ -1,3 +1,11 @@
|
||||
2016-12-13 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/78742
|
||||
* tree.c (cst_and_fits_in_hwi): Look if the actual value fits.
|
||||
* tree-object-size.c (compute_builtin_object_size): Use
|
||||
tree_fits_shwi_p.
|
||||
* tree-data-ref.c (initialize_matrix_A): Remove excess assert.
|
||||
|
||||
2016-12-13 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* asan.c (asan_mark_poison_p): Remove.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2016-12-13 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/78742
|
||||
* gcc.dg/torture/pr78742.c: New testcase.
|
||||
|
||||
2016-12-13 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* gcc.dg/asan/use-after-scope-goto-1.c: Update first argument of
|
||||
|
20
gcc/testsuite/gcc.dg/torture/pr78742.c
Normal file
20
gcc/testsuite/gcc.dg/torture/pr78742.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target int128 } */
|
||||
|
||||
void foo();
|
||||
|
||||
void func()
|
||||
{
|
||||
int m;
|
||||
|
||||
int tab[m];
|
||||
|
||||
__int128 j;
|
||||
for(; j; j++)
|
||||
{
|
||||
tab[j] = 0;
|
||||
tab[j+1] = 0;
|
||||
}
|
||||
|
||||
foo();
|
||||
}
|
@ -2118,8 +2118,6 @@ initialize_matrix_A (lambda_matrix A, tree chrec, unsigned index, int mult)
|
||||
switch (TREE_CODE (chrec))
|
||||
{
|
||||
case POLYNOMIAL_CHREC:
|
||||
gcc_assert (TREE_CODE (CHREC_RIGHT (chrec)) == INTEGER_CST);
|
||||
|
||||
A[index][0] = mult * int_cst_value (CHREC_RIGHT (chrec));
|
||||
return initialize_matrix_A (A, CHREC_LEFT (chrec), index + 1, mult);
|
||||
|
||||
|
@ -538,7 +538,7 @@ compute_builtin_object_size (tree ptr, int object_size_type,
|
||||
tree offset = gimple_assign_rhs2 (def);
|
||||
ptr = gimple_assign_rhs1 (def);
|
||||
|
||||
if (cst_and_fits_in_hwi (offset)
|
||||
if (tree_fits_shwi_p (offset)
|
||||
&& compute_builtin_object_size (ptr, object_size_type, psize))
|
||||
{
|
||||
/* Return zero when the offset is out of bounds. */
|
||||
|
@ -1677,7 +1677,7 @@ bool
|
||||
cst_and_fits_in_hwi (const_tree x)
|
||||
{
|
||||
return (TREE_CODE (x) == INTEGER_CST
|
||||
&& TYPE_PRECISION (TREE_TYPE (x)) <= HOST_BITS_PER_WIDE_INT);
|
||||
&& (tree_fits_shwi_p (x) || tree_fits_uhwi_p (x)));
|
||||
}
|
||||
|
||||
/* Build a newly constructed VECTOR_CST node of length LEN. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user