Many diagnostics use getErrorPlace or getErrorLocation to report a location.
In the presence of line table debug information, getErrorPlace uses a source
file location and ignores the object file location. However, the object file
location is sometimes more useful.
This patch changes "undefined symbol" and "out of range" diagnostics to report
both object/source file locations. Other diagnostics can use similar format if
needed.
The key idea is to let InputSectionBase::getLocation report the object file
location and use getSrcMsg for source file/line information. getSrcMsg
doesn't leverage STT_FILE information yet, but I think the temporary lack of
the functionality is ok.
For the ARM "branch and link relocation" diagnostic, I arbitrarily place the
source file location at the end of the line. The diagnostic is not very common
so its formatting doesn't need to be pretty.
The first 4 lines of the if/else statement bodies look to be the same. Worth moving before the if/else?