[PATCH] D35871: [PDB] Write public symbol records and the publics hash table

Peter Collingbourne via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 25 20:49:33 PDT 2017

pcc added a comment.

Test case?

Also, can we remove the logic to write out the non-standard PE symbol table once this lands?

Comment at: lld/COFF/PDB.cpp:551
+static Optional<PublicSym32> createPublic(Defined *Def) {
+  // Relative symbols are unrepresentable in a COFF symbol table.
+  // FIXME: Reconsider?
I guess this should talk about PDBs rather than COFF symbol tables.

Comment at: lld/COFF/PDB.cpp:574
+    // Skip section symbols.
+    if (COFFRef.isSection())
+      return None;
Can section symbols appear in `SymbolTable::Symtab`? I believe that it only contains external symbols.

Comment at: lld/COFF/PDB.cpp:609
+  for (const auto &Pair : Symtab->Symtab) {
+    if (!Pair.second)
+      continue;

It doesn't appear that this can ever be null.

Comment at: lld/COFF/PDB.cpp:613
+    auto *D = dyn_cast<Defined>(B);
+    if (!D || D->WrittenToPDB)
+      continue;
Is the `WrittenToPDB` check necessary? I believe that each symbol should only appear once in `SymbolTable::Symtab`.


More information about the llvm-commits mailing list