blob: 778c2df4141653bada54ebc4415a5478292bf25a [file] [log] [blame]
Disable Cast Assertion
This CL creates a local patch to disable an assert in LLVM for Casting.
This is fix is more of a temporary workaround while
github.com/llvm/llvm-project/issues/39319 is open.
This fixes a clang crash compiling boost with debug enabled (b/271428130)
diff --git a/llvm/include/llvm/Support/Casting.h b/llvm/include/llvm/Support/Casting.h
index 8a2fa94f9cca..e5326c277d05 100644
--- a/llvm/include/llvm/Support/Casting.h
+++ b/llvm/include/llvm/Support/Casting.h
@@ -563,25 +563,21 @@ template <typename First, typename Second, typename... Rest, typename From>
template <typename To, typename From>
[[nodiscard]] inline decltype(auto) cast(const From &Val) {
- assert(isa<To>(Val) && "cast<Ty>() argument of incompatible type!");
return CastInfo<To, const From>::doCast(Val);
}
template <typename To, typename From>
[[nodiscard]] inline decltype(auto) cast(From &Val) {
- assert(isa<To>(Val) && "cast<Ty>() argument of incompatible type!");
return CastInfo<To, From>::doCast(Val);
}
template <typename To, typename From>
[[nodiscard]] inline decltype(auto) cast(From *Val) {
- assert(isa<To>(Val) && "cast<Ty>() argument of incompatible type!");
return CastInfo<To, From *>::doCast(Val);
}
template <typename To, typename From>
[[nodiscard]] inline decltype(auto) cast(std::unique_ptr<From> &&Val) {
- assert(isa<To>(Val) && "cast<Ty>() argument of incompatible type!");
return CastInfo<To, std::unique_ptr<From>>::doCast(std::move(Val));
}