From 5fe16ba0266e6f6cc10a5a13f2ad58500993cbf9 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Fri, 18 Aug 2023 14:58:53 -0700 Subject: [PATCH] LowLevelType: replace a reachable llvm_unreachable with assert assert is more appropriate here and fixes `runtime error: execution reached an unreachable program point` in a -DLLVM_USE_SANITIZER=Undefined build (-fno-sanitize-recover=all causes llc to exit instead of crash (report_fatal_error)) when testing MachineVerifier/test_g_assert_[sz]ext.mir. (cherry picked from commit a7e20dd664bbce6e87b1fdad88d719e497902a42) --- llvm/include/llvm/CodeGen/LowLevelType.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/llvm/include/llvm/CodeGen/LowLevelType.h b/llvm/include/llvm/CodeGen/LowLevelType.h index 2924f47..a1e778c 100644 --- a/llvm/include/llvm/CodeGen/LowLevelType.h +++ b/llvm/include/llvm/CodeGen/LowLevelType.h @@ -238,10 +238,9 @@ public: return getFieldValue(VectorSizeFieldInfo); else return getFieldValue(PointerVectorSizeFieldInfo); - } else if (IsPointer) - return getFieldValue(PointerSizeFieldInfo); - else - llvm_unreachable("unexpected LLT"); + } + assert(IsPointer && "unexpected LLT"); + return getFieldValue(PointerSizeFieldInfo); } constexpr unsigned getAddressSpace() const { -- 2.7.4