File llvm-workaround-superfluous-branches.patch of Package llvm17

diff --git a/llvm/include/llvm/Support/Casting.h b/llvm/include/llvm/Support/Casting.h
index 4ff5865..19623f6 100644
--- a/llvm/include/llvm/Support/Casting.h
+++ b/llvm/include/llvm/Support/Casting.h
@@ -661,6 +661,9 @@ template <typename To, typename From>
 template <typename To, typename From>
 [[nodiscard]] inline decltype(auto) dyn_cast(From *Val) {
   assert(detail::isPresent(Val) && "dyn_cast on a non-existent value");
+#if defined(__clang__) && defined(NDEBUG)
+  __builtin_assume(Val);
+#endif
   return CastInfo<To, From *>::doCastIfPossible(Val);
 }
 
openSUSE Build Service is sponsored by