r198497 - Move MS predefined type_info out of InitializePredefinedMacros

Chandler Carruth chandlerc at google.com
Sun Jan 5 17:49:28 PST 2014


On Sun, Jan 5, 2014 at 6:37 PM, Aaron Ballman <aaron at aaronballman.com>wrote:

> On Sun, Jan 5, 2014 at 9:14 AM, Aaron Ballman <aaron at aaronballman.com>
> wrote:
> > On Sun, Jan 5, 2014 at 12:20 AM, Alp Toker <alp at nuanti.com> wrote:
> >> On 04/01/2014 21:07, David Majnemer wrote:
> >>>
> >>> It seems that I mixed up MicrosoftMode and MicrosoftExt which lead to a
> >>> discussion between Alp Toker, Aaron Ballman, and myself.
> >>>
> >>> We agreed that the current state of affairs is confusing and should be
> >>> remedied:
> >>> - MicrosoftExt will be renamed to MSVCExt (and will still be
> controlled by
> >>> -fms-extensions)
> >>> - MicrosoftMode will be renamed to MSVCCompat (and will still be
> >>> controlled by -fms-compatibility)
> >>
> >>
> >> Attached patch does the mechanical regex replace described above, passed
> >> through clang-format.
> >>
> >> The only manual changes are in LangOptions.def, where the MSVC-related
> >> options are brought closer together with updated descriptions:
> >>
> >> LANGOPT(MSVCExt           , 1, 0, "Microsoft extensions")
> >> LANGOPT(MSVCCompat        , 1, 0, "Microsoft Visual C++ quirks mode")
> >
> > I'm not too keen on calling it a "quirks mode" because it's not
> > quirks. MSVCCompat is for conforming language extensions, and MSVCExt
> > is for non-conforming language extensions (so, if anything, the naming
> > should be reversed). How about:
> >
> > LANGOPT(MSVCCompat        , 1, 0, "Microsoft Visual C++ conforming
> extensions")
> > LANGOPT(MSVCExt           , 1, 0, "Microsoft Visual C++ non-conforming
> > extensions")
>
> Of course, as David kindly pointed out, I promptly got it backwards. I
> should have said:
>
> LANGOPT(MSVCExt           , 1, 0, "Microsoft Visual C++ conforming
> extensions")
> LANGOPT(MSVCCompat        , 1, 0, "Microsoft Visual C++ non-conforming
> extensions")


Were I to paint this bikeshed (and I think it is approaching a bikeshed
question) I like your wording for the first, but would describe the second
in terms of its intent: full and complete compatibility. That happens to
include non-conforming extensions, it also includes things which make no
sense except when attempting to be fully interoperable with every other
aspect of MSVC (runtime, linker, ABI, libraries, headers, extensions, the
whole 9 yards). Anyways...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140105/4f105e78/attachment.html>


More information about the cfe-commits mailing list