diff options
author | Marek Polacek <polacek@redhat.com> | 2014-11-15 20:20:05 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2014-11-15 20:20:05 +0000 |
commit | 8537a4a9f5701e82d7378ce434f265aafe8c9033 (patch) | |
tree | ff148e79ad93f10015a49d49432f9e198d7b746c /gcc/c-family/array-notation-common.c | |
parent | d66a0f56fe77f373ad167ee29636cfdf195644e3 (diff) | |
download | gcc-8537a4a9f5701e82d7378ce434f265aafe8c9033.zip gcc-8537a4a9f5701e82d7378ce434f265aafe8c9033.tar.gz gcc-8537a4a9f5701e82d7378ce434f265aafe8c9033.tar.bz2 |
re PR middle-end/63884 (ICE: SIGSEGV in is_sec_implicit_index_fn with -fcilkplus and __builtin_sadd_overflow())
PR middle-end/63884
c-family/
* array-notation-common.c (is_sec_implicit_index_fn): Return false
for NULL fndecl.
(extract_array_notation_exprs): Return for NULL node.
testsuite/
* c-c++-common/cilk-plus/AN/pr63884.c: New test.
From-SVN: r217612
Diffstat (limited to 'gcc/c-family/array-notation-common.c')
-rw-r--r-- | gcc/c-family/array-notation-common.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/c-family/array-notation-common.c b/gcc/c-family/array-notation-common.c index f8bce04..cb5708c 100644 --- a/gcc/c-family/array-notation-common.c +++ b/gcc/c-family/array-notation-common.c @@ -35,6 +35,9 @@ along with GCC; see the file COPYING3. If not see bool is_sec_implicit_index_fn (tree fndecl) { + if (!fndecl) + return false; + if (TREE_CODE (fndecl) == ADDR_EXPR) fndecl = TREE_OPERAND (fndecl, 0); @@ -327,6 +330,9 @@ extract_array_notation_exprs (tree node, bool ignore_builtin_fn, vec<tree, va_gc> **array_list) { size_t ii = 0; + + if (!node) + return; if (TREE_CODE (node) == ARRAY_NOTATION_REF) { vec_safe_push (*array_list, node); |