Add some support for dealing with an object pointer on arguments.

Part of rdar://9797999

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163667 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher
2012-09-12 00:26:55 +00:00
parent 83c0eefa3b
commit 2c57a334d7
7 changed files with 130 additions and 1 deletions

View File

@ -60,7 +60,8 @@ namespace llvm {
FlagArtificial = 1 << 6,
FlagExplicit = 1 << 7,
FlagPrototyped = 1 << 8,
FlagObjcClassComplete = 1 << 9
FlagObjcClassComplete = 1 << 9,
FlagObjectPointer = 1 << 10
};
protected:
const MDNode *DbgNode;
@ -287,6 +288,9 @@ namespace llvm {
bool isArtificial() const {
return (getFlags() & FlagArtificial) != 0;
}
bool isObjectPointer() const {
return (getFlags() & FlagObjectPointer) != 0;
}
bool isObjcClassComplete() const {
return (getFlags() & FlagObjcClassComplete) != 0;
}
@ -644,6 +648,10 @@ namespace llvm {
return (getUnsignedField(6) & FlagArtificial) != 0;
}
bool isObjectPointer() const {
return (getUnsignedField(6) & FlagObjectPointer) != 0;
}
/// getInlinedAt - If this variable is inlined then return inline location.
MDNode *getInlinedAt() const;