diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-03-16 21:03:55 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-03-16 21:03:55 +0000 |
commit | e9d379c038dbe57860290ee068cb18d13604b309 (patch) | |
tree | 0ce660a23ecc563e79bf780da8558ba22a20607c /llvm/lib/IR/DebugInfo.cpp | |
parent | e687bf83c0f9e6b75137a97edbb9967780e55562 (diff) | |
download | bcm5719-llvm-e9d379c038dbe57860290ee068cb18d13604b309.tar.gz bcm5719-llvm-e9d379c038dbe57860290ee068cb18d13604b309.zip |
IR: Take advantage of -verify checks for MDExpression
Now that we check `MDExpression` during `-verify` (r232299), make
the `DIExpression` wrapper more strict:
- remove redundant checks in `DebugInfoVerifier`,
- overload `get()` to `cast_or_null<MDExpression>` (superseding
`getRaw()`),
- stop checking for null in any accessor, and
- remove `DIExpression::Verify()` entirely in favour of
`MDExpression::isValid()`.
There is still some logic in this class, mostly to do with high-level
iterators; I'll defer cleaning up those until the rest of the wrappers
are similarly strict.
llvm-svn: 232412
Diffstat (limited to 'llvm/lib/IR/DebugInfo.cpp')
-rw-r--r-- | llvm/lib/IR/DebugInfo.cpp | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp index 148fa2101c0..3c7cf9e1b8d 100644 --- a/llvm/lib/IR/DebugInfo.cpp +++ b/llvm/lib/IR/DebugInfo.cpp @@ -92,7 +92,7 @@ bool DIDescriptor::Verify() const { DIObjCProperty(DbgNode).Verify() || DITemplateTypeParameter(DbgNode).Verify() || DITemplateValueParameter(DbgNode).Verify() || - DIImportedEntity(DbgNode).Verify() || DIExpression(DbgNode).Verify()); + DIImportedEntity(DbgNode).Verify()); } static Metadata *getField(const MDNode *DbgNode, unsigned Elt) { @@ -402,12 +402,6 @@ bool DIVariable::Verify() const { return isTypeRef(N->getType()); } -bool DIExpression::Verify() const { - // FIXME: This should return false if it's null! - auto *N = getRaw(); - return !N || N->isValid(); -} - bool DILocation::Verify() const { return getRaw(); } bool DINameSpace::Verify() const { return getRaw(); } bool DIFile::Verify() const { return getRaw(); } |