diff options
author | Richard Biener <rguenther@suse.de> | 2025-01-13 09:12:23 +0100 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2025-01-13 10:38:47 +0100 |
commit | d3904a3ad9d7b4c8e5e536e5166b89548510fd48 (patch) | |
tree | 9af5f6fb02250d29c30eb2b05d4b7139ac4421de | |
parent | c0c47fc89ddcc3b1fbb0e5f3040fc52d93ca0be0 (diff) | |
download | gcc-d3904a3ad9d7b4c8e5e536e5166b89548510fd48.zip gcc-d3904a3ad9d7b4c8e5e536e5166b89548510fd48.tar.gz gcc-d3904a3ad9d7b4c8e5e536e5166b89548510fd48.tar.bz2 |
tree-optimization/117119 - ICE with int128 IV in dataref analysis
Here's another fix for a missing check that an IV value fits in a
HIW. It's originally from Stefan.
PR tree-optimization/117119
* tree-data-ref.cc (initialize_matrix_A): Check whether
an INTEGER_CST fits in HWI, otherwise return chrec_dont_know.
* gcc.dg/torture/pr117119.c: New testcase.
Co-Authored-By: Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr117119.c | 10 | ||||
-rw-r--r-- | gcc/tree-data-ref.cc | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr117119.c b/gcc/testsuite/gcc.dg/torture/pr117119.c new file mode 100644 index 0000000..0ec4ac1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr117119.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target int128 } */ + +unsigned __int128 g_728; +int func_1_l_5011[8]; +void func_1() { + for (;; g_728 += 1) + func_1_l_5011[g_728] ^= func_1_l_5011[g_728 + 5]; +} +void main() {} diff --git a/gcc/tree-data-ref.cc b/gcc/tree-data-ref.cc index 26ad053..08c14fe 100644 --- a/gcc/tree-data-ref.cc +++ b/gcc/tree-data-ref.cc @@ -4088,7 +4088,7 @@ initialize_matrix_A (lambda_matrix A, tree chrec, unsigned index, int mult) } case INTEGER_CST: - return chrec; + return cst_and_fits_in_hwi (chrec) ? chrec : chrec_dont_know; default: gcc_unreachable (); |