This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Implement -Wswitch-fallthrough: libgomp
- From: Marek Polacek <polacek at redhat dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 11 Jul 2016 21:56:31 +0200
- Subject: Re: Implement -Wswitch-fallthrough: libgomp
- Authentication-results: sourceware.org; auth=none
- References: <20160711194340.GI13963@redhat.com>
2016-07-11 Marek Polacek <polacek@redhat.com>
PR c/7652
* libgomp.h (gomp_fallthrough): Define.
* oacc-init.c (resolve_device): Use gomp_fallthrough.
* testsuite/libgomp.c++/cancel-parallel-2.C: Add __builtin_fallthrough.
* testsuite/libgomp.c/cancel-parallel-2.c: Add __builtin_fallthrough.
diff --git gcc/libgomp/libgomp.h gcc/libgomp/libgomp.h
index 7b2671b..c0c5e60 100644
--- gcc/libgomp/libgomp.h
+++ gcc/libgomp/libgomp.h
@@ -1080,6 +1080,12 @@ extern int gomp_test_nest_lock_25 (omp_nest_lock_25_t *) __GOMP_NOTHROW;
# define ialias_call(fn) fn
#endif
+#if __GNUC__ >= 7
+# define gomp_fallthrough() __builtin_fallthrough ()
+#else
+# define gomp_fallthrough()
+#endif
+
/* Helper function for priority_node_to_task() and
task_to_priority_node().
diff --git gcc/libgomp/oacc-init.c gcc/libgomp/oacc-init.c
index f2325ad..70308fc 100644
--- gcc/libgomp/oacc-init.c
+++ gcc/libgomp/oacc-init.c
@@ -144,6 +144,7 @@ resolve_device (acc_device_t d, bool fail_is_error)
d = acc_device_not_host;
}
/* FALLTHROUGH */
+ gomp_fallthrough ();
case acc_device_not_host:
/* Find the first available device after acc_device_not_host. */
diff --git gcc/libgomp/testsuite/libgomp.c++/cancel-parallel-2.C gcc/libgomp/testsuite/libgomp.c++/cancel-parallel-2.C
index 23b8caa..f793f8a 100644
--- gcc/libgomp/testsuite/libgomp.c++/cancel-parallel-2.C
+++ gcc/libgomp/testsuite/libgomp.c++/cancel-parallel-2.C
@@ -31,6 +31,7 @@ foo (int *x)
case 2:
usleep (1000);
/* FALLTHRU */
+ __builtin_fallthrough ();
case 1:;
#pragma omp cancellation point parallel
break;
diff --git gcc/libgomp/testsuite/libgomp.c/cancel-parallel-2.c gcc/libgomp/testsuite/libgomp.c/cancel-parallel-2.c
index 20adb55..054a96e 100644
--- gcc/libgomp/testsuite/libgomp.c/cancel-parallel-2.c
+++ gcc/libgomp/testsuite/libgomp.c/cancel-parallel-2.c
@@ -27,6 +27,7 @@ foo (int *x)
case 2:
usleep (1000);
/* FALLTHRU */
+ __builtin_fallthrough ();
case 1:;
#pragma omp cancellation point parallel
break;