summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaCodeComplete.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-08-27 17:35:51 +0000
committerDouglas Gregor <dgregor@apple.com>2010-08-27 17:35:51 +0000
commit28c7843ec4ff22bcd8a0b1b8151a2b272090c2a7 (patch)
tree81486af074e90f06109c8c81cda66acbc4b7c606 /clang/lib/Sema/SemaCodeComplete.cpp
parent7b0d032d0c1a3bd3eae0166afbb828024a5b7ff2 (diff)
downloadbcm5719-llvm-28c7843ec4ff22bcd8a0b1b8151a2b272090c2a7.tar.gz
bcm5719-llvm-28c7843ec4ff22bcd8a0b1b8151a2b272090c2a7.zip
Suggest "const" and "volatile" code completions after a function
declarator, the very definition of "low-hanging fruit". llvm-svn: 112274
Diffstat (limited to 'clang/lib/Sema/SemaCodeComplete.cpp')
-rw-r--r--clang/lib/Sema/SemaCodeComplete.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp
index 384cf524c9e..57ec3297dc0 100644
--- a/clang/lib/Sema/SemaCodeComplete.cpp
+++ b/clang/lib/Sema/SemaCodeComplete.cpp
@@ -2761,6 +2761,22 @@ void Sema::CodeCompleteTag(Scope *S, unsigned TagSpec) {
Results.data(),Results.size());
}
+void Sema::CodeCompleteTypeQualifiers(DeclSpec &DS) {
+ ResultBuilder Results(*this);
+ Results.EnterNewScope();
+ if (!(DS.getTypeQualifiers() & DeclSpec::TQ_const))
+ Results.AddResult("const");
+ if (!(DS.getTypeQualifiers() & DeclSpec::TQ_volatile))
+ Results.AddResult("volatile");
+ if (getLangOptions().C99 &&
+ !(DS.getTypeQualifiers() & DeclSpec::TQ_restrict))
+ Results.AddResult("restrict");
+ Results.ExitScope();
+ HandleCodeCompleteResults(this, CodeCompleter,
+ CodeCompletionContext::CCC_TypeQualifiers,
+ Results.data(), Results.size());
+}
+
void Sema::CodeCompleteCase(Scope *S) {
if (getCurFunction()->SwitchStack.empty() || !CodeCompleter)
return;
OpenPOWER on IntegriCloud