diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-08-27 17:35:51 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-08-27 17:35:51 +0000 |
commit | 28c7843ec4ff22bcd8a0b1b8151a2b272090c2a7 (patch) | |
tree | 81486af074e90f06109c8c81cda66acbc4b7c606 /clang/lib/Sema/SemaCodeComplete.cpp | |
parent | 7b0d032d0c1a3bd3eae0166afbb828024a5b7ff2 (diff) | |
download | bcm5719-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.cpp | 16 |
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; |