|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XEN PATCH 1/3] xen: introduce static_assert_unreachable()
Introduce macro static_asser_unreachable() to check that a program
point is considered unreachable by the static analysis performed by the
compiler, even at optimization level -O0.
The use of such macro will lead to one of the following outcomes:
- the program point identified by the macro is considered unreachable,
then the compiler removes the macro;
- the program point identified by the macro is not considered
unreachable, then the compiler does not remove the macro, which will
lead to a failure in the build process caused by an assembler error.
Signed-off-by: Federico Serafini <federico.serafini@xxxxxxxxxxx>
---
xen/include/xen/compiler.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
index 16d554f2a5..ad0520f5d4 100644
--- a/xen/include/xen/compiler.h
+++ b/xen/include/xen/compiler.h
@@ -64,6 +64,14 @@
# define fallthrough do {} while (0) /* fallthrough */
#endif
+/*
+ * Add the following macro to check that a program point is considered
+ * unreachable by the static analysis performed by the compiler,
+ * even at optimization level -O0.
+ */
+#define static_assert_unreachable() \
+ asm(".error \"unreachable program point reached\"");
+
#ifdef __clang__
/* Clang can replace some vars with new automatic ones that go in .data;
* mark all explicit-segment vars 'used' to prevent that. */
--
2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |