[PATCH] D108111: [CodeComplete] Only complete attributes that match the current LangOpts

2021-08-19 Thread Sam McCall via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGa1ebae08f4b2: [CodeComplete] Only complete attributes that 
match the current LangOpts (authored by sammccall).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108111/new/

https://reviews.llvm.org/D108111

Files:
  clang/lib/Sema/SemaCodeComplete.cpp
  clang/test/CodeCompletion/attr.cpp


Index: clang/test/CodeCompletion/attr.cpp
===
--- clang/test/CodeCompletion/attr.cpp
+++ clang/test/CodeCompletion/attr.cpp
@@ -7,11 +7,14 @@
 // STD-NOT: COMPLETION: __used__
 // STD: COMPLETION: _Clang::__convergent__
 // STD: COMPLETION: carries_dependency
+// STD-NOT: COMPLETION: clang::called_once
 // STD: COMPLETION: clang::convergent
 // STD-NOT: COMPLETION: convergent
 // STD-NOT: COMPLETION: gnu::__used__
 // STD: COMPLETION: gnu::used
 // STD-NOT: COMPLETION: used
+// RUN: %clang_cc1 -code-completion-at=%s:1:9 -xobjective-c++ %s | FileCheck 
--check-prefix=STD-OBJC %s
+// STD-OBJC: COMPLETION: clang::called_once
 // RUN: %clang_cc1 -code-completion-at=%s:1:14 %s | FileCheck 
--check-prefix=STD-NS %s
 // STD-NS-NOT: COMPLETION: __used__
 // STD-NS-NOT: COMPLETION: carries_dependency
@@ -20,12 +23,12 @@
 // STD-NS-NOT: COMPLETION: gnu::used
 // STD-NS: COMPLETION: used
 int b [[__gnu__::used]];
-// RUN: %clang_cc1 -code-completion-at=%s:22:18 %s | FileCheck 
--check-prefix=STD-NSU %s
+// RUN: %clang_cc1 -code-completion-at=%s:25:18 %s | FileCheck 
--check-prefix=STD-NSU %s
 // STD-NSU: COMPLETION: __used__
 // STD-NSU-NOT: COMPLETION: used
 
 int c [[using gnu: used]];
-// RUN: %clang_cc1 -code-completion-at=%s:27:15 %s | FileCheck 
--check-prefix=STD-USING %s
+// RUN: %clang_cc1 -code-completion-at=%s:30:15 %s | FileCheck 
--check-prefix=STD-USING %s
 // STD-USING: COMPLETION: __gnu__
 // STD-USING: COMPLETION: _Clang
 // STD-USING-NOT: COMPLETION: carries_dependency
@@ -33,10 +36,10 @@
 // STD-USING-NOT: COMPLETION: clang::
 // STD-USING-NOT: COMPLETION: gnu::
 // STD-USING: COMPLETION: gnu
-// RUN: %clang_cc1 -code-completion-at=%s:27:20 %s | FileCheck 
--check-prefix=STD-NS %s
+// RUN: %clang_cc1 -code-completion-at=%s:30:20 %s | FileCheck 
--check-prefix=STD-NS %s
 
 int d __attribute__((used));
-// RUN: %clang_cc1 -code-completion-at=%s:38:22 %s | FileCheck 
--check-prefix=GNU %s
+// RUN: %clang_cc1 -code-completion-at=%s:41:22 %s | FileCheck 
--check-prefix=GNU %s
 // GNU: COMPLETION: __carries_dependency__
 // GNU: COMPLETION: __convergent__
 // GNU-NOT: COMPLETION: __gnu__::__used__
@@ -51,12 +54,12 @@
 #pragma clang attribute push (__attribute__((internal_linkage)), 
apply_to=variable)
 int e;
 #pragma clang attribute pop
-// RUN: %clang_cc1 -code-completion-at=%s:51:46 %s | FileCheck 
--check-prefix=PRAGMA %s
+// RUN: %clang_cc1 -code-completion-at=%s:54:46 %s | FileCheck 
--check-prefix=PRAGMA %s
 // PRAGMA: internal_linkage
 
 #ifdef MS_EXT
 int __declspec(thread) f;
-// RUN: %clang_cc1 -fms-extensions -DMS_EXT -code-completion-at=%s:58:16 %s | 
FileCheck --check-prefix=DS %s
+// RUN: %clang_cc1 -fms-extensions -DMS_EXT -code-completion-at=%s:61:16 %s | 
FileCheck --check-prefix=DS %s
 // DS-NOT: COMPLETION: __convergent__
 // DS-NOT: COMPLETION: __used__
 // DS-NOT: COMPLETION: clang::convergent
