[PATCH] D51507: Allow all supportable attributes to be used with #pragma clang attribute.

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 30 17:35:19 PDT 2018


rsmith marked an inline comment as done.
rsmith added inline comments.


================
Comment at: test/Misc/pragma-attribute-supported-attributes-list.test:27-32
+// CHECK-NEXT: CUDAConstant (SubjectMatchRule_variable)
+// CHECK-NEXT: CUDADevice (SubjectMatchRule_function, SubjectMatchRule_variable)
+// CHECK-NEXT: CUDAGlobal (SubjectMatchRule_function)
+// CHECK-NEXT: CUDAHost (SubjectMatchRule_function)
+// CHECK-NEXT: CUDALaunchBounds (SubjectMatchRule_objc_method, SubjectMatchRule_hasType_functionType)
+// CHECK-NEXT: CUDAShared (SubjectMatchRule_variable)
----------------
tra wrote:
> I don't see much practical use of this pragma for CUDA, but I also don't have any specific objections.
> LGTM.
> 
> Theoretically  we could use it to apply `__host__ __device__` attribute to some portable headers-only library so we could use it on device side. In practice, though, there usually will be few things that would have to remain host-only (anything involving file-io, for example) and we would need to be more selective in applying the attributes or have a way to remove them from a subset of objects later on. 
> 
> 
> 
> 
> 
The pragma is already flexible enough to allow selectively applying attributes to a subset of the declarations in its scope:

https://clang.llvm.org/docs/LanguageExtensions.html#subject-match-rules


Repository:
  rC Clang

https://reviews.llvm.org/D51507





More information about the cfe-commits mailing list