diff --git a/CMakeLists.txt b/CMakeLists.txt
index 78ee4a3..33ff545 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -54,6 +54,7 @@
 option_if_not_defined(MARL_ASAN "Build marl with address sanitizer" OFF)
 option_if_not_defined(MARL_MSAN "Build marl with memory sanitizer" OFF)
 option_if_not_defined(MARL_TSAN "Build marl with thread sanitizer" OFF)
+option_if_not_defined(MARL_UBSAN "Build marl with undefined-behavior sanitizer" OFF)
 option_if_not_defined(MARL_INSTALL "Create marl install target" OFF)
 option_if_not_defined(MARL_FULL_BENCHMARK "Run benchmarks for [0 .. numLogicalCPUs] with no stepping" OFF)
 option_if_not_defined(MARL_FIBERS_USE_UCONTEXT "Use ucontext instead of assembly for fibers (ignored for platforms that do not support ucontext)" OFF)
@@ -244,6 +245,9 @@
     elseif(MARL_TSAN)
         target_compile_options(${target} PUBLIC "-fsanitize=thread")
         target_link_libraries(${target} PUBLIC "-fsanitize=thread")
+    elseif(MARL_UBSAN)
+        target_compile_options(${target} PUBLIC "-fsanitize=undefined")
+        target_link_libraries(${target} PUBLIC "-fsanitize=undefined")
     endif()
 
     if(MARL_FIBERS_USE_UCONTEXT)
diff --git a/include/marl/sanitizers.h b/include/marl/sanitizers.h
index 3f26d4a..0fcfd3e 100644
--- a/include/marl/sanitizers.h
+++ b/include/marl/sanitizers.h
@@ -15,67 +15,84 @@
 #ifndef marl_sanitizers_h
 #define marl_sanitizers_h
 
-// Define ADDRESS_SANITIZER_ENABLED to 1 if the project was built with the
+// Define MARL_ADDRESS_SANITIZER_ENABLED to 1 if the project was built with the
 // address sanitizer enabled (-fsanitize=address).
 #if defined(__SANITIZE_ADDRESS__)
-#define ADDRESS_SANITIZER_ENABLED 1
+#define MARL_ADDRESS_SANITIZER_ENABLED 1
 #else  // defined(__SANITIZE_ADDRESS__)
 #if defined(__clang__)
 #if __has_feature(address_sanitizer)
-#define ADDRESS_SANITIZER_ENABLED 1
+#define MARL_ADDRESS_SANITIZER_ENABLED 1
 #endif  // __has_feature(address_sanitizer)
 #endif  // defined(__clang__)
 #endif  // defined(__SANITIZE_ADDRESS__)
 
-// ADDRESS_SANITIZER_ONLY(X) resolves to X if ADDRESS_SANITIZER_ENABLED is
-// defined to a non-zero value, otherwise ADDRESS_SANITIZER_ONLY() is stripped
-// by the preprocessor.
-#if ADDRESS_SANITIZER_ENABLED
-#define ADDRESS_SANITIZER_ONLY(x) x
+// MARL_ADDRESS_SANITIZER_ONLY(X) resolves to X if
+// MARL_ADDRESS_SANITIZER_ENABLED is defined to a non-zero value, otherwise
+// MARL_ADDRESS_SANITIZER_ONLY() is stripped by the preprocessor.
+#if MARL_ADDRESS_SANITIZER_ENABLED
+#define MARL_ADDRESS_SANITIZER_ONLY(x) x
 #else
-#define ADDRESS_SANITIZER_ONLY(x)
-#endif  // ADDRESS_SANITIZER_ENABLED
+#define MARL_ADDRESS_SANITIZER_ONLY(x)
+#endif  // MARL_ADDRESS_SANITIZER_ENABLED
 
