[llvm] [llvm] Fix most LLVM_ABI annotations in DebugInfo (PR #202915)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 10 03:20:21 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-debuginfo

Author: Fabrice de Gans (Steelskin)

<details>
<summary>Changes</summary>

This updates most LLVM_ABI annotations in the DebugInfo headers to match expected usage:
* All public APIs should be properly annotated.
* Inlined functions should not be annotated.

These changes were done by a script fixing annotations on LLVM public headers and manually checked.

This effort is tracked in #<!-- -->109483.

---

Patch is 69.24 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/202915.diff


57 Files Affected:

- (modified) llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h (+3-3) 
- (modified) llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h (+3-3) 
- (modified) llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h (+12-10) 
- (modified) llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h (+2-2) 
- (modified) llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h (+9-8) 
- (modified) llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h (+2-2) 
- (modified) llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFDataExtractorSimple.h (+3-3) 
- (modified) llvm/include/llvm/DebugInfo/GSYM/GsymContext.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h (+18-16) 
- (modified) llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV1.h (+2-2) 
- (modified) llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV2.h (+2-2) 
- (modified) llvm/include/llvm/DebugInfo/GSYM/GsymReader.h (+8-7) 
- (modified) llvm/include/llvm/DebugInfo/GSYM/GsymReaderV1.h (+2-2) 
- (modified) llvm/include/llvm/DebugInfo/GSYM/GsymReaderV2.h (+2-2) 
- (modified) llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h (+38-34) 
- (modified) llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewReader.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.h (+122-109) 
- (modified) llvm/include/llvm/DebugInfo/LogicalView/Readers/LVDWARFReader.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/IPDBTable.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h (+2-2) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/InputFile.h (+3-3) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h (+2-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumLineNumbers.h (+4-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbols.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeFunctionSymbol.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeInlineSiteSymbol.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeLineNumber.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativePublicSymbol.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBContext.h (+27-27) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h (+1-1) 
- (modified) llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h (+1-1) 


``````````diff
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h b/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h
index fdca2ad063a14..c585bf02058ec 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h
@@ -60,9 +60,9 @@ class DebugSubsectionVisitor {
                                     const StringsAndChecksumsRef &State) = 0;
 };
 
-Error visitDebugSubsection(const DebugSubsectionRecord &R,
-                           DebugSubsectionVisitor &V,
-                           const StringsAndChecksumsRef &State);
+LLVM_ABI Error visitDebugSubsection(const DebugSubsectionRecord &R,
+                                    DebugSubsectionVisitor &V,
+                                    const StringsAndChecksumsRef &State);
 
 namespace detail {
 template <typename T>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h b/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h
index 91b740ce6b9ae..304af628d1011 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h
@@ -27,7 +27,7 @@ class DebugSymbolRVASubsectionRef final : public DebugSubsectionRef {
 public:
   using ArrayType = FixedStreamArray<support::ulittle32_t>;
 
-  DebugSymbolRVASubsectionRef();
+  LLVM_ABI DebugSymbolRVASubsectionRef();
 
   static bool classof(const DebugSubsectionRef *S) {
     return S->kind() == DebugSubsectionKind::CoffSymbolRVA;
@@ -36,13 +36,13 @@ class DebugSymbolRVASubsectionRef final : public DebugSubsectionRef {
   ArrayType::Iterator begin() const { return RVAs.begin(); }
   ArrayType::Iterator end() const { return RVAs.end(); }
 
-  Error initialize(BinaryStreamReader &Reader);
+  LLVM_ABI Error initialize(BinaryStreamReader &Reader);
 
 private:
   ArrayType RVAs;
 };
 
-class DebugSymbolRVASubsection final : public DebugSubsection {
+class LLVM_ABI DebugSymbolRVASubsection final : public DebugSubsection {
 public:
   DebugSymbolRVASubsection();
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
index ae2a4e2276da0..285941ffb286b 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
@@ -49,28 +49,30 @@ class DWARFDebugAddrTable {
 public:
 
   /// Extract the entire table, including all addresses.
-  Error extract(const DWARFDataExtractor &Data, uint64_t *OffsetPtr,
-                uint16_t CUVersion, uint8_t CUAddrSize,
-                std::function<void(Error)> WarnCallback);
+  LLVM_ABI Error extract(const DWARFDataExtractor &Data, uint64_t *OffsetPtr,
+                         uint16_t CUVersion, uint8_t CUAddrSize,
+                         std::function<void(Error)> WarnCallback);
 
   /// Extract a DWARFv5 address table.
-  Error extractV5(const DWARFDataExtractor &Data, uint64_t *OffsetPtr,
-                  uint8_t CUAddrSize, std::function<void(Error)> WarnCallback);
+  LLVM_ABI Error extractV5(const DWARFDataExtractor &Data, uint64_t *OffsetPtr,
+                           uint8_t CUAddrSize,
+                           std::function<void(Error)> WarnCallback);
 
   /// Extract a pre-DWARFv5 address table. Such tables do not have a header
   /// and consist only of a series of addresses.
   /// See https://gcc.gnu.org/wiki/DebugFission for details.
-  Error extractPreStandard(const DWARFDataExtractor &Data, uint64_t *OffsetPtr,
-                           uint16_t CUVersion, uint8_t CUAddrSize);
+  LLVM_ABI Error extractPreStandard(const DWARFDataExtractor &Data,
+                                    uint64_t *OffsetPtr, uint16_t CUVersion,
+                                    uint8_t CUAddrSize);
 
-  void dump(raw_ostream &OS, DIDumpOptions DumpOpts = {}) const;
+  LLVM_ABI void dump(raw_ostream &OS, DIDumpOptions DumpOpts = {}) const;
 
   /// Return the address based on a given index.
-  Expected<uint64_t> getAddrEntry(uint32_t Index) const;
+  LLVM_ABI Expected<uint64_t> getAddrEntry(uint32_t Index) const;
 
   /// Return the full length of this table, including the length field.
   /// Return std::nullopt if the length cannot be identified reliably.
-  std::optional<uint64_t> getFullLength() const;
+  LLVM_ABI std::optional<uint64_t> getFullLength() const;
 
   /// Return the DWARF format of this table.
   dwarf::DwarfFormat getFormat() const { return Format; }
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
index 068674cfae5c5..ec3f89022ae06 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
@@ -22,8 +22,8 @@ class DWARFContext;
 
 class DWARFDebugAranges {
 public:
-  void generate(DWARFContext *CTX);
-  uint64_t findAddress(uint64_t Address) const;
+  LLVM_ABI void generate(DWARFContext *CTX);
+  LLVM_ABI uint64_t findAddress(uint64_t Address) const;
 
 private:
   void clear();
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
index df862f60cb2f1..c510103a448d4 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
@@ -62,16 +62,16 @@ class DWARFDebugMacro {
     uint64_t DebugLineOffset;
 
     /// Print the macro header from the debug_macro section.
-    void dumpMacroHeader(raw_ostream &OS) const;
+    LLVM_ABI void dumpMacroHeader(raw_ostream &OS) const;
 
     /// Parse the debug_macro header.
-    Error parseMacroHeader(DWARFDataExtractor Data, uint64_t *Offset);
+    LLVM_ABI Error parseMacroHeader(DWARFDataExtractor Data, uint64_t *Offset);
 
     /// Get the DWARF format according to the flags.
-    dwarf::DwarfFormat getDwarfFormat() const;
+    LLVM_ABI dwarf::DwarfFormat getDwarfFormat() const;
 
     /// Get the size of a reference according to the DWARF format.
-    uint8_t getOffsetByteSize() const;
+    LLVM_ABI uint8_t getOffsetByteSize() const;
   };
 
   /// A single macro entry within a macro list.
@@ -116,7 +116,7 @@ class DWARFDebugMacro {
   DWARFDebugMacro() = default;
 
   /// Print the macro list found within the debug_macinfo/debug_macro section.
-  void dump(raw_ostream &OS) const;
+  LLVM_ABI void dump(raw_ostream &OS) const;
 
   Error parseMacro(DWARFUnitVector::compile_unit_range Units,
                    DataExtractor StringExtractor,
@@ -142,9 +142,10 @@ class DWARFDebugMacro {
 private:
   /// Parse the debug_macinfo/debug_macro section accessible via the 'MacroData'
   /// parameter.
-  Error parseImpl(std::optional<DWARFUnitVector::compile_unit_range> Units,
-                  std::optional<DataExtractor> StringExtractor,
-                  DWARFDataExtractor Data, bool IsMacro);
+  LLVM_ABI Error
+  parseImpl(std::optional<DWARFUnitVector::compile_unit_range> Units,
+            std::optional<DataExtractor> StringExtractor,
+            DWARFDataExtractor Data, bool IsMacro);
 };
 
 } // end namespace llvm
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h
index 6b23c4e57d950..10fd000ed65ea 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h
@@ -70,8 +70,8 @@ class DWARFGdbIndex {
   bool parseImpl(DataExtractor Data);
 
 public:
-  void dump(raw_ostream &OS);
-  void parse(DataExtractor Data);
+  LLVM_ABI void dump(raw_ostream &OS);
+  LLVM_ABI void parse(DataExtractor Data);
 
   bool HasContent = false;
   bool HasError = false;
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
index 85ec6fd86ade6..274c297df3835 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
@@ -21,7 +21,7 @@ class DWARFDebugAbbrev;
 struct DWARFSection;
 class raw_ostream;
 
-class DWARFTypeUnit : public DWARFUnit {
+class LLVM_ABI DWARFTypeUnit : public DWARFUnit {
 public:
   DWARFTypeUnit(DWARFContext &Context, const DWARFSection &Section,
                 const DWARFUnitHeader &Header, const DWARFDebugAbbrev *DA,
diff --git a/llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFDataExtractorSimple.h b/llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFDataExtractorSimple.h
index 6527059cd0e5c..3d1c6da967ed7 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFDataExtractorSimple.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFDataExtractorSimple.h
@@ -228,9 +228,9 @@ class DWARFDataExtractorSimple
 public:
   using DWARFDataExtractorBase::DWARFDataExtractorBase;
 
-  LLVM_ABI uint64_t getRelocatedValueImpl(uint32_t Size, uint64_t *Off,
-                                          uint64_t *SectionIndex = nullptr,
-                                          Error *Err = nullptr) const {
+  uint64_t getRelocatedValueImpl(uint32_t Size, uint64_t *Off,
+                                 uint64_t *SectionIndex = nullptr,
+                                 Error *Err = nullptr) const {
     assert(SectionIndex == nullptr &&
            "DWARFDATAExtractorSimple cannot take section indices.");
     return getUnsigned(Off, Size, Err);
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymContext.h b/llvm/include/llvm/DebugInfo/GSYM/GsymContext.h
index f9382fa8d9577..102903753ccfd 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymContext.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymContext.h
@@ -26,7 +26,7 @@ class GsymReader;
 /// interface to different symbolication formats (e.g. GSYM, PDB and DWARF).
 /// More control and power over the debug information access can be had by using
 /// the GSYM interfaces directly.
-class GsymContext : public DIContext {
+class LLVM_ABI GsymContext : public DIContext {
 public:
   GsymContext(std::unique_ptr<GsymReader> Reader);
   ~GsymContext() override;
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h b/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h
index 9ce4776e834f4..042a58f02590b 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h
@@ -155,20 +155,20 @@ class GsymCreator {
   ///
   /// \returns The start address of the first FunctionInfo or std::nullopt if
   /// there are no function infos.
-  std::optional<uint64_t> getFirstFunctionAddress() const;
+  LLVM_ABI std::optional<uint64_t> getFirstFunctionAddress() const;
 
   /// Get the last function address.
   ///
   /// \returns The start address of the last FunctionInfo or std::nullopt if
   /// there are no function infos.
-  std::optional<uint64_t> getLastFunctionAddress() const;
+  LLVM_ABI std::optional<uint64_t> getLastFunctionAddress() const;
 
   /// Get the base address to use for this GSYM file.
   ///
   /// \returns The base address to put into the header and to use when creating
   ///          the address offset table or std::nullpt if there are no valid
   ///          function infos or if the base address wasn't specified.
-  std::optional<uint64_t> getBaseAddress() const;
+  LLVM_ABI std::optional<uint64_t> getBaseAddress() const;
 
   /// Get the size of an address offset in the address offset table.
   ///
@@ -178,7 +178,7 @@ class GsymCreator {
   /// on the current contents of the GSYM file.
   ///
   /// \returns The size in byets of the address offsets.
-  uint8_t getAddressOffsetSize() const;
+  LLVM_ABI uint8_t getAddressOffsetSize() const;
 
   /// Get the maximum address offset for the current address offset size.
   ///
@@ -188,7 +188,7 @@ class GsymCreator {
   ///
   /// \returns The maximum address offset value that will be encoded into a GSYM
   /// file.
-  uint64_t getMaxAddressOffset() const;
+  LLVM_ABI uint64_t getMaxAddressOffset() const;
 
   /// Calculate the byte size of the GSYM header and tables sizes.
   ///
@@ -209,7 +209,8 @@ class GsymCreator {
   /// \returns The number of bytes it will take to encode the function info in
   /// this GsymCreator. This helps calculate the size of the current GSYM
   /// segment file.
-  uint64_t copyFunctionInfo(const GsymCreator &SrcGC, size_t FuncInfoIdx);
+  LLVM_ABI uint64_t copyFunctionInfo(const GsymCreator &SrcGC,
+                                     size_t FuncInfoIdx);
 
   /// Copy a string from \a SrcGC into this object.
   ///
@@ -221,7 +222,7 @@ class GsymCreator {
   /// \param SrcGC The source gsym creator to copy from.
   /// \param StrOff The string table offset from \a SrcGC to copy.
   /// \returns The new string table offset of the string within this object.
-  gsym_strp_t copyString(const GsymCreator &SrcGC, gsym_strp_t StrOff);
+  LLVM_ABI gsym_strp_t copyString(const GsymCreator &SrcGC, gsym_strp_t StrOff);
 
   /// Copy a file from \a SrcGC into this object.
   ///
@@ -237,7 +238,7 @@ class GsymCreator {
   /// file index of zero will always return zero as the zero is a reserved file
   /// index that means no file.
   /// \returns The new file index of the file within this object.
-  uint32_t copyFile(const GsymCreator &SrcGC, uint32_t FileIdx);
+  LLVM_ABI uint32_t copyFile(const GsymCreator &SrcGC, uint32_t FileIdx);
 
   /// Inserts a FileEntry into the file table.
   ///
@@ -245,7 +246,7 @@ class GsymCreator {
   ///
   /// \param FE A file entry object that contains valid string table offsets
   /// from this object already.
-  uint32_t insertFileEntry(FileEntry FE);
+  LLVM_ABI uint32_t insertFileEntry(FileEntry FE);
 
   /// Fixup any string and file references by updating any file indexes and
   /// strings offsets in the InlineInfo parameter.
@@ -257,7 +258,7 @@ class GsymCreator {
   /// \param II The inline info that contains file indexes and string offsets
   /// that come from \a SrcGC. The entries will be updated by coping any files
   /// and strings over into this object.
-  void fixupInlineInfo(const GsymCreator &SrcGC, InlineInfo &II);
+  LLVM_ABI void fixupInlineInfo(const GsymCreator &SrcGC, InlineInfo &II);
 
   /// Save this GSYM file into segments that are roughly \a SegmentSize in size.
   ///
@@ -273,8 +274,8 @@ class GsymCreator {
   /// \param Path The path prefix to use when saving the GSYM files.
   /// \param ByteOrder The endianness to use when saving the file.
   /// \param SegmentSize The size in bytes to segment the GSYM file into.
-  llvm::Error saveSegments(StringRef Path, llvm::endianness ByteOrder,
-                           uint64_t SegmentSize) const;
+  LLVM_ABI llvm::Error saveSegments(StringRef Path, llvm::endianness ByteOrder,
+                                    uint64_t SegmentSize) const;
 
   /// Let this creator know that this is a segment of another GsymCreator.
   ///
@@ -292,21 +293,22 @@ class GsymCreator {
   ///
   /// \param[out] BaseAddr Set to the base address on success.
   /// \returns An error if validation fails, or Error::success().
-  llvm::Error validateForEncoding(std::optional<uint64_t> &BaseAddr) const;
+  LLVM_ABI llvm::Error
+  validateForEncoding(std::optional<uint64_t> &BaseAddr) const;
 
   /// Write the address offsets table to the output stream.
   ///
   /// \param O The file writer to write to.
   /// \param AddrOffSize The byte width of each address offset.
   /// \param BaseAddr The base address to subtract from each function address.
-  void encodeAddrOffsets(FileWriter &O, uint8_t AddrOffSize,
-                         uint64_t BaseAddr) const;
+  LLVM_ABI void encodeAddrOffsets(FileWriter &O, uint8_t AddrOffSize,
+                                  uint64_t BaseAddr) const;
 
   /// Write the file table to the output stream.
   ///
   /// \param O The file writer to write to.
   /// \returns An error if the file table is too large, or Error::success().
-  llvm::Error encodeFileTable(FileWriter &O) const;
+  LLVM_ABI llvm::Error encodeFileTable(FileWriter &O) const;
 
   /// Create a new empty creator of the same version.
   ///
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV1.h b/llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV1.h
index d82842700e99d..70392513869ac 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV1.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV1.h
@@ -15,7 +15,7 @@
 namespace llvm {
 namespace gsym {
 
-class GsymCreatorV1 : public GsymCreator {
+class LLVM_ABI GsymCreatorV1 : public GsymCreator {
   uint64_t calculateHeaderAndTableSize() const override;
   std::unique_ptr<GsymCreator> createNew(bool Quiet) const override {
     return std::make_unique<GsymCreatorV1>(Quiet);
@@ -27,7 +27,7 @@ class GsymCreatorV1 : public GsymCreator {
   uint8_t getStringOffsetSize() const override {
     return Header::getStringOffsetSize();
   }
-  LLVM_ABI llvm::Error encode(FileWriter &O) const override;
+  llvm::Error encode(FileWriter &O) const override;
 };
 
 } // namespace gsym
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV2.h b/llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV2.h
index eb2f1a5f739c9..8e15e79d969dd 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV2.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymCreatorV2.h
@@ -16,7 +16,7 @@ namespace llvm {
 namespace gsym {
 
 /// GsymCreatorV2 emits GSYM V2 data with a GlobalData-based section layout.
-class GsymCreatorV2 : public GsymCreator {
+class LLVM_ABI GsymCreatorV2 : public GsymCreator {
   uint64_t calculateHeaderAndTableSize() const override;
   std::unique_ptr<GsymCreator> createNew(bool Quiet) const override {
     return std::make_unique<GsymCreatorV2>(Quiet);
@@ -28,7 +28,7 @@ class GsymCreatorV2 : public GsymCreator {
   uint8_t getStringOffsetSize() const override {
     return HeaderV2::getStringOffsetSize();
   }
-  LLVM_ABI llvm::Error encode(FileWriter &O) const override;
+  llvm::Error encode(FileWriter &O) const override;
 };
 
 } // namespace gsym
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h b/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h
index b44f895ed9634..a0a9b715c11fc 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h
@@ -58,10 +58,11 @@ class GsymReader {
   GsymDataExtractor FileEntryData;
   StringTable StrTab;
 
-  GsymReader(std::unique_ptr<MemoryBuffer> Buffer, llvm::endianness Endian);
+  LLVM_ABI GsymReader(std::unique_ptr<MemoryBuffer> Buffer,
+                      llvm::endianness Endian);
 
 public:
-  LLVM_ABI GsymReader(GsymReader &&RHS) = default;
+  GsymReader(GsymReader &&RHS) = default;
   virtual ~GsymReader() = default;
 
   bool isLittleEndian() const { return Endian == llvm::endianness::little; }
@@ -364,31 +365,31 @@ class GsymReader {
   ///
   /// \param Offset The byte offset where GlobalData entries begin.
   /// \returns Error on failure.
-  llvm::Error parseGlobalDataEntries(uint64_t Offset);
+  LLVM_ABI llvm::Error parseGlobalDataEntries(uint64_t Offset);
 
   /// Parse address offsets section bytes into AddrOffsets.
   ///
   /// \param Bytes The raw section bytes.
   /// \returns Error on failure.
-  llvm::Error parseAddrOffsets(StringRef Bytes);
+  LLVM_ABI llvm::Error parseAddrOffsets(StringRef Bytes);
 
   /// Set address info offsets section bytes into AddrInfoOffsetsData.
   ///
   /// \param Bytes The raw section bytes.
   /// \returns Error on failure.
-  llvm::Error setAddrInfoOffsetsData(StringRef Bytes);
+  LLVM_ABI llvm::Error setAddrInfoOffsetsData(StringRef Bytes);
 
   /// Set string table section bytes into StrTab.
   ///
   /// \param Bytes The raw section bytes.
   /// \returns Error on failure.
-  llvm::Error setStringTableData(StringRef Bytes);
+  LLVM_ABI llvm::Error setStringTableData(StringRef Bytes);
 
   /// Set file table section bytes into FileEntryData.
   ///
   /// \param Bytes The raw section bytes.
   /// \returns Error on failure.
-  llvm::Error setFileTableData(StringRef Bytes);
+  LLVM_ABI llvm::Error setFileTableData(StringRef Bytes);
 
   /// Get an appropriate address info offsets array.
   ///
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymReaderV1.h b/llvm/include/llvm/DebugInfo/GSYM/GsymReaderV1.h
index d59192f1abfbb..8cc6a75c51baa 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymReaderV1.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymReaderV1.h
@@ -18,7 +18,7 @@ class MemoryBuffer;
 namespace gsym {
 
 /// GsymReaderV1 reads GSYM V1 data from a buffer.
-class GsymReaderV1 : public GsymReader {
+class LLVM_ABI GsymReaderV1 : public GsymReade...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/202915


More information about the llvm-commits mailing list