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

References

tools/clang/lib/AST/ExprConstant.cpp
 1472     SubobjectDesignator &getLValueDesignator() { return Designator; }
 1473     const SubobjectDesignator &getLValueDesignator() const { return Designator;}
 1480       if (Designator.Invalid)
 1484         V = APValue(Base, Offset, Designator.Entries,
 1485                     Designator.IsOnePastTheEnd, IsNullPtr);
 1493       Designator = SubobjectDesignator(Ctx, V);
 1510       Designator = SubobjectDesignator(getType(B));
 1519       Designator = SubobjectDesignator(PointerTy->getPointeeType());
 1538       if (Designator.Invalid)
 1542         Designator.setInvalid();
 1567              Designator.checkSubobject(Info, E, CSK);
 1573         Designator.addDeclUnchecked(D, Virtual);
 1576       if (!Designator.Entries.empty()) {
 1578         Designator.setInvalid();
 1583         Designator.FirstEntryIsAnUnsizedArray = true;
 1584         Designator.addUnsizedArrayUnchecked(ElemTy);
 1589         Designator.addArrayUnchecked(CAT);
 1593         Designator.addComplexUnchecked(EltTy, Imag);
 1614         Designator.adjustIndex(Info, E, Index);
 1816                     This->Designator.MostDerivedType);
 2627   SubobjectDesignator &D = Result.Designator;
 2675   SubobjectDesignator &D = Obj.Designator;
 3730   if (LVal.Designator.Invalid)
 3752       return extractSubobject(Info, Conv, LitObj, LVal.Designator, RVal, AK);
 3756       assert(LVal.Designator.Entries.size() <= 1 &&
 3758       if (LVal.Designator.Entries.empty()) {
 3765       if (LVal.Designator.isOnePastTheEnd()) {
 3772       uint64_t CharIndex = LVal.Designator.Entries[0].getAsArrayIndex();
 3779   return Obj && extractSubobject(Info, Conv, Obj, LVal.Designator, RVal, AK);
 3785   if (LVal.Designator.Invalid)
 3794   return Obj && modifySubobject(Info, E, Obj, LVal.Designator, Val);
 3910   if (LVal.Designator.Invalid)
 3921   return Obj && findSubobject(Info, E, Obj, LVal.Designator, Handler);
 4054   if (LVal.Designator.Invalid)
 4065   return Obj && findSubobject(Info, E, Obj, LVal.Designator, Handler);
 4116     if (LV.Designator.MostDerivedPathLength + MemPtr.Path.size() >
 4117         LV.Designator.Entries.size()) {
 4122         LV.Designator.Entries.size() - MemPtr.Path.size();
 4125           LV.Designator.Entries[PathLengthToMember + I]);
 4139     LV.Designator.Entries.reserve(LV.Designator.Entries.size() +
 4139     LV.Designator.Entries.reserve(LV.Designator.Entries.size() +
 4199   SubobjectDesignator &D = Result.Designator;
 4961   if (This.Designator.Invalid)
 4973     if (This.Designator.isOnePastTheEnd() ||
 4974         This.Designator.isMostDerivedAnUnsizedArray()) {
 4975       Info.FFDiag(E, This.Designator.isOnePastTheEnd()
 4986           Info.Ctx.getLValueReferenceType(This.Designator.getType(Info.Ctx));
 4995   return Obj && findSubobject(Info, E, Obj, This.Designator, Handler);
 5041       This.Designator.MostDerivedType->getAsCXXRecordDecl();
 5051   ArrayRef<APValue::LValuePathEntry> Path = This.Designator.Entries;
 5052   for (unsigned PathLength = This.Designator.MostDerivedPathLength;
 5067       return DynamicType{getBaseClassType(This.Designator, PathLength),
 5095   for (/**/; PathLength <= This.Designator.Entries.size(); ++PathLength) {
 5096     const CXXRecordDecl *Class = getBaseClassType(This.Designator, PathLength);
 5120          CovariantPathLength != This.Designator.Entries.size();
 5123           getBaseClassType(This.Designator, CovariantPathLength);
 5189   SubobjectDesignator &D = Ptr.Designator;
 5239         << DiagKind << Ptr.Designator.getType(Info.Ctx)
 5248   for (int PathLength = Ptr.Designator.Entries.size();
 5250     const CXXRecordDecl *Class = getBaseClassType(Ptr.Designator, PathLength);
 5255         !isBaseClassPublic(getBaseClassType(Ptr.Designator, PathLength - 1),
 5320   if (LHS.InvalidBase || LHS.Designator.Invalid)
 5326   unsigned PathLength = LHS.Designator.Entries.size();
 5350                                 LHS.Designator.Entries[PathLength]
 5377                                   LHS.Designator.Entries[PathLength]
 5400     SubobjectDesignator D = LHS.Designator;
 5551       ObjectUnderConstruction{This.getLValueBase(), This.Designator.Entries},
 5844       ObjectUnderConstruction{This.getLValueBase(), This.Designator.Entries});
 5941   return Obj && findSubobject(Info, E, Obj, This.Designator, Handler);
 6073     Subobject = Pointer.Designator.MostDerivedPathLength != 0 ||
 6074                 Pointer.Designator.isOnePastTheEnd();
 6076     Subobject = Pointer.Designator.Entries.size() != 1 ||
 6077                 Pointer.Designator.Entries[0].getAsArrayIndex() != 0;
 6081         << PointerAsString() << Pointer.Designator.isOnePastTheEnd();
 6106   if (Pointer.Designator.Invalid)
 7354       Result.Designator.setInvalid();
 7951       if (!Result.InvalidBase && !Result.Designator.Invalid &&
 7953           Info.Ctx.hasSameUnqualifiedType(Result.Designator.getType(Info.Ctx),
 7960         Result.Designator.setInvalid();
 8014       Result.Designator.setInvalid();
 8177         Result.Designator.setInvalid();
 8189       Result.Designator.setInvalid();
 8242         Result.Designator.Invalid)
 8244     QualType CharTy = Result.Designator.getType(Info.Ctx);
 8365     if (Src.Designator.Invalid || Dest.Designator.Invalid)
 8365     if (Src.Designator.Invalid || Dest.Designator.Invalid)
 8371     QualType T = Dest.Designator.getType(Info.Ctx);
 8372     QualType SrcT = Src.Designator.getType(Info.Ctx);
 8403     uint64_t RemainingSrcSize = Src.Designator.validIndexAdjustments().second;
 8404     uint64_t RemainingDestSize = Dest.Designator.validIndexAdjustments().second;
 8484     if (Result.Designator.Invalid)
 8623     if (!Obj || !findSubobject(Info, E, Obj, Result.Designator, Handler))
 8906       ObjectUnderConstruction{This.getLValueBase(), This.Designator.Entries},
10235   assert(!LVal.Designator.Invalid);
10263   if (LVal.Designator.FirstEntryIsAnUnsizedArray) {
10273   for (unsigned E = LVal.Designator.Entries.size(); I != E; ++I) {
10274     const auto &Entry = LVal.Designator.Entries[I];
10309   if (LVal.Designator.Invalid)
10312   if (!LVal.Designator.Entries.empty())
10313     return LVal.Designator.isMostDerivedAnUnsizedArray();
10327   const SubobjectDesignator &Designator = LVal.Designator;
10376   if (!(Type & 1) || LVal.Designator.Invalid || DetermineForCompleteObject) {
10394   const SubobjectDesignator &Designator = LVal.Designator;
10793         String1.Designator.Invalid || String2.Designator.Invalid)
10793         String1.Designator.Invalid || String2.Designator.Invalid)
10796     QualType CharTy1 = String1.Designator.getType(Info.Ctx);
10797     QualType CharTy2 = String2.Designator.getType(Info.Ctx);
12194       LV.Designator.setInvalid();
13208   if (Pointer.Designator.Invalid)
13229   if (!E->isArrayForm() && Pointer.Designator.Entries.size() != 0 &&