/// currently defined as the absolute section for constants, or
/// otherwise the section associated with the first defined symbol in the
/// expression.
- const MCSection *FindAssociatedSection() const;
+ MCSection *FindAssociatedSection() const;
/// @}
};
/// of the symbol as external.
class MCSymbolRefExpr : public MCExpr {
public:
- enum VariantKind {
+ enum VariantKind : uint16_t {
VK_None,
VK_Invalid,
private:
/// The symbol reference modifier.
- const unsigned Kind : 16;
+ const VariantKind Kind;
/// Specifies how the variant kind should be printed.
const unsigned UseParensForSymbolVariant : 1;
const MCSymbol &getSymbol() const { return *Symbol; }
- VariantKind getKind() const { return static_cast<VariantKind>(Kind); }
+ VariantKind getKind() const { return Kind; }
void printVariantKind(raw_ostream &OS) const;
const MCAsmLayout *Layout,
const MCFixup *Fixup) const = 0;
virtual void visitUsedExpr(MCStreamer& Streamer) const = 0;
- virtual const MCSection *FindAssociatedSection() const = 0;
+ virtual MCSection *FindAssociatedSection() const = 0;
virtual void fixELFSymbolsInTLSFixups(MCAssembler &) const = 0;