diff options
Diffstat (limited to 'lib/MC/MCSection.cpp')
-rw-r--r-- | lib/MC/MCSection.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/MC/MCSection.cpp b/lib/MC/MCSection.cpp index 24c89ef..f6e9636 100644 --- a/lib/MC/MCSection.cpp +++ b/lib/MC/MCSection.cpp @@ -26,7 +26,11 @@ MCSection::~MCSection() { MCSectionCOFF *MCSectionCOFF:: Create(StringRef Name, bool IsDirective, SectionKind K, MCContext &Ctx) { - return new (Ctx) MCSectionCOFF(Name, IsDirective, K); + char *NameCopy = static_cast<char*>( + Ctx.Allocate(Name.size(), /*Alignment=*/1)); + memcpy(NameCopy, Name.data(), Name.size()); + return new (Ctx) MCSectionCOFF(StringRef(NameCopy, Name.size()), + IsDirective, K); } void MCSectionCOFF::PrintSwitchToSection(const MCAsmInfo &MAI, |