Bug 39052 - [Modules TS] MSVC std library produces ambiguous type_info reference when including module with ms-compatibility
When compiling a modules-ts project with MSVC compatibility turned on the type_info class was getting defined multiple times. With this change I am adding the type_info class as a predefined decl to allow the reader/writer to resolve the duplicated declarations.
On top of this I am adding an extra check to ignore redeclaration checks on implicit types. This could be up for discussion since the spec does not specify if the implicit types should be in the global unit or if they can be overridden by the same type inside a module purview.
Somewhere up here we're calling getOwningModule() but should be calling getOwningModuleForLinkage(). (Please upload patches with full context as described at https://llvm.org/docs/Phabricator.html)