-// Define MEMORY_SANITIZER_ENABLED to 1 if the project was built with the memory
-// sanitizer enabled (-fsanitize=memory).
+// Define MARL_MEMORY_SANITIZER_ENABLED to 1 if the project was built with the
+// memory sanitizer enabled (-fsanitize=memory).
 #if defined(__SANITIZE_MEMORY__)
-#define MEMORY_SANITIZER_ENABLED 1
+#define MARL_MEMORY_SANITIZER_ENABLED 1
 #else  // defined(__SANITIZE_MEMORY__)
 #if defined(__clang__)
 #if __has_feature(memory_sanitizer)
-#define MEMORY_SANITIZER_ENABLED 1
+#define MARL_MEMORY_SANITIZER_ENABLED 1
 #endif  // __has_feature(memory_sanitizer)
 #endif  // defined(__clang__)
 #endif  // defined(__SANITIZE_MEMORY__)
 
-// MEMORY_SANITIZER_ONLY(X) resolves to X if MEMORY_SANITIZER_ENABLED is defined
-// to a non-zero value, otherwise MEMORY_SANITIZER_ONLY() is stripped by the
-// preprocessor.
-#if MEMORY_SANITIZER_ENABLED
-#define MEMORY_SANITIZER_ONLY(x) x
+// MARL_MEMORY_SANITIZER_ONLY(X) resolves to X if MARL_MEMORY_SANITIZER_ENABLED
+// is defined to a non-zero value, otherwise MARL_MEMORY_SANITIZER_ONLY() is
+// stripped by the preprocessor.
+#if MARL_MEMORY_SANITIZER_ENABLED
+#define MARL_MEMORY_SANITIZER_ONLY(x) x
 #else
-#define MEMORY_SANITIZER_ONLY(x)
-#endif  // MEMORY_SANITIZER_ENABLED
+#define MARL_MEMORY_SANITIZER_ONLY(x)
+#endif  // MARL_MEMORY_SANITIZER_ENABLED
 
-// Define THREAD_SANITIZER_ENABLED to 1 if the project was built with the thread
-// sanitizer enabled (-fsanitize=thread).
+// Define MARL_THREAD_SANITIZER_ENABLED to 1 if the project was built with the
+// thread sanitizer enabled (-fsanitize=thread).
 #if defined(__SANITIZE_THREAD__)
-#define THREAD_SANITIZER_ENABLED 1
+#define MARL_THREAD_SANITIZER_ENABLED 1
 #else  // defined(__SANITIZE_THREAD__)
 #if defined(__clang__)
 #if __has_feature(thread_sanitizer)
-#define THREAD_SANITIZER_ENABLED 1
+#define MARL_THREAD_SANITIZER_ENABLED 1
 #endif  // __has_feature(thread_sanitizer)
 #endif  // defined(__clang__)
 #endif  // defined(__SANITIZE_THREAD__)
 
-// THREAD_SANITIZER_ONLY(X) resolves to X if THREAD_SANITIZER_ENABLED is defined
-// to a non-zero value, otherwise THREAD_SANITIZER_ONLY() is stripped by the
-// preprocessor.
-#if THREAD_SANITIZER_ENABLED
-#define THREAD_SANITIZER_ONLY(x) x
+// MARL_THREAD_SANITIZER_ONLY(X) resolves to X if MARL_THREAD_SANITIZER_ENABLED
+// is defined to a non-zero value, otherwise MARL_THREAD_SANITIZER_ONLY() is
+// stripped by the preprocessor.
+#if MARL_THREAD_SANITIZER_ENABLED
+#define MARL_THREAD_SANITIZER_ONLY(x) x
 #else
