On 8/17/20 10:52 AM, Tobias Burnus wrote:
LGTM & thanks! – Sorry for missing it.

That happens.

(I re-checked against the OMP_LIST_* enum and
it seems to be only missing one.)

Good.

I'm suggesting one more clean up that uses static assert
instead of a run-time check.

Thoughts?
Martin
>From c9aee2c44d5cf7e417d381988b2f4900e9ea8b05 Mon Sep 17 00:00:00 2001
From: Martin Liska <mli...@suse.cz>
Date: Mon, 17 Aug 2020 11:14:13 +0200
Subject: [PATCH] opnemp: add static assert for clause_names.

gcc/fortran/ChangeLog:

	* openmp.c (resolve_omp_clauses): Add static assert
	for OMP_LIST_NUM and size of clause_names array.
	Remove check that is always true.
---
 gcc/fortran/openmp.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c
index 60d8e5573c2..4d33a450a33 100644
--- a/gcc/fortran/openmp.c
+++ b/gcc/fortran/openmp.c
@@ -4371,6 +4371,7 @@ resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses,
 	"TO", "FROM", "REDUCTION", "DEVICE_RESIDENT", "LINK", "USE_DEVICE",
 	"CACHE", "IS_DEVICE_PTR", "USE_DEVICE_PTR", "USE_DEVICE_ADDR",
 	"NONTEMPORAL" };
+  STATIC_ASSERT (ARRAY_SIZE (clause_names) == OMP_LIST_NUM);
 
   if (omp_clauses == NULL)
     return;
@@ -4732,12 +4733,7 @@ resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses,
   for (list = 0; list < OMP_LIST_NUM; list++)
     if ((n = omp_clauses->lists[list]) != NULL)
       {
-	const char *name;
-
-	if (list < OMP_LIST_NUM)
-	  name = clause_names[list];
-	else
-	  gcc_unreachable ();
+	const char *name = clause_names[list];
 
 	switch (list)
 	  {
-- 
2.28.0

Reply via email to