Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:43:45

0001 //===- IPDBInjectedSource.h - base class for PDB injected file --*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_DEBUGINFO_PDB_IPDBINJECTEDSOURCE_H
0010 #define LLVM_DEBUGINFO_PDB_IPDBINJECTEDSOURCE_H
0011 
0012 #include <cstdint>
0013 #include <string>
0014 
0015 namespace llvm {
0016 namespace pdb {
0017 /// IPDBInjectedSource defines an interface used to represent source files
0018 /// which were injected directly into the PDB file during the compilation
0019 /// process.  This is used, for example, to add natvis files to a PDB, but
0020 /// in theory could be used to add arbitrary source code.
0021 class IPDBInjectedSource {
0022 public:
0023   virtual ~IPDBInjectedSource();
0024 
0025   virtual uint32_t getCrc32() const = 0;
0026   virtual uint64_t getCodeByteSize() const = 0;
0027   virtual std::string getFileName() const = 0;
0028   virtual std::string getObjectFileName() const = 0;
0029   virtual std::string getVirtualFileName() const = 0;
0030   // The returned value depends on the PDB producer,
0031   // but 0 is guaranteed to mean "no compression".
0032   // The enum PDB_SourceCompression lists known return values.
0033   virtual uint32_t getCompression() const = 0;
0034   virtual std::string getCode() const = 0;
0035 };
0036 } // namespace pdb
0037 } // namespace llvm
0038 
0039 #endif // LLVM_DEBUGINFO_PDB_IPDBINJECTEDSOURCE_H