There are many more, but this just touches 1 record so we can see what the code is going to look like.
There is one potential problem with this patch which exposes a limitation in the underlying design we've chosen for the symbol and type records. dumping symbol records relies on calling a function printRelocatedField which assumes that you have a pointer into the section data so that it can compute the section offset. This isn't true anymore once we're copying bytes out of the input stream and into an in memory structure, so it makes it so we can't use printRelocatedField. However, this particular symbol (ProcSym) does have another field which is the section offset. So maybe we can use that. But I haven't checked whether it's the same as what we think it is yet, nor have I confirmed that this will work for the general case of all other types of symbols.
Should this really modify the Annotations member variable? Maybe it should be a static method that takes an ArrayRef by non-const reference.
Also, it should be in a .cpp file.