Simplified the code that handles overloaded

operator names.

llvm-svn: 121511
This commit is contained in:
Sean Callanan 2010-12-10 19:51:54 +00:00
parent f5799be4a8
commit a43f20df95
1 changed files with 13 additions and 17 deletions

View File

@ -908,29 +908,25 @@ IsOperator (const char *name, OverloadedOperatorKind &op_kind)
if (name == NULL || name[0] == '\0')
return false;
#define OPERATOR_SPACE_PREFIX "operator "
#define OPERATOR_NOSPACE_PREFIX "operator"
#define OPERATOR_PREFIX "operator"
const char *post_op_name = NULL;
bool no_space = false;
bool no_space = true;
if (!::strncmp(name, OPERATOR_SPACE_PREFIX, sizeof(OPERATOR_SPACE_PREFIX) - 1))
{
post_op_name = name + sizeof(OPERATOR_SPACE_PREFIX) - 1;
}
else if (!::strncmp(name, OPERATOR_NOSPACE_PREFIX, sizeof(OPERATOR_NOSPACE_PREFIX) - 1))
{
post_op_name = name + sizeof(OPERATOR_NOSPACE_PREFIX) - 1;
no_space = true;
}
#undef OPERATOR_SPACE_PREFIX
#undef OPERATOR_NOSPACE_PREFIX
if (!post_op_name)
if (!::strncmp(name, OPERATOR_PREFIX, sizeof(OPERATOR_PREFIX) - 1))
post_op_name = name + sizeof(OPERATOR_PREFIX) - 1;
else
return false;
if (post_op_name[0] == ' ')
{
post_op_name++;
no_space = false;
}
#undef OPERATOR_PREFIX
// This is an operator, set the overloaded operator kind to invalid
// in case this is a conversion operator...
op_kind = NUM_OVERLOADED_OPERATORS;