This patch completes the work done by Frederic Riss (@friss) to
addresses dsymutil incorrectly considering forward declaration as
canonical during uniquing. This resulted in references to the forward
declaration even after the definition was encountered.
In addition to the test provided by Alexander Shaposhnikov (@alexshap)
in D29609, I added another test to cover several scenarios that were
mentioned in his conversation with Fred. We now also check that uniquing
still occurs after the definition was encountered.
For more context please refer to D29609
broken