[PATCH] D62006: Add "llvm_unreachable" for function RegisterBankInfo::getRegBank

Kan Shengchen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 16 06:04:08 PDT 2019


skan created this revision.
skan added reviewers: xiangzhangllvm, LuoYuanke, craig.topper.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

RegClassOrBank is an object of RegClassOrRegBank, which is defined as

  using llvm::RegClassOrRegBank = typedef PointerUnion<const TargetRegisterClass *, const RegisterBank *>
  }

so control flow can not get here.  Use ""llvm_unreachable" here to avoid "null pointer" confusion.


Repository:
  rL LLVM

https://reviews.llvm.org/D62006

Files:
  lib/CodeGen/GlobalISel/RegisterBankInfo.cpp


Index: lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
===================================================================
--- lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
+++ lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
@@ -91,7 +91,9 @@
     return RB;
   if (auto *RC = RegClassOrBank.dyn_cast<const TargetRegisterClass *>())
     return &getRegBankFromRegClass(*RC);
-  return nullptr;
+
+  llvm_unreachable("RegClassOrBank is either a RegisterBank* or "
+                   "a TargetReigisterClass*");
 }
 
 const TargetRegisterClass &


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62006.199804.patch
Type: text/x-patch
Size: 535 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190516/d78bf66e/attachment.bin>


More information about the llvm-commits mailing list