reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
8468 Info.CCEDiag(E, diag::note_constexpr_new); 8474 FunctionDecl *OperatorNew = E->getOperatorNew(); 8479 Info.CurrentCall->isStdFunction() && !E->isArray()) { 8481 assert(E->getNumPlacementArgs() == 1); 8482 if (!EvaluatePointer(E->getPlacementArg(0), Result, Info)) 8488 Info.FFDiag(E, diag::note_constexpr_new_non_replaceable) 8491 } else if (E->getNumPlacementArgs()) { 8502 if (E->getNumPlacementArgs() != 1 || 8503 !E->getPlacementArg(0)->getType()->isNothrowT()) 8504 return Error(E, diag::note_constexpr_new_placement); 8507 if (!EvaluateLValue(E->getPlacementArg(0), Nothrow, Info)) 8512 const Expr *Init = E->getInitializer(); 8515 QualType AllocType = E->getAllocatedType(); 8516 if (Optional<const Expr*> ArraySize = E->getArraySize()) { 8534 return ZeroInitialization(E); 8547 return ZeroInitialization(E); 8567 return ZeroInitialization(E); 8620 } Handler = {Info, E, AllocType, AK, nullptr}; 8622 CompleteObject Obj = findCompleteObject(Info, E, AK, Result, AllocType); 8623 if (!Obj || !findSubobject(Info, E, Obj, Result.Designator, Handler)) 8635 Val = Info.createHeapAlloc(E, AllocType, Result); 8654 Result.addArray(Info, E, cast<ConstantArrayType>(AT));