1313#ifndef LLVM_XRAY_FDRRECORDS_H
1414#define LLVM_XRAY_FDRRECORDS_H
1515
16+ #include " llvm/Support/Compiler.h"
1617#include < cstdint>
1718#include < string>
1819
@@ -47,7 +48,7 @@ class Record {
4748 RK_Function,
4849 };
4950
50- static StringRef kindToString (RecordKind K);
51+ LLVM_ABI static StringRef kindToString (RecordKind K);
5152
5253private:
5354 const RecordKind T;
@@ -107,7 +108,7 @@ class MetadataRecord : public Record {
107108// What follows are specific Metadata record types which encapsulate the
108109// information associated with specific metadata record types in an FDR mode
109110// log.
110- class BufferExtents : public MetadataRecord {
111+ class LLVM_ABI BufferExtents : public MetadataRecord {
111112 uint64_t Size = 0 ;
112113 friend class RecordInitializer ;
113114
@@ -130,7 +131,7 @@ class BufferExtents : public MetadataRecord {
130131 }
131132};
132133
133- class WallclockRecord : public MetadataRecord {
134+ class LLVM_ABI WallclockRecord : public MetadataRecord {
134135 uint64_t Seconds = 0 ;
135136 uint32_t Nanos = 0 ;
136137 friend class RecordInitializer ;
@@ -155,7 +156,7 @@ class WallclockRecord : public MetadataRecord {
155156 }
156157};
157158
158- class NewCPUIDRecord : public MetadataRecord {
159+ class LLVM_ABI NewCPUIDRecord : public MetadataRecord {
159160 uint16_t CPUId = 0 ;
160161 uint64_t TSC = 0 ;
161162 friend class RecordInitializer ;
@@ -181,7 +182,7 @@ class NewCPUIDRecord : public MetadataRecord {
181182 }
182183};
183184
184- class TSCWrapRecord : public MetadataRecord {
185+ class LLVM_ABI TSCWrapRecord : public MetadataRecord {
185186 uint64_t BaseTSC = 0 ;
186187 friend class RecordInitializer ;
187188
@@ -203,7 +204,7 @@ class TSCWrapRecord : public MetadataRecord {
203204 }
204205};
205206
206- class CustomEventRecord : public MetadataRecord {
207+ class LLVM_ABI CustomEventRecord : public MetadataRecord {
207208 int32_t Size = 0 ;
208209 uint64_t TSC = 0 ;
209210 uint16_t CPU = 0 ;
@@ -232,7 +233,7 @@ class CustomEventRecord : public MetadataRecord {
232233 }
233234};
234235
235- class CustomEventRecordV5 : public MetadataRecord {
236+ class LLVM_ABI CustomEventRecordV5 : public MetadataRecord {
236237 int32_t Size = 0 ;
237238 int32_t Delta = 0 ;
238239 std::string Data{};
@@ -259,7 +260,7 @@ class CustomEventRecordV5 : public MetadataRecord {
259260 }
260261};
261262
262- class TypedEventRecord : public MetadataRecord {
263+ class LLVM_ABI TypedEventRecord : public MetadataRecord {
263264 int32_t Size = 0 ;
264265 int32_t Delta = 0 ;
265266 uint16_t EventType = 0 ;
@@ -288,7 +289,7 @@ class TypedEventRecord : public MetadataRecord {
288289 }
289290};
290291
291- class CallArgRecord : public MetadataRecord {
292+ class LLVM_ABI CallArgRecord : public MetadataRecord {
292293 uint64_t Arg = 0 ;
293294 friend class RecordInitializer ;
294295
@@ -310,7 +311,7 @@ class CallArgRecord : public MetadataRecord {
310311 }
311312};
312313
313- class PIDRecord : public MetadataRecord {
314+ class LLVM_ABI PIDRecord : public MetadataRecord {
314315 int32_t PID = 0 ;
315316 friend class RecordInitializer ;
316317
@@ -333,7 +334,7 @@ class PIDRecord : public MetadataRecord {
333334 }
334335};
335336
336- class NewBufferRecord : public MetadataRecord {
337+ class LLVM_ABI NewBufferRecord : public MetadataRecord {
337338 int32_t TID = 0 ;
338339 friend class RecordInitializer ;
339340
@@ -356,7 +357,7 @@ class NewBufferRecord : public MetadataRecord {
356357 }
357358};
358359
359- class EndBufferRecord : public MetadataRecord {
360+ class LLVM_ABI EndBufferRecord : public MetadataRecord {
360361public:
361362 EndBufferRecord ()
362363 : MetadataRecord(RecordKind::RK_Metadata_EndOfBuffer,
@@ -369,7 +370,7 @@ class EndBufferRecord : public MetadataRecord {
369370 }
370371};
371372
372- class FunctionRecord : public Record {
373+ class LLVM_ABI FunctionRecord : public Record {
373374 RecordTypes Kind;
374375 int32_t FuncId = 0 ;
375376 uint32_t Delta = 0 ;
@@ -415,7 +416,7 @@ class RecordVisitor {
415416 virtual Error visit (TypedEventRecord &) = 0;
416417};
417418
418- class RecordInitializer : public RecordVisitor {
419+ class LLVM_ABI RecordInitializer : public RecordVisitor {
419420 DataExtractor &E;
420421 uint64_t &OffsetPtr;
421422 uint16_t Version;
0 commit comments