OpenMP: Fix for ICE in tree-nested.cc.

Use gimple_omp_target_clauses() instead of gimple_omp_taskreg_clauses()
when stmt is GIMPLE_OMP_TARGET, to avoid an as_a<> ICE.  The code
immediately following this is already conditionalized in the same way.

gcc/ChangeLog
	* tree-nested.cc (convert_tramp_reference_stmt): Use the correct
	accessor for GIMPLE_OMP_TARGET clauses.
This commit is contained in:
Sandra Loosemore 2024-04-22 18:24:25 +00:00
parent 7c469a9fc7
commit 80c03ac804

View file

@ -2906,9 +2906,11 @@ convert_tramp_reference_stmt (gimple_stmt_iterator *gsi, bool *handled_ops_p,
continue;
decl = i ? get_chain_decl (info) : info->frame_decl;
/* Don't add CHAIN.* or FRAME.* twice. */
for (c = gimple_omp_taskreg_clauses (stmt);
c;
c = OMP_CLAUSE_CHAIN (c))
if (gimple_code (stmt) == GIMPLE_OMP_TARGET)
c = gimple_omp_target_clauses (stmt);
else
c = gimple_omp_taskreg_clauses (stmt);
for (; c; c = OMP_CLAUSE_CHAIN (c))
if ((OMP_CLAUSE_CODE (c) == OMP_CLAUSE_FIRSTPRIVATE
|| OMP_CLAUSE_CODE (c) == OMP_CLAUSE_SHARED)
&& OMP_CLAUSE_DECL (c) == decl)