In a declarator, consider an identifier a constructor only if it is followed by '('.
Previously:
class C {
int C; // Declarator::SetConstructor was called here.
};
llvm-svn: 58880
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index 2b18be0..39d3acc 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -1363,7 +1363,8 @@
// Determine whether this identifier is a C++ constructor name or
// a normal identifier.
if (getLang().CPlusPlus &&
- Actions.isCurrentClassName(*Tok.getIdentifierInfo(), CurScope))
+ Actions.isCurrentClassName(*Tok.getIdentifierInfo(), CurScope) &&
+ NextToken().is(tok::l_paren))
D.SetConstructor(Actions.isTypeName(*Tok.getIdentifierInfo(), CurScope),
Tok.getIdentifierInfo(), Tok.getLocation());
else