[PATCH] D34577: [COFF] Improve synthetic symbol handling
Rui Ueyama via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 23 15:39:41 PDT 2017
ruiu added a comment.
Overall looking good, a few minor comments.
================
Comment at: lld/COFF/Symbols.h:170
uint32_t getValue() { return Sym->Value; }
+ uint64_t getSecrel();
----------------
Why is it 64 bit?
================
Comment at: lld/COFF/Writer.cpp:785-786
return;
- if (auto *T = dyn_cast<DefinedRelative>(Config->SEHTable->body()))
- T->setRVA(SEHTable->getRVA());
- if (auto *C = dyn_cast<DefinedAbsolute>(Config->SEHCount->body()))
- C->setVA(SEHTable->getSize() / 4);
+ Symbol *T = Symtab->findUnderscore("__safe_se_handler_table");
+ Symbol *C = Symtab->findUnderscore("__safe_se_handler_count");
+ replaceBody<DefinedSynthetic>(T, T->body()->getName(), SEHTable);
----------------
Since we always add "___safe_se_handler_table" and "___safe_se_handler_count" (three underscores), I think you can use `Symtab->find` instead of `Symtab->findUnderscore`.
Please add comment why you want to change the type of the symbol from Absolute to Synthetic.
https://reviews.llvm.org/D34577
More information about the llvm-commits
mailing list