mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
IR: Specialize MDScope::getFile() for MDFile
Fix `MDScope::getFile()` so that it correctly returns a valid `MDFile` even when it's an instance of `MDFile`. This logic is necessary because of r230057. I'm working on moving the new hierarchy into place out-of-tree (on track to commit Monday morning, BTW), and this was exposed by a few failing tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230871 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -330,7 +330,15 @@ protected:
|
||||
~MDScope() {}
|
||||
|
||||
public:
|
||||
Metadata *getFile() const { return getOperand(0); }
|
||||
/// \brief Return the underlying file.
|
||||
///
|
||||
/// An \a MDFile is an \a MDScope, but it doesn't point at a separate file
|
||||
/// (it\em is the file). If \c this is an \a MDFile, we need to return \c
|
||||
/// this. Otherwise, return the first operand, which is where all other
|
||||
/// subclasses store their file pointer.
|
||||
Metadata *getFile() const {
|
||||
return isa<MDFile>(this) ? const_cast<MDScope *>(this) : getOperand(0);
|
||||
}
|
||||
|
||||
static bool classof(const Metadata *MD) {
|
||||
switch (MD->getMetadataID()) {
|
||||
|
Reference in New Issue
Block a user