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

References

tools/clang/lib/AST/Interp/Pointer.cpp
   19 Pointer::Pointer(const Pointer &P) : Pointer(P.Pointee, P.Base, P.Offset) {}
   22     : Pointee(P.Pointee), Base(P.Base), Offset(P.Offset) {
   48   Base = P.Base;
   48   Base = P.Base;
   65   Base = P.Base;
   65   Base = P.Base;
  150     return Base == 0 || getInlineDesc()->IsInitialized;
  172     assert(Base != 0 && "Only composite fields can be initialised");
  179   assert(Base != 0 && "Only composite fields can be initialised");
  192   return A.Base == B.Base && A.getFieldDesc()->IsArray;
  192   return A.Base == B.Base && A.getFieldDesc()->IsArray;
tools/clang/lib/AST/Interp/Pointer.h
   59     if (Base == RootPtrMark)
   66     return Pointer(Pointee, Base, Base + Off);
   66     return Pointer(Pointee, Base, Base + Off);
   82     if (Base == RootPtrMark)
   87       return Pointer(Pointee, Base, PastEndMark);
   94       if (Offset != Base)
   96       return Pointer(Pointee, Base, Offset + sizeof(InitMap *));
  100     if (Offset != Base)
  107     const unsigned NewBase = Base + sizeof(InlineDescriptor);
  120       return Pointer(Pointee, Base, Base + getSize() + Adjust);
  120       return Pointer(Pointee, Base, Base + getSize() + Adjust);
  124     if (Base != Offset)
  128     if (Base == 0)
  132     unsigned Next = Base - getInlineDesc()->Offset;
  144   bool isField() const { return Base != 0 && Base != RootPtrMark; }
  144   bool isField() const { return Base != 0 && Base != RootPtrMark; }
  152     if (Base == RootPtrMark) {
  154       return Pointer(Pointee, Base, 0);
  156     assert(Offset == Base && "not an inner field");
  157     unsigned NewBase = Base - getInlineDesc()->Offset;
  162     if (Base == RootPtrMark) {
  164       return Pointer(Pointee, Base, 0);
  166     assert(Offset != Base && "not an array element");
  167     return Pointer(Pointee, Base, Base);
  167     return Pointer(Pointee, Base, Base);
  172     if (Base == 0 || Base == RootPtrMark)
  172     if (Base == 0 || Base == RootPtrMark)
  182     if (Base == RootPtrMark)
  192     if (Base == RootPtrMark)
  196     if (Offset != Base) {
  202     return Offset - Base - Adjust;
  214   bool isArrayElement() const { return Base != Offset; }
  217     return (Base == 0 || Base == RootPtrMark) && Offset == 0;
  217     return (Base == 0 || Base == RootPtrMark) && Offset == 0;
  238   bool isMutable() const { return Base != 0 && getInlineDesc()->IsMutable; }
  242   bool isActive() const { return Base == 0 || getInlineDesc()->IsActive; }
  248     return Base == 0 ? getDeclDesc()->IsConst : getInlineDesc()->IsConst;
  304     OS << "{" << Base << ", " << Offset << ", ";
  319   InlineDescriptor *getInlineDesc() const { return getDescriptor(Base); }
  329     return *reinterpret_cast<InitMap **>(Pointee->data() + Base);