We should make the copy constructor private (and marked "explicit") so that "withTag()" is the only consumer.
On Oct 7, 2011, at 1:08 PM, Anna Zaks wrote: > Author: zaks > Date: Fri Oct 7 15:08:27 2011 > New Revision: 141408 > > URL: http://llvm.org/viewvc/llvm-project?rev=141408&view=rev > Log: > Add a copy constructor to ProgramPoint and pull withTag() method from a > child. (withTag essentialy creates a copy with a given tag.) > > Modified: > cfe/trunk/include/clang/Analysis/ProgramPoint.h > > Modified: cfe/trunk/include/clang/Analysis/ProgramPoint.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/ProgramPoint.h?rev=141408&r1=141407&r2=141408&view=diff > ============================================================================== > --- cfe/trunk/include/clang/Analysis/ProgramPoint.h (original) > +++ cfe/trunk/include/clang/Analysis/ProgramPoint.h Fri Oct 7 15:08:27 2011 > @@ -78,6 +78,15 @@ > const void *getData2() const { return Data.second; } > > public: > + ProgramPoint(const ProgramPoint &P) > + : Data(P.Data), K(P.K), L(P.L), Tag(P.Tag) {} > + > + /// Create a new ProgramPoint object that is the same as the original > + /// except for using the specified tag value. > + ProgramPoint withTag(const ProgramPointTag *tag) { > + return ProgramPoint(Data.first, Data.second, K, L, tag); > + } > + > Kind getKind() const { return K; } > > const ProgramPointTag *getTag() const { return Tag; } > @@ -127,12 +136,6 @@ > return B->empty() ? CFGElement() : B->front(); > } > > - /// Create a new BlockEntrance object that is the same as the original > - /// except for using the specified tag value. > - BlockEntrance withTag(const ProgramPointTag *tag) { > - return BlockEntrance(getBlock(), getLocationContext(), tag); > - } > - > static bool classof(const ProgramPoint* Location) { > return Location->getKind() == BlockEntranceKind; > } > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
