diff options
author | Dan Gohman <gohman@apple.com> | 2009-10-29 00:09:08 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-10-29 00:09:08 +0000 |
commit | eeb8ef1f37a8d106a9fb77b9dd6a7ab6866904e5 (patch) | |
tree | 7cc7c5250a5e61268681af23f695dba1699a0440 | |
parent | a809d2fb2759807e11babd294e4257ff45c220de (diff) |
Add a hasAddressTaken for BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85449 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/BasicBlock.h | 4 | ||||
-rw-r--r-- | lib/VMCore/BasicBlock.cpp | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/llvm/BasicBlock.h b/include/llvm/BasicBlock.h index 95e39716f2..c6e6080209 100644 --- a/include/llvm/BasicBlock.h +++ b/include/llvm/BasicBlock.h @@ -235,6 +235,10 @@ public: /// keeping loop information consistent, use the SplitBlock utility function. /// BasicBlock *splitBasicBlock(iterator I, const Twine &BBName = ""); + + /// hasAddressTaken - returns true if there are any uses of this basic block + /// other than direct branches, switches, etc. to it. + bool hasAddressTaken() const; }; } // End llvm namespace diff --git a/lib/VMCore/BasicBlock.cpp b/lib/VMCore/BasicBlock.cpp index 50cf84c3fe..ede2d12451 100644 --- a/lib/VMCore/BasicBlock.cpp +++ b/lib/VMCore/BasicBlock.cpp @@ -277,3 +277,12 @@ BasicBlock *BasicBlock::splitBasicBlock(iterator I, const Twine &BBName) { } return New; } + +/// hasAddressTaken - returns true if there are any uses of this basic block +/// other than direct branches, switches, etc. to it. +bool BasicBlock::hasAddressTaken() const { + for (Value::use_const_iterator I = use_begin(), E = use_end(); I != E; ++I) + if (isa<BlockAddress>(*I)) + return true; + return false; +} |