A really unfortunate design of llvm-link and related libraries is that they operate one module at a time.
This means they can copy a GV to the destination module that should not be there in the final result because a later bitcode file takes precedence.
We already handled cases like a strong GV replacing a weak for example.
One case that is not currently handled is a comdat replacing another. This doesn't happen in ELF, but with COFF largest selection kind it is possible.
In "llvm-link a.ll b.ll" if the selected comdat was from a.ll, everything will work and we will not copy the comdat from b.ll.
But if we run "llvm-link b.ll a.ll", we fail to delete the already copied comdat from b.ll. This patch fixes that.
Needs doxygen comment