Lines Matching refs:VD
514 void Sema::checkAllowedCUDAInitializer(VarDecl *VD) { in checkAllowedCUDAInitializer() argument
515 if (VD->isInvalidDecl() || !VD->hasInit() || !VD->hasGlobalStorage()) in checkAllowedCUDAInitializer()
517 const Expr *Init = VD->getInit(); in checkAllowedCUDAInitializer()
518 if (VD->hasAttr<CUDADeviceAttr>() || VD->hasAttr<CUDAConstantAttr>() || in checkAllowedCUDAInitializer()
519 VD->hasAttr<CUDASharedAttr>()) { in checkAllowedCUDAInitializer()
525 isEmptyCudaConstructor(VD->getLocation(), CE->getConstructor()); in checkAllowedCUDAInitializer()
530 (VD->hasAttr<CUDADeviceAttr>() || VD->hasAttr<CUDAConstantAttr>())) { in checkAllowedCUDAInitializer()
531 auto *Init = VD->getInit(); in checkAllowedCUDAInitializer()
533 ((VD->getType()->isDependentType() || Init->isValueDependent()) && in checkAllowedCUDAInitializer()
534 VD->isConstexpr()) || in checkAllowedCUDAInitializer()
536 VD->getType()->isReferenceType()); in checkAllowedCUDAInitializer()
541 if (CXXRecordDecl *RD = VD->getType()->getAsCXXRecordDecl()) in checkAllowedCUDAInitializer()
543 isEmptyCudaDestructor(VD->getLocation(), RD->getDestructor()); in checkAllowedCUDAInitializer()
546 Diag(VD->getLocation(), VD->hasAttr<CUDASharedAttr>() in checkAllowedCUDAInitializer()
550 VD->setInvalidDecl(); in checkAllowedCUDAInitializer()
564 Diag(VD->getLocation(), diag::err_ref_bad_target_global_initializer) in checkAllowedCUDAInitializer()
567 VD->setInvalidDecl(); in checkAllowedCUDAInitializer()
634 void Sema::MaybeAddCUDAConstantAttr(VarDecl *VD) { in MaybeAddCUDAConstantAttr() argument
635 if (getLangOpts().CUDAIsDevice && VD->isConstexpr() && in MaybeAddCUDAConstantAttr()
636 (VD->isFileVarDecl() || VD->isStaticDataMember())) { in MaybeAddCUDAConstantAttr()
637 VD->addAttr(CUDAConstantAttr::CreateImplicit(getASTContext())); in MaybeAddCUDAConstantAttr()