Commit de3fb1ec authored by Reid Kleckner's avatar Reid Kleckner
Browse files

[COFF] Avoid CodeView include in header

Most LLD/COFF files don't care about CodeView. Avoid using CodeView
types in InputFiles.h.
parent adfad4d7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -767,7 +767,8 @@ void ObjFile::initializeDependencies() {
  if (firstType == types.end())
    return;

  debugTypes.emplace(types);
  // Remember the .debug$T or .debug$P section.
  debugTypes = data;

  if (isPCH) {
    debugTypesObj = makePrecompSource(this);
+2 −3
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/BinaryFormat/Magic.h"
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
#include "llvm/Object/Archive.h"
#include "llvm/Object/COFF.h"
#include "llvm/Support/StringSaver.h"
@@ -204,8 +203,8 @@ public:
  // If the OBJ has a .debug$T stream, this tells how it will be handled.
  TpiSource *debugTypesObj = nullptr;

  // The .debug$T stream if there's one.
  llvm::Optional<llvm::codeview::CVTypeArray> debugTypes;
  // The .debug$P or .debug$T section data if present. Empty otherwise.
  ArrayRef<uint8_t> debugTypes;

  llvm::Optional<std::pair<StringRef, uint32_t>>
  getVariableLocation(StringRef var);
+4 −2
Original line number Diff line number Diff line
@@ -370,7 +370,9 @@ PDBLinker::mergeDebugT(ObjFile *file, CVIndexMap *objectIndexMap) {
    return maybeMergeTypeServerPDB(file);
  }

  CVTypeArray &types = *file->debugTypes;
  CVTypeArray types;
  BinaryStreamReader reader(file->debugTypes, support::little);
  cantFail(reader.readArray(types, reader.getLength()));

  if (file->debugTypesObj->kind == TpiSource::UsingPCH) {
    // This object was compiled with /Yu, so process the corresponding