Lines Matching defs:NewVD

3100     auto *NewVD = cast<VarDecl>(New);
3106 (NewVD->hasInit() || NewVD->isThisDeclarationADefinition()))
3107 InitDecl = NewVD;
3109 if (InitDecl == NewVD) {
3114 diagnoseMissingConstinit(*this, NewVD, OldConstInit,
3120 if (InitDecl && InitDecl != NewVD) {
3123 NewVD->dropAttr<ConstInitAttr>();
4430 static bool mergeTypeWithPrevious(Sema &S, VarDecl *NewVD, VarDecl *OldVD,
4448 return NewVD->isPreviousDeclInSameBlockScope() ||
4450 !NewVD->getLexicalDeclContext()->isFunctionOrMethod());
4455 OldVD->getLexicalDeclContext() == NewVD->getLexicalDeclContext();
5703 if (VarDecl *NewVD = dyn_cast<VarDecl>(Anon)) {
5704 if (getLangOpts().CPlusPlus && NewVD->isStaticLocal()) {
5708 getCurrentMangleNumberContext(NewVD->getDeclContext());
5711 NewVD, MCtx->getManglingNumber(
5712 NewVD, getMSManglingNumber(getLangOpts(), S)));
5713 Context.setStaticLocalNumber(NewVD, MCtx->getStaticLocalNumber(NewVD));
7221 static bool diagnoseOpenCLTypes(Sema &Se, VarDecl *NewVD) {
7222 DeclContext *DC = NewVD->getDeclContext();
7223 QualType R = NewVD->getType();
7229 Se.Diag(NewVD->getLocation(),
7232 NewVD->setInvalidDecl();
7241 if (NewVD->hasGlobalStorage() && !NewVD->isStaticLocal()) {
7243 Se.Diag(NewVD->getLocation(),
7246 NewVD->setInvalidDecl();
7259 Se.Diag(NewVD->getLocation(), diag::err_opencl_function_pointer)
7261 NewVD->setInvalidDecl();
7273 Se.Diag(NewVD->getLocation(), diag::err_opencl_half_declaration) << R;
7274 NewVD->setInvalidDecl();
7284 Se.Diag(NewVD->getBeginLoc(), diag::err_event_t_addr_space_qual);
7285 NewVD->setInvalidDecl();
7296 Se.Diag(NewVD->getLocation(), diag::err_wrong_sampler_addressspace);
7297 NewVD->setInvalidDecl();
7306 Se.Diag(NewVD->getLocation(), diag::err_opencl_nonconst_global_sampler);
7307 NewVD->setInvalidDecl();
7309 if (NewVD->isInvalidDecl())
7453 VarDecl *NewVD = nullptr;
7457 NewVD = VarDecl::Create(Context, DC, D.getBeginLoc(), D.getIdentifierLoc(),
7461 ParsingInitForAutoVars.insert(NewVD);
7464 NewVD->setInvalidDecl();
7466 if (NewVD->getType().hasNonTrivialToPrimitiveDestructCUnion() &&
7467 NewVD->hasLocalStorage())
7468 checkNonTrivialCUnion(NewVD->getType(), NewVD->getLocation(),
7630 NewVD = cast<VarDecl>(Res.get());
7633 NewVD = DecompositionDecl::Create(Context, DC, D.getBeginLoc(),
7637 NewVD = VarDecl::Create(Context, DC, D.getBeginLoc(),
7644 TemplateParams, NewVD);
7645 NewVD->setDescribedVarTemplate(NewTemplate);
7651 ParsingInitForAutoVars.insert(NewVD);
7654 NewVD->setInvalidDecl();
7659 SetNestedNameSpecifier(*this, NewVD, D);
7668 NewVD->setTemplateParameterListsInfo(
7685 NewVD->setInlineSpecified();
7691 NewVD->setLexicalDeclContext(CurContext);
7700 NewVD->setLocalExternDecl();
7711 if (NewVD->hasLocalStorage() &&
7728 NewVD->setTSCSpec(TSCS);
7733 NewVD->setTSCSpec(TSCS);
7747 NewVD->setConstexpr(true);
7751 if (NewVD->isStaticDataMember() &&
7754 NewVD->setImplicitlyInline();
7758 if (!NewVD->hasGlobalStorage())
7762 NewVD->addAttr(
7778 !NewVD->getType().isConstQualified()) {
7789 Diag(NewVD->getLocation(), diag::err_module_private_specialization)
7794 Diag(NewVD->getLocation(), diag::err_module_private_specialization)
7797 else if (NewVD->hasLocalStorage())
7798 Diag(NewVD->getLocation(), diag::err_module_private_local)
7799 << 0 << NewVD
7804 NewVD->setModulePrivate();
7813 deduceOpenCLAddressSpace(NewVD);
7821 NewVD->setInvalidDecl();
7828 if (const auto *ATy = dyn_cast<ArrayType>(NewVD->getType())) {
7830 !NewVD->hasLocalStorage()) {
7832 NewVD->getType(), Context.getLangASForBuiltinAddressSpace(1));
7833 NewVD->setType(Type);
7838 ProcessDeclAttributes(S, NewVD, D);
7846 copyAttrFromTypedefToDecl<AllocSizeAttr>(*this, NewVD, TT);
7851 ((getLangOpts().CUDA && DeclAttrsMatchCUDAMode(getLangOpts(), NewVD)) ||
7853 OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(NewVD))))
7864 (NewVD->hasAttr<CUDASharedAttr>() ||
7865 NewVD->hasAttr<CUDAConstantAttr>())) {
7866 NewVD->setStorageClass(SC_Static);
7873 assert(!NewVD->hasAttr<DLLImportAttr>() ||
7874 NewVD->getAttr<DLLImportAttr>()->isInherited() ||
7875 NewVD->isStaticDataMember() || NewVD->getStorageClass() != SC_None);
7879 if (getLangOpts().ObjCAutoRefCount && ObjC().inferObjCARCLifetime(NewVD))
7880 NewVD->setInvalidDecl();
7906 if (DeclAttrsMatchCUDAMode(getLangOpts(), NewVD)) {
7922 NewVD->setInvalidDecl(true);
7926 NewVD->addAttr(AsmLabelAttr::Create(Context, Label,
7931 ExtnameUndeclaredIdentifiers.find(NewVD->getIdentifier());
7933 if (isDeclExternC(NewVD)) {
7934 NewVD->addAttr(I->second);
7937 Diag(NewVD->getLocation(), diag::warn_redefine_extname_not_applied)
7938 << /*Variable*/1 << NewVD;
7944 ? getShadowedDeclaration(NewVD, Previous)
7950 FilterLookupForScope(Previous, OriginalDC, S, shouldConsiderLinkage(NewVD),
7958 NewVD->isLocalVarDecl() && NewVD->hasExternalStorage())
7959 NewVD->setPreviousDeclInSameBlockScope(
7964 D.setRedeclaration(CheckVariableDeclaration(NewVD, Previous));
7968 !NewVD->isInvalidDecl() && CheckMemberSpecialization(NewVD, Previous))
7969 NewVD->setInvalidDecl();
7978 Diag(NewVD->getLocation(), diag::err_nonstatic_member_out_of_line)
7981 NewVD->setInvalidDecl();
7989 NewVD->setInvalidDecl();
7993 D.setRedeclaration(CheckVariableDeclaration(NewVD, Previous));
7995 // CheckVariableDeclaration will set NewVD as invalid if something is in
7999 if (NewVD->getType()->isWebAssemblyTableType() && NewVD->isInvalidDecl())
8004 NewVD->getPreviousDecl()
8005 ? NewVD->getPreviousDecl()->getDescribedVarTemplate()
8019 NewVD->setInvalidDecl();
8031 CheckShadow(NewVD, ShadowedDecl, Previous);
8033 ProcessPragmaWeak(S, NewVD);
8037 if (NewVD->isFirstDecl() && !NewVD->isInvalidDecl() &&
8038 isIncompleteDeclExternC(*this, NewVD))
8039 RegisterLocallyScopedExternCDecl(NewVD, S);
8041 if (getLangOpts().CPlusPlus && NewVD->isStaticLocal()) {
8045 getCurrentMangleNumberContext(NewVD->getDeclContext());
8048 NewVD, MCtx->getManglingNumber(
8049 NewVD, getMSManglingNumber(getLangOpts(), S)));
8050 Context.setStaticLocalNumber(NewVD, MCtx->getStaticLocalNumber(NewVD));
8056 NewVD->getDeclContext()->getRedeclContext()->isTranslationUnit() &&
8057 !getLangOpts().Freestanding && !NewVD->getDescribedVarTemplate()) {
8066 else if (NewVD->hasExternalFormalLinkage())
8072 checkDLLAttributeRedeclaration(*this, Prev, NewVD, IsMemberSpecialization,
8077 if (NewVD->isInvalidDecl())
8083 if (IsMemberSpecialization && !NewVD->isInvalidDecl())
8084 CompleteMemberSpecialization(NewVD, Previous);
8086 emitReadOnlyPlacementAttrWarning(*this, NewVD);
8088 return NewVD;
8503 void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {
8505 if (NewVD->isInvalidDecl())
8508 QualType T = NewVD->getType();
8514 if (NewVD->hasAttrs())
8515 CheckAlignasUnderalignment(NewVD);
8518 Diag(NewVD->getLocation(), diag::err_statically_allocated_object)
8519 << FixItHint::CreateInsertion(NewVD->getLocation(), "*");
8521 NewVD->setType(T);
8528 if (!getLangOpts().OpenCL && NewVD->hasLocalStorage() &&
8530 Diag(NewVD->getLocation(), diag::err_as_qualified_auto_decl) << 0;
8531 NewVD->setInvalidDecl();
8540 NewVD->isStaticLocal()) {
8541 Diag(NewVD->getLocation(), diag::err_static_function_scope);
8542 NewVD->setInvalidDecl();
8547 if (!diagnoseOpenCLTypes(*this, NewVD))
8551 if (NewVD->hasAttr<BlocksAttr>()) {
8552 Diag(NewVD->getLocation(), diag::err_opencl_block_storage_type);
8560 Diag(NewVD->getLocation(), diag::err_opencl_invalid_block_declaration)
8562 NewVD->setInvalidDecl();
8565 if (NewVD->hasExternalStorage()) {
8566 Diag(NewVD->getLocation(), diag::err_opencl_extern_block_declaration);
8567 NewVD->setInvalidDecl();
8573 if (NewVD->isFileVarDecl() || NewVD->isStaticLocal() ||
8574 NewVD->hasExternalStorage()) {
8580 int Scope = NewVD->isStaticLocal() | NewVD->hasExternalStorage() << 1;
8582 Diag(NewVD->getLocation(), diag::err_opencl_global_invalid_addr_space)
8585 Diag(NewVD->getLocation(), diag::err_opencl_global_invalid_addr_space)
8587 NewVD->setInvalidDecl();
8592 Diag(NewVD->getLocation(), diag::err_opencl_function_variable)
8594 NewVD->setInvalidDecl();
8604 Diag(NewVD->getLocation(), diag::err_opencl_function_variable)
8607 Diag(NewVD->getLocation(), diag::err_opencl_function_variable)
8609 NewVD->setInvalidDecl();
8617 Diag(NewVD->getLocation(), diag::err_opencl_addrspace_scope)
8620 Diag(NewVD->getLocation(), diag::err_opencl_addrspace_scope)
8622 NewVD->setInvalidDecl();
8631 Diag(NewVD->getLocation(), diag::err_as_qualified_auto_decl) << 1;
8632 NewVD->setInvalidDecl();
8638 if (NewVD->hasLocalStorage() && T.isObjCGCWeak()
8639 && !NewVD->hasAttr<BlocksAttr>()) {
8641 Diag(NewVD->getLocation(), diag::warn_gc_attribute_weak_on_local);
8644 Diag(NewVD->getLocation(), diag::warn_attribute_weak_on_local);
8652 Diag(NewVD->getLocation(), diag::err_wasm_table_in_function);
8653 NewVD->setInvalidDecl();
8656 if (NewVD->getStorageClass() != SC_Static) {
8657 Diag(NewVD->getLocation(), diag::err_wasm_table_must_be_static);
8658 NewVD->setInvalidDecl();
8663 Diag(NewVD->getLocation(),
8665 NewVD->setInvalidDecl();
8671 if (isVM || NewVD->hasAttr<CleanupAttr>() ||
8672 NewVD->hasAttr<BlocksAttr>())
8675 if ((isVM && NewVD->hasLinkage()) ||
8676 (T->isVariableArrayType() && NewVD->hasGlobalStorage())) {
8680 NewVD->getTypeSourceInfo(), Context, SizeIsNegative, Oversized);
8682 if (FixedTInfo && T == NewVD->getTypeSourceInfo()->getType())
8696 if (NewVD->isFileVarDecl())
8697 Diag(NewVD->getLocation(), diag::err_vla_decl_in_file_scope)
8699 else if (NewVD->isStaticLocal())
8700 Diag(NewVD->getLocation(), diag::err_vla_decl_has_static_storage)
8703 Diag(NewVD->getLocation(), diag::err_vla_decl_has_extern_linkage)
8705 NewVD->setInvalidDecl();
8710 if (NewVD->isFileVarDecl())
8711 Diag(NewVD->getLocation(), diag::err_vm_decl_in_file_scope);
8713 Diag(NewVD->getLocation(), diag::err_vm_decl_has_extern_linkage);
8714 NewVD->setInvalidDecl();
8718 Diag(NewVD->getLocation(), diag::ext_vla_folded_to_constant);
8719 NewVD->setType(FixedT);
8720 NewVD->setTypeSourceInfo(FixedTInfo);
8726 if (NewVD->isThisDeclarationADefinition() || getLangOpts().CPlusPlus) {
8727 Diag(NewVD->getLocation(), diag::err_typecheck_decl_incomplete_type)
8729 NewVD->setInvalidDecl();
8734 if (!NewVD->hasLocalStorage() && NewVD->hasAttr<BlocksAttr>()) {
8735 Diag(NewVD->getLocation(), diag::err_block_on_nonlocal);
8736 NewVD->setInvalidDecl();
8740 if (!NewVD->hasLocalStorage() && T->isSizelessType() &&
8742 Diag(NewVD->getLocation(), diag::err_sizeless_nonlocal) << T;
8743 NewVD->setInvalidDecl();
8747 if (isVM && NewVD->hasAttr<BlocksAttr>()) {
8748 Diag(NewVD->getLocation(), diag::err_block_on_vm);
8749 NewVD->setInvalidDecl();
8753 if (getLangOpts().C23 && NewVD->isConstexpr() &&
8754 CheckC23ConstexprVarType(*this, NewVD->getLocation(), T)) {
8755 NewVD->setInvalidDecl();
8759 if (NewVD->isConstexpr() && !T->isDependentType() &&
8760 RequireLiteralType(NewVD->getLocation(), T,
8762 NewVD->setInvalidDecl();
8768 !NewVD->isLocalVarDecl() &&
8769 PPC().CheckPPCMMAType(T, NewVD->getLocation())) {
8770 NewVD->setInvalidDecl();
8782 Diag(NewVD->getLocation(), diag::err_sve_vector_in_non_sve_target) << T;
8783 NewVD->setInvalidDecl();
8787 Diag(NewVD->getLocation(),
8790 NewVD->setInvalidDecl();
8800 RISCV().checkRVVTypeSupport(T, NewVD->getLocation(), cast<Decl>(CurContext),
8805 bool Sema::CheckVariableDeclaration(VarDecl *NewVD, LookupResult &Previous) {
8806 CheckVariableDeclarationType(NewVD);
8809 if (NewVD->isInvalidDecl())
8815 checkForConflictWithNonVisibleExternC(*this, NewVD, Previous))
8819 MergeVarDecl(NewVD, Previous);