summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2011-10-15 01:15:07 +0000
committerSean Callanan <scallanan@apple.com>2011-10-15 01:15:07 +0000
commit6d9f5db46801a5fb8d17388216820ed7cee5accb (patch)
treeba5b8c71bcd3e2a0a8618139ed8ab5904ecde3a1
parent2730a0099a90fef8639f2e72cf5bd30d1ed3878d (diff)
downloadbcm5719-llvm-6d9f5db46801a5fb8d17388216820ed7cee5accb.tar.gz
bcm5719-llvm-6d9f5db46801a5fb8d17388216820ed7cee5accb.zip
Handled the call operator properly.
llvm-svn: 142033
-rw-r--r--lldb/source/Symbol/ClangASTContext.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp
index 8ee022937c4..c4712cd9ca3 100644
--- a/lldb/source/Symbol/ClangASTContext.cpp
+++ b/lldb/source/Symbol/ClangASTContext.cpp
@@ -1378,20 +1378,25 @@ IsOperator (const char *name, OverloadedOperatorKind &op_kind)
}
static inline bool
-check_op_param (bool unary, bool binary, uint32_t num_params)
+check_op_param (uint32_t op_kind, bool unary, bool binary, uint32_t num_params)
{
+ // Special-case call since it can take any number of operands
+ if(op_kind == OO_Call)
+ return true;
+
// The parameter count doens't include "this"
if (num_params == 0)
return unary;
if (num_params == 1)
return binary;
+ else
return false;
}
-
+;
bool
ClangASTContext::CheckOverloadedOperatorKindParameterCount (uint32_t op_kind, uint32_t num_params)
{
-#define OVERLOADED_OPERATOR(Name,Spelling,Token,Unary,Binary,MemberOnly) case OO_##Name: return check_op_param (Unary, Binary, num_params);
+#define OVERLOADED_OPERATOR(Name,Spelling,Token,Unary,Binary,MemberOnly) case OO_##Name: return check_op_param (op_kind, Unary, Binary, num_params);
switch (op_kind)
{
#include "clang/Basic/OperatorKinds.def"
OpenPOWER on IntegriCloud