@@ -66,7 +69,7 @@
 // DS: COMPLETION: uuid
 
 [uuid("123e4567-e89b-12d3-a456-426614174000")] struct g;
-// RUN: %clang_cc1 -fms-extensions -DMS_EXT -code-completion-at=%s:68:2 %s | 
FileCheck --check-prefix=MS %s
+// RUN: %clang_cc1 -fms-extensions -DMS_EXT -code-completion-at=%s:71:2 %s | 
FileCheck --check-prefix=MS %s
 // MS-NOT: COMPLETION: __uuid__
 // MS-NOT: COMPLETION: clang::convergent
 // MS-NOT: COMPLETION: convergent
@@ -80,9 +83,9 @@
   {}
 }
 // FIXME: support for omp attributes would be nice.
-// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:79:5 %s | FileCheck 
--check-prefix=OMP-NS --allow-empty %s
+// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:82:5 %s | FileCheck 
--check-prefix=OMP-NS --allow-empty %s
 // OMP-NS-NOT: omp
-// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:79:10 %s | FileCheck 
--check-prefix=OMP-ATTR --allow-empty %s
+// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:82:10 %s | FileCheck 
--check-prefix=OMP-ATTR --allow-empty %s
 // OMP-ATTR-NOT: sequence
-// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:79:19 %s | FileCheck 
--check-prefix=OMP-NESTED --allow-empty %s
+// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:82:19 %s | FileCheck 
--check-prefix=OMP-NESTED --allow-empty %s
 // OMP-NESTED-NOT: directive
Index: clang/lib/Sema/SemaCodeComplete.cpp
===
--- clang/lib/Sema/SemaCodeComplete.cpp
+++ clang/lib/Sema/SemaCodeComplete.cpp
@@ -4389,7 +4389,8 @@
   auto AddCompletions = [&](const 

[PATCH] D108111: [CodeComplete] Only complete attributes that match the current LangOpts

2021-08-18 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision.
aaron.ballman added a comment.
This revision is now accepted and ready to land.

LGTM!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108111/new/

https://reviews.llvm.org/D108111

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D108111: [CodeComplete] Only complete attributes that match the current LangOpts

2021-08-16 Thread Sam McCall via Phabricator via cfe-commits
sammccall created this revision.
sammccall added a reviewer: aaron.ballman.
sammccall requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added subscribers: cfe-commits, sstefan1.
Herald added a project: clang.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D108111

Files:
  clang/lib/Sema/SemaCodeComplete.cpp
  clang/test/CodeCompletion/attr.cpp


Index: clang/test/CodeCompletion/attr.cpp
===
--- clang/test/CodeCompletion/attr.cpp
+++ clang/test/CodeCompletion/attr.cpp
@@ -7,11 +7,14 @@
 // STD-NOT: COMPLETION: __used__
 // STD: COMPLETION: _Clang::__convergent__
 // STD: COMPLETION: carries_dependency
+// STD-NOT: COMPLETION: clang::called_once
 // STD: COMPLETION: clang::convergent
 // STD-NOT: COMPLETION: convergent
 // STD-NOT: COMPLETION: gnu::__used__
 // STD: COMPLETION: gnu::used
 // STD-NOT: COMPLETION: used
+// RUN: %clang_cc1 -code-completion-at=%s:1:9 -xobjective-c++ %s | FileCheck 
--check-prefix=STD-OBJC %s
+// STD-OBJC: COMPLETION: clang::called_once
 // RUN: %clang_cc1 -code-completion-at=%s:1:14 %s | FileCheck 
--check-prefix=STD-NS %s
 // STD-NS-NOT: COMPLETION: __used__
 // STD-NS-NOT: COMPLETION: carries_dependency
@@ -20,12 +23,12 @@
 // STD-NS-NOT: COMPLETION: gnu::used
 // STD-NS: COMPLETION: used
 int b [[__gnu__::used]];
-// RUN: %clang_cc1 -code-completion-at=%s:22:18 %s | FileCheck 
--check-prefix=STD-NSU %s
+// RUN: %clang_cc1 -code-completion-at=%s:25:18 %s | FileCheck 
--check-prefix=STD-NSU %s
 // STD-NSU: COMPLETION: __used__
 // STD-NSU-NOT: COMPLETION: used
 
 int c [[using gnu: used]];
-// RUN: %clang_cc1 -code-completion-at=%s:27:15 %s | FileCheck 
--check-prefix=STD-USING %s
+// RUN: %clang_cc1 -code-completion-at=%s:30:15 %s | FileCheck 
--check-prefix=STD-USING %s
 // STD-USING: COMPLETION: __gnu__
 // STD-USING: COMPLETION: _Clang
 // STD-USING-NOT: COMPLETION: carries_dependency
@@ -33,10 +36,10 @@
 // STD-USING-NOT: COMPLETION: clang::
 // STD-USING-NOT: COMPLETION: gnu::
 // STD-USING: COMPLETION: gnu
-// RUN: %clang_cc1 -code-completion-at=%s:27:20 %s | FileCheck 
--check-prefix=STD-NS %s
+// RUN: %clang_cc1 -code-completion-at=%s:30:20 %s | FileCheck 
--check-prefix=STD-NS %s
 
 int d __attribute__((used));
-// RUN: %clang_cc1 -code-completion-at=%s:38:22 %s | FileCheck 
--check-prefix=GNU %s
+// RUN: %clang_cc1 -code-completion-at=%s:41:22 %s | FileCheck 
--check-prefix=GNU %s
 // GNU: COMPLETION: __carries_dependency__
 // GNU: COMPLETION: __convergent__
 // GNU-NOT: COMPLETION: __gnu__::__used__
@@ -51,12 +54,12 @@
 #pragma clang attribute push (__attribute__((internal_linkage)), 
apply_to=variable)
 int e;
 #pragma clang attribute pop
