From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1820) id 79DC73858436; Thu, 10 Mar 2022 18:31:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 79DC73858436 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Hafiz Abid Qadeer To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/omp/gcc-11] Fix an ICE with allocate directive. X-Act-Checkin: gcc X-Git-Author: Hafiz Abid Qadeer X-Git-Refname: refs/heads/devel/omp/gcc-11 X-Git-Oldrev: a58f7c3023cf3e69671cfdb75d75ce4d62afcebb X-Git-Newrev: a03a01959576337cb0cac35de6915cc2b5d9a36c Message-Id: <20220310183132.79DC73858436@sourceware.org> Date: Thu, 10 Mar 2022 18:31:32 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Mar 2022 18:31:32 -0000 https://gcc.gnu.org/g:a03a01959576337cb0cac35de6915cc2b5d9a36c commit a03a01959576337cb0cac35de6915cc2b5d9a36c Author: Hafiz Abid Qadeer Date: Wed Mar 9 21:40:45 2022 +0000 Fix an ICE with allocate directive. Add case for OMP_CLAUSE_ALLOCATOR in walk_tree_1. This helps fix an ICE which occurs only on OG11 with allocate directive. Please note that this change is not needed on master. The code there handles all clauses in the same way so a special case for OMP_CLAUSE_ALLOCATOR is not required. gcc/ * tree.c (walk_tree_1): Add case for OMP_CLAUSE_ALLOCATOR. Diff: --- gcc/ChangeLog.omp | 4 ++++ gcc/tree.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index c6c60c23480..46143dda9c3 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,7 @@ +2022-03-10 Abid Qadeer + + * tree.c (walk_tree_1): Add case for OMP_CLAUSE_ALLOCATOR. + 2022-03-09 Abid Qadeer Backport of a patch posted at diff --git a/gcc/tree.c b/gcc/tree.c index 26830f47aa1..1b99620bfcb 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -12359,6 +12359,16 @@ walk_tree_1 (tree *tp, walk_tree_fn func, void *data, WALK_SUBTREE_TAIL (OMP_CLAUSE_CHAIN (*tp)); } + /* This hunk is only needed on og11 as master uses same code + for all clauses. */ + case OMP_CLAUSE_ALLOCATOR: + { + int len = omp_clause_num_ops[OMP_CLAUSE_CODE (*tp)]; + for (int i = 0; i < len; i++) + WALK_SUBTREE (OMP_CLAUSE_OPERAND (*tp, i)); + WALK_SUBTREE_TAIL (OMP_CLAUSE_CHAIN (*tp)); + } + default: gcc_unreachable (); }