From: Vedant Kumar Date: Tue, 25 Aug 2015 22:06:07 +0000 (+0000) Subject: [MC] Add a SetUsed default param to MCSymbol accessors (NFC) X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=66faa25c3a24649ec8b84674fe5c55953de42ee4 [MC] Add a SetUsed default param to MCSymbol accessors (NFC) Reviewed by: rafael git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245978 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/MC/MCSymbol.h b/include/llvm/MC/MCSymbol.h index b2910dfccd6..a48a09e6a75 100644 --- a/include/llvm/MC/MCSymbol.h +++ b/include/llvm/MC/MCSymbol.h @@ -179,7 +179,7 @@ private: MCSymbol(const MCSymbol &) = delete; void operator=(const MCSymbol &) = delete; - MCSection *getSectionPtr() const { + MCSection *getSectionPtr(bool SetUsed = true) const { if (MCFragment *F = getFragment()) return F->getParent(); const auto &SectionOrFragment = SectionOrFragmentAndHasName.getPointer(); @@ -187,7 +187,7 @@ private: MCSection *Section = SectionOrFragment.dyn_cast(); if (Section || !isVariable()) return Section; - return Section = getVariableValue()->findAssociatedSection(); + return Section = getVariableValue(SetUsed)->findAssociatedSection(); } /// \brief Get a reference to the name field. Requires that we have a name @@ -248,22 +248,28 @@ public: /// isDefined - Check if this symbol is defined (i.e., it has an address). /// /// Defined symbols are either absolute or in some section. - bool isDefined() const { return getSectionPtr() != nullptr; } + bool isDefined(bool SetUsed = true) const { + return getSectionPtr(SetUsed) != nullptr; + } /// isInSection - Check if this symbol is defined in some section (i.e., it /// is defined but not absolute). - bool isInSection() const { return isDefined() && !isAbsolute(); } + bool isInSection(bool SetUsed = true) const { + return isDefined(SetUsed) && !isAbsolute(SetUsed); + } /// isUndefined - Check if this symbol undefined (i.e., implicitly defined). - bool isUndefined() const { return !isDefined(); } + bool isUndefined(bool SetUsed = true) const { return !isDefined(SetUsed); } /// isAbsolute - Check if this is an absolute symbol. - bool isAbsolute() const { return getSectionPtr() == AbsolutePseudoSection; } + bool isAbsolute(bool SetUsed = true) const { + return getSectionPtr(SetUsed) == AbsolutePseudoSection; + } /// Get the section associated with a defined, non-absolute symbol. - MCSection &getSection() const { - assert(isInSection() && "Invalid accessor!"); - return *getSectionPtr(); + MCSection &getSection(bool SetUsed = true) const { + assert(isInSection(SetUsed) && "Invalid accessor!"); + return *getSectionPtr(SetUsed); } /// Mark the symbol as defined in the section \p S. @@ -295,10 +301,10 @@ public: return SymbolContents == SymContentsVariable; } - /// getVariableValue() - Get the value for variable symbols. - const MCExpr *getVariableValue() const { + /// getVariableValue - Get the value for variable symbols. + const MCExpr *getVariableValue(bool SetUsed = true) const { assert(isVariable() && "Invalid accessor!"); - IsUsed = true; + IsUsed |= SetUsed; return Value; }