diff --git a/llvm/include/llvm/Support/ARMBuildAttributes.h b/llvm/include/llvm/Support/ARMBuildAttributes.h --- a/llvm/include/llvm/Support/ARMBuildAttributes.h +++ b/llvm/include/llvm/Support/ARMBuildAttributes.h @@ -263,8 +263,6 @@ PACRETUsed = 1 }; -std::string encodeAttrTagValuePair(StringRef OriginalString); - } // namespace ARMBuildAttrs } // namespace llvm diff --git a/llvm/lib/Support/ARMBuildAttrs.cpp b/llvm/lib/Support/ARMBuildAttrs.cpp --- a/llvm/lib/Support/ARMBuildAttrs.cpp +++ b/llvm/lib/Support/ARMBuildAttrs.cpp @@ -75,40 +75,4 @@ constexpr TagNameMap ARMAttributeTags{tagData}; const TagNameMap &llvm::ARMBuildAttrs::getARMAttributeTags() { return ARMAttributeTags; -} - -static std::string getEncodedULEB128AsText(const uint8_t *Value, - unsigned Size) { - std::stringstream SS; - for (unsigned i = 0; i < Size; ++i) { - SS << "\\" << std::setfill('0') << std::setw(3) << std::oct - << int(Value[i]); - } - return SS.str(); -} - -std::string -llvm::ARMBuildAttrs::encodeAttrTagValuePair(StringRef OriginalString) { - auto BytesBegin = reinterpret_cast(OriginalString.data()); - auto BytesEnd = BytesBegin + OriginalString.size(); - - unsigned N = 0; - const char *Error = nullptr; - unsigned Tag = decodeULEB128(BytesBegin, &N, BytesEnd, &Error); - if (Error) - report_fatal_error("Could not decode Tag value: " + Twine(Error)); - - std::string EncodedPair = getEncodedULEB128AsText(BytesBegin, N); - switch (Tag) { - case ARMBuildAttrs::CPU_raw_name: - case ARMBuildAttrs::CPU_name: - case ARMBuildAttrs::compatibility: - case ARMBuildAttrs::conformance: - EncodedPair += OriginalString.substr(N); - break; - default: - EncodedPair += - getEncodedULEB128AsText(BytesBegin + N, OriginalString.size() - N); - } - return EncodedPair; -} +} \ No newline at end of file diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp @@ -204,7 +204,7 @@ default: OS << "\t.eabi_attribute\t" << Attribute << ", \""; if (Attribute == ARMBuildAttrs::also_compatible_with) - OS << ARMBuildAttrs::encodeAttrTagValuePair(String); + OS.write_escaped(String); else OS << String; OS << "\"";