diff options
-rw-r--r-- | lib/Sema/SemaCodeComplete.cpp | 5 | ||||
-rw-r--r-- | test/CodeCompletion/functions.cpp | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index cfec7b2374..b19fda216d 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -657,6 +657,11 @@ static void AddFunctionParameterChunks(ASTContext &Context, // Add the placeholder string. CCStr->AddPlaceholderChunk(PlaceholderStr.c_str()); } + + if (const FunctionProtoType *Proto + = Function->getType()->getAs<FunctionProtoType>()) + if (Proto->isVariadic()) + CCStr->AddPlaceholderChunk(", ..."); } /// \brief Add template parameter chunks to the given code completion string. diff --git a/test/CodeCompletion/functions.cpp b/test/CodeCompletion/functions.cpp index f04ef01d70..2e1bc6edf8 100644 --- a/test/CodeCompletion/functions.cpp +++ b/test/CodeCompletion/functions.cpp @@ -1,9 +1,9 @@ void f(int i, int j = 2, int k = 5); -void f(float x, float y); +void f(float x, float y...); void test() { :: // RUN: clang-cc -fsyntax-only -code-completion-at=%s:5:5 %s -o - | FileCheck -check-prefix=CC1 %s && // CHECK-CC1: f(<#int i#>{#, <#int j#>{#, <#int k#>#}#}) - // CHECK-CC1: f(<#float x#>, <#float y#>) + // CHECK-CC1: f(<#float x#>, <#float y#><#, ...#>) // RUN: true |