Expose the module descriptor index and fill it in for section
contributions.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
| lld/COFF/PDB.cpp | ||
|---|---|---|
| 113–115 ↗ | (On Diff #102269) | A slightly cleaner way to do this would be to make an ExitOnError outside of this for loop, then just write auto &MD = Err(Builder.getDbiBuilder().addModuleInfo(Path); ExitOnError Err("Error while adding objects to PDB");
for (...) {
auto &MD = Err(Builder.getDbiBuilder().addModuleInfo(Path)); |
| lld/test/COFF/pdb-lib.s | ||
| 3–4 ↗ | (On Diff #102269) | I know this keeps it all in one file, but sed on the input file is kind of a huge hack, what about putting the code in an input file under Inputs/? Maybe in the future we could remove dependency on sed by making a tool which essentially strips a file of everything but a single label. Like: llvm-strip --keep-label=BAR --remove-label-headers < %s > bar.asm |
| 12 ↗ | (On Diff #102269) | I'd remove anything fragile like debug stream indices. |
| llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp | ||
| 296 ↗ | (On Diff #102269) | Is this correct? Shouldn't it be the index of the section? |
| lld/test/COFF/pdb-lib.s | ||
|---|---|---|
| 3–4 ↗ | (On Diff #102269) | I'd like something like llvm-strip, or maybe llvm-split, which splits something like this up into multiple inputs: // ==> file_a.h <==
struct Foo { ... };
extern Foo my_global;
// ==> file_b.c <==
#include "file_a.h"
Foo my_global;
// ==> file_c.c <==
#include "file_a.h"
int use_global() { return my_global.x; }That's basically the format people use to file bugs. And then you get editor syntax highlighting that works. Let's just use Inputs for now. |
| 12 ↗ | (On Diff #102269) | OK, I'll remove that. I want to keep the line info, source file name, etc, since these are .s files without any .debug$S data and those *should* remain zero. |
| llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp | ||
| 296 ↗ | (On Diff #102269) | I haven't figured out what it's supposed to be yet, but zero isn't correct, because it's not the null representation used in microsoft-pdb. I did some experiments but I wasn't able to nail it down by the end of the day, so I figured I'd send what I have and we can improve on it later. |
| lld/COFF/PDB.cpp | ||
|---|---|---|
| 113–115 ↗ | (On Diff #102269) | (forgot to respond to this) Thanks, I tried check() first, but that doesn't work because it isn't overloaded for Expected<T&>. |