aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Parse/ParseDecl.cpp1
-rw-r--r--test/Parser/declarators.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index cae0cbb8ec..0cf97d22de 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -1400,6 +1400,7 @@ void Parser::ParseFunctionDeclaratorIdentifierList(SourceLocation LParenLoc,
// Tok is known to be the first identifier in the list. Remember this
// identifier in ParamInfo.
+ ParamsSoFar.insert(Tok.getIdentifierInfo());
ParamInfo.push_back(DeclaratorChunk::ParamInfo(Tok.getIdentifierInfo(),
Tok.getLocation(), 0));
diff --git a/test/Parser/declarators.c b/test/Parser/declarators.c
index 410ac3686f..3e0380ea87 100644
--- a/test/Parser/declarators.c
+++ b/test/Parser/declarators.c
@@ -30,3 +30,5 @@ int test3(x,
atype /* expected-error {{unexpected type name 'atype': expected identifier}} */
) int x, atype; {}
+int test4(x, x) int x; {} /* expected-error {{redefinition of parameter 'x'}} */
+