Sure, r151776. dgregor said "-ms-extensions" on the bug, but I see now that that predates the existence of -fms-compatibility.
Nico On Feb 29, 2012 3:05 PM, "Eli Friedman" <[email protected]> wrote: > On Wed, Feb 29, 2012 at 2:54 PM, Nico Weber <[email protected]> wrote: > > Author: nico > > Date: Wed Feb 29 16:54:43 2012 > > New Revision: 151768 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=151768&view=rev > > Log: > > Allow operator keywords to be #defined in ms-ext mode. > > > > Fixes PR10606. > > > > I'm not sure if this is the best way to go about it, but > > I locally enabled this code path without the msext conditional, > > and all tests pass, except for test/Preprocessor/cxx_oper_keyword.cpp > > which explicitly checks that operator keywords can't be redefined. > > > > I also parsed chromium/win with a clang with and without this patch. > > It introduced no new errors, but removes 43 existing errors. > > > > > > > > Added: > > cfe/trunk/test/Preprocessor/cxx_oper_keyword_ms_ext.cpp > > Modified: > > cfe/trunk/include/clang/Lex/Preprocessor.h > > cfe/trunk/lib/Lex/PPDirectives.cpp > > > > Modified: cfe/trunk/include/clang/Lex/Preprocessor.h > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Preprocessor.h?rev=151768&r1=151767&r2=151768&view=diff > > > ============================================================================== > > --- cfe/trunk/include/clang/Lex/Preprocessor.h (original) > > +++ cfe/trunk/include/clang/Lex/Preprocessor.h Wed Feb 29 16:54:43 2012 > > @@ -815,8 +815,8 @@ > > /// SmallVector. Note that the returned StringRef may not point to the > > /// supplied buffer if a copy can be avoided. > > StringRef getSpelling(const Token &Tok, > > - SmallVectorImpl<char> &Buffer, > > - bool *Invalid = 0) const; > > + SmallVectorImpl<char> &Buffer, > > + bool *Invalid = 0) const; > > > > /// getSpellingOfSingleCharacterNumericConstant - Tok is a numeric > constant > > /// with length 1, return the character. > > > > Modified: cfe/trunk/lib/Lex/PPDirectives.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPDirectives.cpp?rev=151768&r1=151767&r2=151768&view=diff > > > ============================================================================== > > --- cfe/trunk/lib/Lex/PPDirectives.cpp (original) > > +++ cfe/trunk/lib/Lex/PPDirectives.cpp Wed Feb 29 16:54:43 2012 > > @@ -120,8 +120,15 @@ > > std::string Spelling = getSpelling(MacroNameTok, &Invalid); > > if (Invalid) > > return; > > - > > + > > const IdentifierInfo &Info = Identifiers.get(Spelling); > > + > > + // Allow #defining |and| and friends in microsoft mode. > > + if (Info.isCPlusPlusOperatorKeyword() && > getLangOptions().MicrosoftExt) { > > Please put this under MicrosoftMode. > > -Eli > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
