reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaDecl.cpp
12617   if (!VD)
12621   if (VD->hasGlobalStorage() && VD->isThisDeclarationADefinition() &&
12621   if (VD->hasGlobalStorage() && VD->isThisDeclarationADefinition() &&
12622       !inTemplateInstantiation() && !VD->hasAttr<SectionAttr>()) {
12624       VD->addAttr(PragmaClangBSSSectionAttr::CreateImplicit(
12629       VD->addAttr(PragmaClangDataSectionAttr::CreateImplicit(
12634       VD->addAttr(PragmaClangRodataSectionAttr::CreateImplicit(
12639       VD->addAttr(PragmaClangRelroSectionAttr::CreateImplicit(
12651   checkAttributesAfterMerging(*this, *VD);
12659     if (VD->getTLSKind() && !hasDependentAlignment(VD) &&
12659     if (VD->getTLSKind() && !hasDependentAlignment(VD) &&
12660         !VD->isInvalidDecl()) {
12662       if (Context.getDeclAlign(VD) > MaxAlignChars) {
12663         Diag(VD->getLocation(), diag::err_tls_var_aligned_over_maximum)
12664           << (unsigned)Context.getDeclAlign(VD).getQuantity() << VD
12664           << (unsigned)Context.getDeclAlign(VD).getQuantity() << VD
12670   if (VD->isStaticLocal()) {
12671     CheckStaticLocalForDllExport(VD);
12673     if (dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod())) {
12683         if (VD->hasAttr<CUDASharedAttr>())
12685         if (VD->getType().isConstQualified() &&
12686             !(VD->hasAttr<CUDADeviceAttr>() || VD->hasAttr<CUDAConstantAttr>()))
12686             !(VD->hasAttr<CUDADeviceAttr>() || VD->hasAttr<CUDAConstantAttr>()))
12688         if (CUDADiagIfDeviceCode(VD->getLocation(),
12691           VD->setInvalidDecl();
12702     checkAllowedCUDAInitializer(VD);
12705   const InheritableAttr *DLLAttr = getDLLAttr(VD);
12709     if (VD->isStaticDataMember() && VD->isOutOfLine() &&
12709     if (VD->isStaticDataMember() && VD->isOutOfLine() &&
12710         VD->isThisDeclarationADefinition()) {
12714         cast<CXXRecordDecl>(VD->getFirstDecl()->getDeclContext());
12719       Diag(VD->getLocation(),
12725         VD->setInvalidDecl();
12731   if (DLLAttr && VD->getTLSKind()) {
12732     auto *F = dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod());
12734       assert(VD->isStaticLocal());
12739       Diag(VD->getLocation(), diag::err_attribute_dll_thread_local) << VD
12739       Diag(VD->getLocation(), diag::err_attribute_dll_thread_local) << VD
12741       VD->setInvalidDecl();
12745   if (UsedAttr *Attr = VD->getAttr<UsedAttr>()) {
12746     if (!Attr->isInherited() && !VD->isThisDeclarationADefinition()) {
12748       VD->dropAttr<UsedAttr>();
12752   const DeclContext *DC = VD->getDeclContext();
12755   if (DC->getRedeclContext()->isFileContext() && VD->isExternallyVisible())
12756     AddPushedVisibilityAttribute(VD);
12759   if (VD->isFileVarDecl() && !isa<VarTemplatePartialSpecializationDecl>(VD))
12759   if (VD->isFileVarDecl() && !isa<VarTemplatePartialSpecializationDecl>(VD))
12760     MarkUnusedFileScopedDecl(VD);
12764   if (!VD->hasAttr<TypeTagForDatatypeAttr>() ||
12765       !VD->getType()->isIntegralOrEnumerationType())
12769     const Expr *MagicValueExpr = VD->getInit();