-// RUN: %clang_cc1 -code-completion-at=%s:51:46 %s | FileCheck 
--check-prefix=PRAGMA %s
+// RUN: %clang_cc1 -code-completion-at=%s:54:46 %s | FileCheck 
--check-prefix=PRAGMA %s
 // PRAGMA: internal_linkage
 
 #ifdef MS_EXT
 int __declspec(thread) f;
-// RUN: %clang_cc1 -fms-extensions -DMS_EXT -code-completion-at=%s:58:16 %s | 
FileCheck --check-prefix=DS %s
+// RUN: %clang_cc1 -fms-extensions -DMS_EXT -code-completion-at=%s:61:16 %s | 
FileCheck --check-prefix=DS %s
 // DS-NOT: COMPLETION: __convergent__
 // DS-NOT: COMPLETION: __used__
 // DS-NOT: COMPLETION: clang::convergent
@@ -66,7 +69,7 @@
 // DS: COMPLETION: uuid
 
 [uuid("123e4567-e89b-12d3-a456-426614174000")] struct g;
-// RUN: %clang_cc1 -fms-extensions -DMS_EXT -code-completion-at=%s:68:2 %s | 
FileCheck --check-prefix=MS %s
+// RUN: %clang_cc1 -fms-extensions -DMS_EXT -code-completion-at=%s:71:2 %s | 
FileCheck --check-prefix=MS %s
 // MS-NOT: COMPLETION: __uuid__
 // MS-NOT: COMPLETION: clang::convergent
 // MS-NOT: COMPLETION: convergent
@@ -80,9 +83,9 @@
   {}
 }
 // FIXME: support for omp attributes would be nice.
-// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:79:5 %s | FileCheck 
--check-prefix=OMP-NS --allow-empty %s
+// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:82:5 %s | FileCheck 
--check-prefix=OMP-NS --allow-empty %s
 // OMP-NS-NOT: omp
-// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:79:10 %s | FileCheck 
--check-prefix=OMP-ATTR --allow-empty %s
+// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:82:10 %s | FileCheck 
--check-prefix=OMP-ATTR --allow-empty %s
 // OMP-ATTR-NOT: sequence
-// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:79:19 %s | FileCheck 
--check-prefix=OMP-NESTED --allow-empty %s
+// RUN: %clang_cc1 -fopenmp -code-completion-at=%s:82:19 %s | FileCheck 
--check-prefix=OMP-NESTED --allow-empty %s
 // OMP-NESTED-NOT: directive
Index: clang/lib/Sema/SemaCodeComplete.cpp
===
--- clang/lib/Sema/SemaCodeComplete.cpp
+++ clang/lib/Sema/SemaCodeComplete.cpp
@@ -4389,7 +4389,8 @@
   auto AddCompletions = [&](const ParsedAttrInfo ) {
 if (A.IsTargetSpecific &&