diff options
| -rw-r--r-- | lld/COFF/PDB.cpp | 3 | ||||
| -rw-r--r-- | llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h | 2 | ||||
| -rw-r--r-- | llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp | 5 | 
3 files changed, 8 insertions, 2 deletions
diff --git a/lld/COFF/PDB.cpp b/lld/COFF/PDB.cpp index 9aa4c648dbb..c2b08265e84 100644 --- a/lld/COFF/PDB.cpp +++ b/lld/COFF/PDB.cpp @@ -1102,8 +1102,7 @@ void PDBLinker::initialize(const llvm::codeview::DebugInfo &BuildId) {    pdb::DbiStreamBuilder &DbiBuilder = Builder.getDbiBuilder();    DbiBuilder.setAge(BuildId.PDB70.Age);    DbiBuilder.setVersionHeader(pdb::PdbDbiV70); -  DbiBuilder.setMachineType(Config->is64() ? pdb::PDB_Machine::Amd64 -                                           : pdb::PDB_Machine::x86); +  DbiBuilder.setMachineType(Config->Machine);    // Technically we are not link.exe 14.11, but there are known cases where    // debugging tools on Windows expect Microsoft-specific version numbers or    // they fail to work at all.  Since we know we produce PDBs that are diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h b/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h index 316be090411..51befcdac77 100644 --- a/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h +++ b/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h @@ -12,6 +12,7 @@  #include "llvm/ADT/Optional.h"  #include "llvm/ADT/StringSet.h" +#include "llvm/BinaryFormat/COFF.h"  #include "llvm/Support/Error.h"  #include "llvm/DebugInfo/PDB/Native/PDBFile.h" @@ -51,6 +52,7 @@ public:    void setPdbDllRbld(uint16_t R);    void setFlags(uint16_t F);    void setMachineType(PDB_Machine M); +  void setMachineType(COFF::MachineTypes M);    void setSectionMap(ArrayRef<SecMapEntry> SecMap);    // Add given bytes as a new stream. diff --git a/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp b/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp index 52886d566e7..f6043bfd7cf 100644 --- a/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp +++ b/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp @@ -53,6 +53,11 @@ void DbiStreamBuilder::setFlags(uint16_t F) { Flags = F; }  void DbiStreamBuilder::setMachineType(PDB_Machine M) { MachineType = M; } +void DbiStreamBuilder::setMachineType(COFF::MachineTypes M) { +  // These enums are mirrors of each other, so we can just cast the value. +  MachineType = static_cast<pdb::PDB_Machine>(static_cast<unsigned>(M)); +} +  void DbiStreamBuilder::setSectionMap(ArrayRef<SecMapEntry> SecMap) {    SectionMap = SecMap;  }  | 

