Hi Jakub, hi Martin, I think I misread some bits – after more code reading, I think it correctly sets '(NODE)->omp_clause.code' alias OMP_CLAUSE_CODE; Hence, using OMP_CLAUSE_CODE in the switch statement makes sense for the actual code usage (and, of course, also semantically). As I don't have HSA setup, I couldn't test it. This code is only called via omp-low.c's execute_lower_omp via: if (hsa_gen_requested_p ()) omp_grid_gridify_all_targets (&body); Hence, unsurprisingly, it did not make a difference when running the testsuite . OK? [The code was added (back then to omp-low.c) in commit 56b1c60e412fcf1245b4780871553cbdebb956a3 (r242761) with Martins' [plural ;-)] 'Merge from HSA branch to trunk'.] Tobias On 4/3/20 11:08 AM, Jakub Jelinek wrote: > On Fri, Apr 03, 2020 at 11:02:13AM +0200, Tobias Burnus wrote: >> Those are all for the same switch statement; >> >> gomp_for contains 'tree clauses' and this clauses's '->code' is used >> to handle store 'enum omp_clauses_code' values in in gimple.{h,c}. >> >> I think adding this cast (and only this one) makes sense and it >> also silences a (clang) compiler warning. > That looks wrong to me. If *pc are OMP_CLAUSES, then it should use > OMP_CLAUSE_CODE (c) instead of TREE_CODE (c). > If something creates a tree that has TREE_CODE OMP_CLAUSE_LINEAR, then > that looks very suspicios (TREE_CODE should be OMP_CLAUSE). > >> omp-grid.c – add cast to silence different enumeration types warning >> >> * omp-grid.c (grid_eliminate_combined_simd_part): Add cast >> to omp_clause_code to silence compiler warning. >> >> diff --git a/gcc/omp-grid.c b/gcc/omp-grid.c >> index b98e45de6a0..878977da2f9 100644 >> --- a/gcc/omp-grid.c >> +++ b/gcc/omp-grid.c >> @@ -1058,21 +1058,21 @@ grid_eliminate_combined_simd_part (gomp_for *parloop) >> while (*tgt) >> tgt = &OMP_CLAUSE_CHAIN (*tgt); >> >> /* Copy over all clauses, except for linear clauses, which are turned into >> private clauses, and all other simd-specific clauses, which are >> ignored. */ >> tree *pc = gimple_omp_for_clauses_ptr (simd); >> while (*pc) >> { >> tree c = *pc; >> - switch (TREE_CODE (c)) >> + switch ((omp_clause_code) TREE_CODE (c)) >> { >> case OMP_CLAUSE_LINEAR: >> { >> tree priv = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE_PRIVATE); >> OMP_CLAUSE_DECL (priv) = OMP_CLAUSE_DECL (c); >> OMP_CLAUSE_CHAIN (priv) = NULL; >> *tgt = priv; >> tgt = &OMP_CLAUSE_CHAIN (priv); >> pc = &OMP_CLAUSE_CHAIN (c); >> break; > > Jakub > ----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter