Add support for -fno-operator-names, patch by Bill.

llvm-svn: 39245
This commit is contained in:
Chris Lattner
2006-12-04 07:48:37 +00:00
parent 3034f66584
commit 3e7592ea78
2 changed files with 7 additions and 1 deletions

View File

@@ -233,6 +233,11 @@ LangStd("std", cl::desc("Language standard to compile for"),
"extensions (default for C++)"),
clEnumValEnd));
static cl::opt<bool>
NoOperatorNames("fno-operator-names",
cl::desc("Do not treat C++ operator name keywords as "
"synonyms for operators"));
// FIXME: add:
// -ansi
// -trigraphs
@@ -265,6 +270,7 @@ static void InitializeLanguageStandard(LangOptions &Options) {
case lang_gnucxx98:
case lang_cxx98:
Options.CPlusPlus = 1;
Options.CXXOperatorNames = !NoOperatorNames;
// FALL THROUGH.
case lang_gnu99:
case lang_c99:

View File

@@ -131,7 +131,7 @@ void IdentifierTable::AddKeywords(const LangOptions &LangOpts) {
#define PPKEYWORD(NAME) \
AddPPKeyword(tok::pp_##NAME, #NAME, strlen(#NAME), *this);
#define CXX_KEYWORD_OPERATOR(NAME, ALIAS) \
if (LangOpts.CPlusPlus) \
if (LangOpts.CXXOperatorNames) \
AddCXXOperatorKeyword(#NAME, strlen(#NAME), tok::ALIAS, *this);
#define OBJC1_AT_KEYWORD(NAME) \
if (LangOpts.ObjC1) \