diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-04-28 00:51:18 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-04-28 00:51:18 +0000 |
commit | f01fdff97b245caac98100d232c760b4d0531411 (patch) | |
tree | ec640f32eeefc2216a0abd4b8257cf6879a823be | |
parent | b0156ea412df1c2eb12d620054a404da71784cf5 (diff) | |
download | clang-f01fdff97b245caac98100d232c760b4d0531411.tar.gz |
Get rid of some useless uses of NoExtensions. The philosophy here is
that if we're going to print an extension warning anyway,
there's no point to changing behavior based on NoExtensions: it will
only make error recovery worse.
Note that this doesn't cause any behavior change because NoExtensions
isn't used by the current front-end. I'm still considering what to do about
the remaining use of NoExtensions in IdentifierTable.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70273 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Lex/Lexer.cpp | 3 | ||||
-rw-r--r-- | lib/Lex/LiteralSupport.cpp | 8 | ||||
-rw-r--r-- | lib/Parse/ParseStmt.cpp | 2 | ||||
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 1 |
4 files changed, 5 insertions, 9 deletions
diff --git a/lib/Lex/Lexer.cpp b/lib/Lex/Lexer.cpp index fff6f10fa9..3f78be68c1 100644 --- a/lib/Lex/Lexer.cpp +++ b/lib/Lex/Lexer.cpp @@ -650,8 +650,7 @@ void Lexer::LexNumericConstant(Token &Result, const char *CurPtr) { return LexNumericConstant(Result, ConsumeChar(CurPtr, Size, Result)); // If we have a hex FP constant, continue. - if ((C == '-' || C == '+') && (PrevCh == 'P' || PrevCh == 'p') && - (Features.HexFloats || !Features.NoExtensions)) + if ((C == '-' || C == '+') && (PrevCh == 'P' || PrevCh == 'p')) return LexNumericConstant(Result, ConsumeChar(CurPtr, Size, Result)); // Update the location of token as well as BufferPtr. diff --git a/lib/Lex/LiteralSupport.cpp b/lib/Lex/LiteralSupport.cpp index a3184e90ad..03ecff91a5 100644 --- a/lib/Lex/LiteralSupport.cpp +++ b/lib/Lex/LiteralSupport.cpp @@ -132,11 +132,9 @@ static unsigned ProcessCharEscape(const char *&ThisTokBuf, // Otherwise, these are not valid escapes. case '(': case '{': case '[': case '%': // GCC accepts these as extensions. We warn about them as such though. - if (!PP.getLangOptions().NoExtensions) { - PP.Diag(Loc, diag::ext_nonstandard_escape) - << std::string()+(char)ResultChar; - break; - } + PP.Diag(Loc, diag::ext_nonstandard_escape) + << std::string()+(char)ResultChar; + break; // FALL THROUGH. default: if (isgraph(ThisTokBuf[0])) diff --git a/lib/Parse/ParseStmt.cpp b/lib/Parse/ParseStmt.cpp index 35348d5852..c692a18ed9 100644 --- a/lib/Parse/ParseStmt.cpp +++ b/lib/Parse/ParseStmt.cpp @@ -1017,7 +1017,7 @@ Parser::OwningStmtResult Parser::ParseGotoStatement() { Res = Actions.ActOnGotoStmt(GotoLoc, Tok.getLocation(), Tok.getIdentifierInfo()); ConsumeToken(); - } else if (Tok.is(tok::star) && !getLang().NoExtensions) { + } else if (Tok.is(tok::star)) { // GNU indirect goto extension. Diag(Tok, diag::ext_gnu_indirect_goto); SourceLocation StarLoc = ConsumeToken(); diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 7549c9c69c..b46dd5547f 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -759,7 +759,6 @@ bool Sema::MergeFunctionDecl(FunctionDecl *New, Decl *OldD) { // from the types in the prototype. GCC then keeps the types from // the prototype. if (!getLangOptions().CPlusPlus && - !getLangOptions().NoExtensions && Old->hasPrototype() && !New->hasPrototype() && New->getType()->getAsFunctionProtoType() && Old->getNumParams() == New->getNumParams()) { |