tra added inline comments.
================ Comment at: clang/lib/AST/ASTContext.cpp:12300 + (D->hasAttr<CUDAGlobalAttr>() && + GetGVALinkageForFunction(cast<FunctionDecl>(D), + /*IgnoreCUDAGlobalAttr=*/true) == ---------------- yaxunl wrote: > tra wrote: > > Perhaps we don't need to change the public AST API and plumb > > `IgnoreCUDAGlobalAttr` through. > > We cold create CUDA-aware static version of `GetGVALinkageForCudaKernel` > > instead, which would call `adjustGVALinkageForExternalDefinitionKind(..., > > adjustGVALinkageForAttributes(IgnoreCUDAGlobalAttr=true))`. > We could have a static function but it would be > GetGVALinkageForCUDAKernelWithoutGlobalAttr since we need to know the linkage > of the kernel assuming it has no `__global__` attribute. > > If you think it is OK I can make the change. No point making public what's of no use to anybody other than this particular instance. To think of it, we don't even need a function and could just do ``` if (D->hasAttr<CUDAGlobalAttr>() ) { bool OriginalKernelLinkage = adjustGVALinkageForExternalDefinitionKind(..., adjustGVALinkageForAttributes(IgnoreCUDAGlobalAttr=true)); return OriginalKernelLinkage == GVA_Internal; } return (IsStaticVar &&....) ``` CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124189/new/ https://reviews.llvm.org/D124189 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits