diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-04-06 19:03:45 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-04-06 19:03:45 +0000 |
commit | 3ec5fa6a1c74f596f4d2e14a17bc60a78faa0c96 (patch) | |
tree | c9324c429c1daac8efa1be89ff94bb8b87a90950 /llvm/lib/IR/LLVMContextImpl.h | |
parent | b401941f3d82919e58fa1b990f9d05128d03a7b7 (diff) | |
download | bcm5719-llvm-3ec5fa6a1c74f596f4d2e14a17bc60a78faa0c96.tar.gz bcm5719-llvm-3ec5fa6a1c74f596f4d2e14a17bc60a78faa0c96.zip |
DebugInfo: Use MDTypeRef throughout the hierarchy
Use `MDTypeRef` (etc.) in the new debug info hierarchy rather than raw
`Metadata *` pointers.
I rolled in a change to `DIBuilder` that looks unrelated: take `DIType`
instead of `DITypeRef` as type arguments when creating variables.
However, this was the simplest way to use `MDTypeRef` within the
functions, and didn't require any cleanups from callers in clang (since
they were all passing in `DIType`s anyway, relying on their implicit
conversions to `DITypeRef`).
llvm-svn: 234197
Diffstat (limited to 'llvm/lib/IR/LLVMContextImpl.h')
-rw-r--r-- | llvm/lib/IR/LLVMContextImpl.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/IR/LLVMContextImpl.h b/llvm/lib/IR/LLVMContextImpl.h index d9dd0551bdd..dfb8faabb15 100644 --- a/llvm/lib/IR/LLVMContextImpl.h +++ b/llvm/lib/IR/LLVMContextImpl.h @@ -653,10 +653,10 @@ template <> struct MDNodeKeyImpl<MDTemplateTypeParameter> { MDNodeKeyImpl(StringRef Name, Metadata *Type) : Name(Name), Type(Type) {} MDNodeKeyImpl(const MDTemplateTypeParameter *N) - : Name(N->getName()), Type(N->getType()) {} + : Name(N->getName()), Type(N->getRawType()) {} bool isKeyOf(const MDTemplateTypeParameter *RHS) const { - return Name == RHS->getName() && Type == RHS->getType(); + return Name == RHS->getName() && Type == RHS->getRawType(); } unsigned getHashValue() const { return hash_combine(Name, Type); } }; @@ -670,12 +670,12 @@ template <> struct MDNodeKeyImpl<MDTemplateValueParameter> { MDNodeKeyImpl(unsigned Tag, StringRef Name, Metadata *Type, Metadata *Value) : Tag(Tag), Name(Name), Type(Type), Value(Value) {} MDNodeKeyImpl(const MDTemplateValueParameter *N) - : Tag(N->getTag()), Name(N->getName()), Type(N->getType()), + : Tag(N->getTag()), Name(N->getName()), Type(N->getRawType()), Value(N->getValue()) {} bool isKeyOf(const MDTemplateValueParameter *RHS) const { return Tag == RHS->getTag() && Name == RHS->getName() && - Type == RHS->getType() && Value == RHS->getValue(); + Type == RHS->getRawType() && Value == RHS->getValue(); } unsigned getHashValue() const { return hash_combine(Tag, Name, Type, Value); } }; |