This is a partial revert of changes in SVN rev 273880 (changes that are unrelated to what is described in the commit message).
That commit also changed MCObjectFileInfo to only set the thumb flag if the triple architecture is thumb, no longer setting it if the architecture is arm. This is probably correct per se, but negatively affects standalone assembly files assembled via clang for windows.
When assembling files via clang, even if the target triple set on the command line is e.g. thumb-win32, the driver sets the triple to armv7--windows-msvc18.0.0 (or similar; see tools/clang/lib/Driver/ToolChain.cpp) since assembly files should start in ARM mode by default.
This means that it currently is impossible to get the thumb code flag set for these sections, when assembling via clang.
I'm opposed to adding this line at all.
AFAICS, this is only initialising the global attributes. On Linux, a file can have ARM and Thumb functions and support both of them. COFF is largely Windows but it's not *just* Windows, for example, EFI code is COFF and doesn't run on Windows.
If Windows is always Thumb, no matter what, then the Triple *must* identify that. If the Triple doesn't, than this is a bug in the front-end and it should not have to be hacked in the back-end, completely ignoring the front-end decisions.