[llvm] d57b867 - Revert "AArch64: Move AArch64MCExpr functions to AArch64MCAsmInfo"
Douglas Yung via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 16 07:15:57 PDT 2025
Author: Douglas Yung
Date: 2025-06-16T14:14:56Z
New Revision: d57b86701a7b5bf7d98fea032f33e726b2abb424
URL: https://github.com/llvm/llvm-project/commit/d57b86701a7b5bf7d98fea032f33e726b2abb424
DIFF: https://github.com/llvm/llvm-project/commit/d57b86701a7b5bf7d98fea032f33e726b2abb424.diff
LOG: Revert "AArch64: Move AArch64MCExpr functions to AArch64MCAsmInfo"
This reverts commit 4ea616d072d126a31149174ca2efdbdace9ce568.
This change is causing buildbot failures on MacOS:
- https://lab.llvm.org/buildbot/#/builders/190/builds/21510
- http://45.33.8.238/macm1/108620/step_10.txt
Added:
Modified:
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
index a82896dbe0d6c..31965d85d9eb4 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
@@ -15,7 +15,6 @@
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCStreamer.h"
-#include "llvm/MC/MCValue.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/TargetParser/Triple.h"
using namespace llvm;
@@ -54,80 +53,6 @@ const MCAsmInfo::AtSpecifier MachOAtSpecifiers[] = {
{AArch64MCExpr::M_TLVPPAGEOFF, "TLVPPAGEOFF"},
};
-StringRef AArch64::getSpecifierName(const MCSpecifierExpr &Expr) {
- // clang-format off
- switch (static_cast<uint32_t>(Expr.getSpecifier())) {
- case AArch64MCExpr::VK_CALL: return "";
- case AArch64MCExpr::VK_LO12: return ":lo12:";
- case AArch64MCExpr::VK_ABS_G3: return ":abs_g3:";
- case AArch64MCExpr::VK_ABS_G2: return ":abs_g2:";
- case AArch64MCExpr::VK_ABS_G2_S: return ":abs_g2_s:";
- case AArch64MCExpr::VK_ABS_G2_NC: return ":abs_g2_nc:";
- case AArch64MCExpr::VK_ABS_G1: return ":abs_g1:";
- case AArch64MCExpr::VK_ABS_G1_S: return ":abs_g1_s:";
- case AArch64MCExpr::VK_ABS_G1_NC: return ":abs_g1_nc:";
- case AArch64MCExpr::VK_ABS_G0: return ":abs_g0:";
- case AArch64MCExpr::VK_ABS_G0_S: return ":abs_g0_s:";
- case AArch64MCExpr::VK_ABS_G0_NC: return ":abs_g0_nc:";
- case AArch64MCExpr::VK_PREL_G3: return ":prel_g3:";
- case AArch64MCExpr::VK_PREL_G2: return ":prel_g2:";
- case AArch64MCExpr::VK_PREL_G2_NC: return ":prel_g2_nc:";
- case AArch64MCExpr::VK_PREL_G1: return ":prel_g1:";
- case AArch64MCExpr::VK_PREL_G1_NC: return ":prel_g1_nc:";
- case AArch64MCExpr::VK_PREL_G0: return ":prel_g0:";
- case AArch64MCExpr::VK_PREL_G0_NC: return ":prel_g0_nc:";
- case AArch64MCExpr::VK_DTPREL_G2: return ":dtprel_g2:";
- case AArch64MCExpr::VK_DTPREL_G1: return ":dtprel_g1:";
- case AArch64MCExpr::VK_DTPREL_G1_NC: return ":dtprel_g1_nc:";
- case AArch64MCExpr::VK_DTPREL_G0: return ":dtprel_g0:";
- case AArch64MCExpr::VK_DTPREL_G0_NC: return ":dtprel_g0_nc:";
- case AArch64MCExpr::VK_DTPREL_HI12: return ":dtprel_hi12:";
- case AArch64MCExpr::VK_DTPREL_LO12: return ":dtprel_lo12:";
- case AArch64MCExpr::VK_DTPREL_LO12_NC: return ":dtprel_lo12_nc:";
- case AArch64MCExpr::VK_TPREL_G2: return ":tprel_g2:";
- case AArch64MCExpr::VK_TPREL_G1: return ":tprel_g1:";
- case AArch64MCExpr::VK_TPREL_G1_NC: return ":tprel_g1_nc:";
- case AArch64MCExpr::VK_TPREL_G0: return ":tprel_g0:";
- case AArch64MCExpr::VK_TPREL_G0_NC: return ":tprel_g0_nc:";
- case AArch64MCExpr::VK_TPREL_HI12: return ":tprel_hi12:";
- case AArch64MCExpr::VK_TPREL_LO12: return ":tprel_lo12:";
- case AArch64MCExpr::VK_TPREL_LO12_NC: return ":tprel_lo12_nc:";
- case AArch64MCExpr::VK_TLSDESC_LO12: return ":tlsdesc_lo12:";
- case AArch64MCExpr::VK_TLSDESC_AUTH_LO12: return ":tlsdesc_auth_lo12:";
- case AArch64MCExpr::VK_ABS_PAGE: return "";
- case AArch64MCExpr::VK_ABS_PAGE_NC: return ":pg_hi21_nc:";
- case AArch64MCExpr::VK_GOT: return ":got:";
- case AArch64MCExpr::VK_GOT_PAGE: return ":got:";
- case AArch64MCExpr::VK_GOT_PAGE_LO15: return ":gotpage_lo15:";
- case AArch64MCExpr::VK_GOT_LO12: return ":got_lo12:";
- case AArch64MCExpr::VK_GOTTPREL: return ":gottprel:";
- case AArch64MCExpr::VK_GOTTPREL_PAGE: return ":gottprel:";
- case AArch64MCExpr::VK_GOTTPREL_LO12_NC: return ":gottprel_lo12:";
- case AArch64MCExpr::VK_GOTTPREL_G1: return ":gottprel_g1:";
- case AArch64MCExpr::VK_GOTTPREL_G0_NC: return ":gottprel_g0_nc:";
- case AArch64MCExpr::VK_TLSDESC: return "";
- case AArch64MCExpr::VK_TLSDESC_PAGE: return ":tlsdesc:";
- case AArch64MCExpr::VK_TLSDESC_AUTH: return "";
- case AArch64MCExpr::VK_TLSDESC_AUTH_PAGE: return ":tlsdesc_auth:";
- case AArch64MCExpr::VK_SECREL_LO12: return ":secrel_lo12:";
- case AArch64MCExpr::VK_SECREL_HI12: return ":secrel_hi12:";
- case AArch64MCExpr::VK_GOT_AUTH: return ":got_auth:";
- case AArch64MCExpr::VK_GOT_AUTH_PAGE: return ":got_auth:";
- case AArch64MCExpr::VK_GOT_AUTH_LO12: return ":got_auth_lo12:";
- default:
- llvm_unreachable("Invalid relocation specifier");
- }
- // clang-format on
-}
-
-static bool evaluate(const MCSpecifierExpr &Expr, MCValue &Res,
- const MCAssembler *Asm) {
- if (!Expr.getSubExpr()->evaluateAsRelocatable(Res, Asm))
- return false;
- Res.setSpecifier(Expr.getSpecifier());
- return true;
-}
-
AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin(bool IsILP32) {
// We prefer NEON instructions to be printed in the short, Apple-specific
// form when targeting Darwin.
@@ -166,34 +91,6 @@ const MCExpr *AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol(
return MCBinaryExpr::createSub(Res, PC, Context);
}
-void AArch64AuthMCExpr::print(raw_ostream &OS, const MCAsmInfo *MAI) const {
- bool WrapSubExprInParens = !isa<MCSymbolRefExpr>(getSubExpr());
- if (WrapSubExprInParens)
- OS << '(';
- getSubExpr()->print(OS, MAI);
- if (WrapSubExprInParens)
- OS << ')';
-
- OS << "@AUTH(" << AArch64PACKeyIDToString(Key) << ',' << Discriminator;
- if (hasAddressDiversity())
- OS << ",addr";
- OS << ')';
-}
-
-void AArch64MCAsmInfoDarwin::printSpecifierExpr(
- raw_ostream &OS, const MCSpecifierExpr &Expr) const {
- if (auto *AE = dyn_cast<AArch64AuthMCExpr>(&Expr))
- return AE->print(OS, this);
- // FIXME: tryParseAdrLabel should not use VK_ABS for Mach-O
- assert(Expr.getSpecifier() == AArch64MCExpr::VK_ABS);
- printExpr(OS, *Expr.getSubExpr());
-}
-
-bool AArch64MCAsmInfoDarwin::evaluateAsRelocatableImpl(
- const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const {
- return evaluate(Expr, Res, Asm);
-}
-
AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(const Triple &T) {
if (T.getArch() == Triple::aarch64_be)
IsLittleEndian = false;
@@ -230,19 +127,6 @@ AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(const Triple &T) {
initializeVariantKinds(ELFAtSpecifiers);
}
-void AArch64MCAsmInfoELF::printSpecifierExpr(
- raw_ostream &OS, const MCSpecifierExpr &Expr) const {
- if (auto *AE = dyn_cast<AArch64AuthMCExpr>(&Expr))
- return AE->print(OS, this);
- OS << AArch64::getSpecifierName(Expr);
- printExpr(OS, *Expr.getSubExpr());
-}
-
-bool AArch64MCAsmInfoELF::evaluateAsRelocatableImpl(
- const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const {
- return evaluate(Expr, Res, Asm);
-}
-
AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
PrivateGlobalPrefix = ".L";
PrivateLabelPrefix = ".L";
@@ -262,17 +146,6 @@ AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF() {
initializeVariantKinds(COFFAtSpecifiers);
}
-void AArch64MCAsmInfoMicrosoftCOFF::printSpecifierExpr(
- raw_ostream &OS, const MCSpecifierExpr &Expr) const {
- OS << AArch64::getSpecifierName(Expr);
- printExpr(OS, *Expr.getSubExpr());
-}
-
-bool AArch64MCAsmInfoMicrosoftCOFF::evaluateAsRelocatableImpl(
- const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const {
- return evaluate(Expr, Res, Asm);
-}
-
AArch64MCAsmInfoGNUCOFF::AArch64MCAsmInfoGNUCOFF() {
PrivateGlobalPrefix = ".L";
PrivateLabelPrefix = ".L";
@@ -291,14 +164,3 @@ AArch64MCAsmInfoGNUCOFF::AArch64MCAsmInfoGNUCOFF() {
initializeVariantKinds(COFFAtSpecifiers);
}
-
-void AArch64MCAsmInfoGNUCOFF::printSpecifierExpr(
- raw_ostream &OS, const MCSpecifierExpr &Expr) const {
- OS << AArch64::getSpecifierName(Expr);
- printExpr(OS, *Expr.getSubExpr());
-}
-
-bool AArch64MCAsmInfoGNUCOFF::evaluateAsRelocatableImpl(
- const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const {
- return evaluate(Expr, Res, Asm);
-}
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
index bc02586d73884..225e0c8e55fca 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
@@ -13,7 +13,6 @@
#ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64MCASMINFO_H
#define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64MCASMINFO_H
-#include "MCTargetDesc/AArch64MCExpr.h"
#include "llvm/MC/MCAsmInfoCOFF.h"
#include "llvm/MC/MCAsmInfoDarwin.h"
#include "llvm/MC/MCAsmInfoELF.h"
@@ -27,42 +26,20 @@ struct AArch64MCAsmInfoDarwin : public MCAsmInfoDarwin {
const MCExpr *
getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding,
MCStreamer &Streamer) const override;
- void printSpecifierExpr(raw_ostream &OS,
- const MCSpecifierExpr &Expr) const override;
- bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res,
- const MCAssembler *Asm) const override;
};
struct AArch64MCAsmInfoELF : public MCAsmInfoELF {
explicit AArch64MCAsmInfoELF(const Triple &T);
- void printSpecifierExpr(raw_ostream &OS,
- const MCSpecifierExpr &Expr) const override;
- bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res,
- const MCAssembler *Asm) const override;
};
struct AArch64MCAsmInfoMicrosoftCOFF : public MCAsmInfoMicrosoft {
explicit AArch64MCAsmInfoMicrosoftCOFF();
- void printSpecifierExpr(raw_ostream &OS,
- const MCSpecifierExpr &Expr) const override;
- bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res,
- const MCAssembler *Asm) const override;
};
struct AArch64MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF {
explicit AArch64MCAsmInfoGNUCOFF();
- void printSpecifierExpr(raw_ostream &OS,
- const MCSpecifierExpr &Expr) const override;
- bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res,
- const MCAssembler *Asm) const override;
};
-namespace AArch64 {
-/// Return the string representation of the ELF relocation specifier
-/// (e.g. ":got:", ":lo12:").
-StringRef getSpecifierName(const MCSpecifierExpr &Expr);
-} // namespace AArch64
-
} // namespace llvm
#endif
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
index 7a7c6f7effd9f..d934af91b9ff5 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
@@ -12,19 +12,100 @@
//===----------------------------------------------------------------------===//
#include "AArch64MCExpr.h"
-#include "AArch64MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCStreamer.h"
+#include "llvm/MC/MCValue.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
using namespace llvm;
+#define DEBUG_TYPE "aarch64symbolrefexpr"
+
const AArch64MCExpr *AArch64MCExpr::create(const MCExpr *Expr, Specifier S,
MCContext &Ctx) {
return new (Ctx) AArch64MCExpr(Expr, S);
}
+StringRef AArch64MCExpr::getSpecifierName() const {
+ // clang-format off
+ switch (static_cast<uint32_t>(getSpecifier())) {
+ case VK_CALL: return "";
+ case VK_LO12: return ":lo12:";
+ case VK_ABS_G3: return ":abs_g3:";
+ case VK_ABS_G2: return ":abs_g2:";
+ case VK_ABS_G2_S: return ":abs_g2_s:";
+ case VK_ABS_G2_NC: return ":abs_g2_nc:";
+ case VK_ABS_G1: return ":abs_g1:";
+ case VK_ABS_G1_S: return ":abs_g1_s:";
+ case VK_ABS_G1_NC: return ":abs_g1_nc:";
+ case VK_ABS_G0: return ":abs_g0:";
+ case VK_ABS_G0_S: return ":abs_g0_s:";
+ case VK_ABS_G0_NC: return ":abs_g0_nc:";
+ case VK_PREL_G3: return ":prel_g3:";
+ case VK_PREL_G2: return ":prel_g2:";
+ case VK_PREL_G2_NC: return ":prel_g2_nc:";
+ case VK_PREL_G1: return ":prel_g1:";
+ case VK_PREL_G1_NC: return ":prel_g1_nc:";
+ case VK_PREL_G0: return ":prel_g0:";
+ case VK_PREL_G0_NC: return ":prel_g0_nc:";
+ case VK_DTPREL_G2: return ":dtprel_g2:";
+ case VK_DTPREL_G1: return ":dtprel_g1:";
+ case VK_DTPREL_G1_NC: return ":dtprel_g1_nc:";
+ case VK_DTPREL_G0: return ":dtprel_g0:";
+ case VK_DTPREL_G0_NC: return ":dtprel_g0_nc:";
+ case VK_DTPREL_HI12: return ":dtprel_hi12:";
+ case VK_DTPREL_LO12: return ":dtprel_lo12:";
+ case VK_DTPREL_LO12_NC: return ":dtprel_lo12_nc:";
+ case VK_TPREL_G2: return ":tprel_g2:";
+ case VK_TPREL_G1: return ":tprel_g1:";
+ case VK_TPREL_G1_NC: return ":tprel_g1_nc:";
+ case VK_TPREL_G0: return ":tprel_g0:";
+ case VK_TPREL_G0_NC: return ":tprel_g0_nc:";
+ case VK_TPREL_HI12: return ":tprel_hi12:";
+ case VK_TPREL_LO12: return ":tprel_lo12:";
+ case VK_TPREL_LO12_NC: return ":tprel_lo12_nc:";
+ case VK_TLSDESC_LO12: return ":tlsdesc_lo12:";
+ case VK_TLSDESC_AUTH_LO12: return ":tlsdesc_auth_lo12:";
+ case VK_ABS_PAGE: return "";
+ case VK_ABS_PAGE_NC: return ":pg_hi21_nc:";
+ case VK_GOT: return ":got:";
+ case VK_GOT_PAGE: return ":got:";
+ case VK_GOT_PAGE_LO15: return ":gotpage_lo15:";
+ case VK_GOT_LO12: return ":got_lo12:";
+ case VK_GOTTPREL: return ":gottprel:";
+ case VK_GOTTPREL_PAGE: return ":gottprel:";
+ case VK_GOTTPREL_LO12_NC: return ":gottprel_lo12:";
+ case VK_GOTTPREL_G1: return ":gottprel_g1:";
+ case VK_GOTTPREL_G0_NC: return ":gottprel_g0_nc:";
+ case VK_TLSDESC: return "";
+ case VK_TLSDESC_PAGE: return ":tlsdesc:";
+ case VK_TLSDESC_AUTH: return "";
+ case VK_TLSDESC_AUTH_PAGE: return ":tlsdesc_auth:";
+ case VK_SECREL_LO12: return ":secrel_lo12:";
+ case VK_SECREL_HI12: return ":secrel_hi12:";
+ case VK_GOT_AUTH: return ":got_auth:";
+ case VK_GOT_AUTH_PAGE: return ":got_auth:";
+ case VK_GOT_AUTH_LO12: return ":got_auth_lo12:";
+ default:
+ llvm_unreachable("Invalid relocation specifier");
+ }
+ // clang-format on
+}
+
+void AArch64MCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
+ OS << getSpecifierName();
+ Expr->print(OS, MAI);
+}
+
+bool AArch64MCExpr::evaluateAsRelocatableImpl(MCValue &Res,
+ const MCAssembler *Asm) const {
+ if (!getSubExpr()->evaluateAsRelocatable(Res, Asm))
+ return false;
+ Res.setSpecifier(getSpecifier());
+ return true;
+}
+
const AArch64AuthMCExpr *AArch64AuthMCExpr::create(const MCExpr *Expr,
uint16_t Discriminator,
AArch64PACKey::ID Key,
@@ -33,3 +114,17 @@ const AArch64AuthMCExpr *AArch64AuthMCExpr::create(const MCExpr *Expr,
return new (Ctx)
AArch64AuthMCExpr(Expr, Discriminator, Key, HasAddressDiversity);
}
+
+void AArch64AuthMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
+ bool WrapSubExprInParens = !isa<MCSymbolRefExpr>(getSubExpr());
+ if (WrapSubExprInParens)
+ OS << '(';
+ getSubExpr()->print(OS, MAI);
+ if (WrapSubExprInParens)
+ OS << ')';
+
+ OS << "@AUTH(" << AArch64PACKeyIDToString(Key) << ',' << Discriminator;
+ if (hasAddressDiversity())
+ OS << ",addr";
+ OS << ')';
+}
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
index 541f24c943a15..9c383894c7f54 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
@@ -147,6 +147,8 @@ class AArch64MCExpr : public MCSpecifierExpr {
public:
static const AArch64MCExpr *create(const MCExpr *Expr, Specifier,
MCContext &Ctx);
+ /// @name VariantKind information extractors.
+ /// @{
static Specifier getSymbolLoc(Specifier S) {
return static_cast<Specifier>(S & VK_SymLocBits);
@@ -157,6 +159,16 @@ class AArch64MCExpr : public MCSpecifierExpr {
}
static bool isNotChecked(Specifier S) { return S & VK_NC; }
+
+ /// @}
+
+ /// Return the string representation of the ELF relocation specifier
+ /// (e.g. ":got:", ":lo12:").
+ StringRef getSpecifierName() const;
+
+ void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override;
+ bool evaluateAsRelocatableImpl(MCValue &Res,
+ const MCAssembler *Asm) const override;
};
class AArch64AuthMCExpr final : public AArch64MCExpr {
@@ -177,7 +189,7 @@ class AArch64AuthMCExpr final : public AArch64MCExpr {
uint16_t getDiscriminator() const { return Discriminator; }
bool hasAddressDiversity() const { return getSpecifier() == VK_AUTHADDR; }
- void print(raw_ostream &OS, const MCAsmInfo *MAI) const;
+ void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override;
static bool classof(const MCExpr *E) {
return isa<AArch64MCExpr>(E) && classof(cast<AArch64MCExpr>(E));
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
index 2e997631655ed..3009bd2ca2758 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
@@ -8,7 +8,7 @@
#include "AArch64MCTargetDesc.h"
#include "MCTargetDesc/AArch64FixupKinds.h"
-#include "MCTargetDesc/AArch64MCAsmInfo.h"
+#include "MCTargetDesc/AArch64MCExpr.h"
#include "llvm/ADT/Twine.h"
#include "llvm/BinaryFormat/COFF.h"
#include "llvm/MC/MCAsmBackend.h"
@@ -73,7 +73,7 @@ unsigned AArch64WinCOFFObjectWriter::getRelocType(
break;
default:
Ctx.reportError(Fixup.getLoc(), "relocation specifier " +
- AArch64::getSpecifierName(*A64E) +
+ A64E->getSpecifierName() +
" unsupported on COFF targets");
return COFF::IMAGE_REL_ARM64_ABSOLUTE; // Dummy return value
}
@@ -83,7 +83,7 @@ unsigned AArch64WinCOFFObjectWriter::getRelocType(
default: {
if (const AArch64MCExpr *A64E = dyn_cast<AArch64MCExpr>(Expr)) {
Ctx.reportError(Fixup.getLoc(), "relocation specifier " +
- AArch64::getSpecifierName(*A64E) +
+ A64E->getSpecifierName() +
" unsupported on COFF targets");
} else {
MCFixupKindInfo Info = MAB.getFixupKindInfo(Fixup.getKind());
More information about the llvm-commits
mailing list