With MS ABI, the char [] definitions of the iostream globals (iostream.cpp)
result in mangled symbol names that don't match the mangled symbol names of the
declarations (<iostream>).
For example, istream cin mangles to:
?cin@__1@std@@3V?$basic_istream@DU?$char_traits@D@__1@std@@@12@A
but its definition in iostream.cpp is char cin[sizeof(istream)], which
incorrectly mangles to:
?cin@__1@std@@3PADA
To work aound this issue, this change manually sets the symbol name using an
__asm__ label, for win32 only.
_LIBCPP_MSVC is definitely not correct. It's only defined for cl, not for clang (not even clang-cl), and cl doesn't even support __asm__.