-#define THREAD_SANITIZER_ONLY(x)
-#endif  // THREAD_SANITIZER_ENABLED
+#define MARL_THREAD_SANITIZER_ONLY(x)
+#endif  // MARL_THREAD_SANITIZER_ENABLED
+
+// Define MARL_UNDEFINED_SANITIZER_ENABLED to 1 if the project was built with
+// the undefined sanitizer enabled (-fsanitize=undefined).
+#if defined(__clang__)
+#if __has_feature(undefined_behavior_sanitizer)
+#define MARL_UNDEFINED_SANITIZER_ENABLED 1
+#endif  // __has_feature(undefined_behavior_sanitizer)
+#endif  // defined(__clang__)
+
+// MARL_UNDEFINED_SANITIZER_ONLY(X) resolves to X if
+// MARL_UNDEFINED_SANITIZER_ENABLED is defined to a non-zero value, otherwise
+// MARL_UNDEFINED_SANITIZER_ONLY() is stripped by the preprocessor.
+#if MARL_UNDEFINED_SANITIZER_ENABLED
+#define MARL_UNDEFINED_SANITIZER_ONLY(x) x
+#else
+#define MARL_UNDEFINED_SANITIZER_ONLY(x)
+#endif  // MARL_UNDEFINED_SANITIZER_ENABLED
 
 #endif  // marl_sanitizers_h
diff --git a/src/marl_bench.cpp b/src/marl_bench.cpp
index f3ea565..69a57d5 100644
--- a/src/marl_bench.cpp
+++ b/src/marl_bench.cpp
@@ -17,17 +17,17 @@
 #include "marl/sanitizers.h"
 
 int main(int argc, char** argv) {
-#if ADDRESS_SANITIZER_ENABLED
+#if MARL_ADDRESS_SANITIZER_ENABLED
   printf(
       "***WARNING*** Marl built with address sanitizer enabled. "
       "Timings will be affected\n");
 #endif
-#if MEMORY_SANITIZER_ENABLED
+#if MARL_MEMORY_SANITIZER_ENABLED
   printf(
       "***WARNING*** Marl built with memory sanitizer enabled. "
       "Timings will be affected\n");
 #endif
-#if THREAD_SANITIZER_ENABLED
+#if MARL_THREAD_SANITIZER_ENABLED
   printf(
       "***WARNING*** Marl built with thread sanitizer enabled. "
       "Timings will be affected\n");
@@ -47,4 +47,4 @@
     x = (x >> 2) & q;
   }
   return x;
-}
\ No newline at end of file
+}
diff --git a/src/osfiber.h b/src/osfiber.h
index d328094..6f89858 100644
--- a/src/osfiber.h
+++ b/src/osfiber.h
@@ -15,14 +15,14 @@
 #include "marl/sanitizers.h"
 
 #ifndef MARL_USE_FIBER_STACK_GUARDS
-#if !defined(NDEBUG) && !ADDRESS_SANITIZER_ENABLED
+#if !defined(NDEBUG) && !MARL_ADDRESS_SANITIZER_ENABLED
 #define MARL_USE_FIBER_STACK_GUARDS 1
 #else
 #define MARL_USE_FIBER_STACK_GUARDS 0
 #endif
 #endif  // MARL_USE_FIBER_STACK_GUARDS
 
-#if MARL_USE_FIBER_STACK_GUARDS && ADDRESS_SANITIZER_ENABLED
+#if MARL_USE_FIBER_STACK_GUARDS && MARL_ADDRESS_SANITIZER_ENABLED
 #warning "ASAN can raise spurious failures when using mmap() allocated stacks"
 #endif
 
diff --git a/src/osfiber_x64.c b/src/osfiber_x64.c
index 3cc09c1..491e45b 100644
--- a/src/osfiber_x64.c
+++ b/src/osfiber_x64.c
@@ -17,9 +17,12 @@
 #include "osfiber_asm_x64.h"
 
 #include "marl/export.h"
+#include "marl/sanitizers.h"
 
-//You can find an explanation of this code here: https://github.com/google/marl/issues/199
+// You can find an explanation of this code here:
+// https://github.com/google/marl/issues/199
 
+MARL_UNDEFINED_SANITIZER_ONLY(__attribute__((no_sanitize("function"))))
 MARL_EXPORT
 void marl_fiber_trampoline(void (*target)(void*), void* arg) {
   target(arg);
