This patch addresses, for the interfaces implemented by COFFDump.cpp, multiple issues identified with the current structure of llvm-objdump.h in the review of D72973.
This patch moves implementation details of the tool into an llvm::objdump namespace for external linkage names, splits the implementation details into separate headers for each implementation file, and uses qualified names when declaring members of the llvm::objdump namespace in place of leaving the namespace definition open.
Can't you forward-declare Error to avoid this include?