W dniu 17 listopada 2010 12:08 użytkownik Zhongxing Xu < [email protected]> napisał:
> > > 2010/11/17 Marcin Świderski <[email protected]> > > 2010/11/17 Zhongxing Xu <[email protected]> >> >>> On Tue, Nov 16, 2010 at 4:50 PM, Marcin Swiderski < >>> [email protected]> wrote: >>> >>>> Author: sfider >>>> Date: Tue Nov 16 02:50:38 2010 >>>> New Revision: 119341 >>>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=119341&view=rev >>>> Log: >>>> Refactored GRExprEngine::getCXXThisRegion to use >>>> CXXMethodDecl::getThisType instead of calculating it by hand. >>>> >>> >>> Please don't do this for now. CXXMethodDecl::getThisType() takes >>> qualifiers into account. But in the analyzer, we sometimes analyze methods >>> in isolation. So we always use unqualified type. >>> >> >>> >> What would this change impact? Maybe there should be a comment regarding >> this, because it's counter-intuitive. >> > > To be more precise, we cannot do this. We do not always have CXXMethodDecl. > We sometimes only have CXXRecordDecl when visiting constructors. > > But what did you meant by analyzing methods in isolation? What would be impacted by using type of 'this' with const qualifier for methods that are const qualified? > > >>>> Modified: >>>> cfe/trunk/lib/Checker/GRCXXExprEngine.cpp >>>> >>>> Modified: cfe/trunk/lib/Checker/GRCXXExprEngine.cpp >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/GRCXXExprEngine.cpp?rev=119341&r1=119340&r2=119341&view=diff >>>> >>>> ============================================================================== >>>> --- cfe/trunk/lib/Checker/GRCXXExprEngine.cpp (original) >>>> +++ cfe/trunk/lib/Checker/GRCXXExprEngine.cpp Tue Nov 16 02:50:38 2010 >>>> @@ -66,8 +66,7 @@ >>>> >>>> const CXXThisRegion *GRExprEngine::getCXXThisRegion(const CXXRecordDecl >>>> *D, >>>> const StackFrameContext >>>> *SFC) { >>>> - Type *T = D->getTypeForDecl(); >>>> - QualType PT = getContext().getPointerType(QualType(T, 0)); >>>> + QualType PT = D->getThisType(getContext()); >>>> return ValMgr.getRegionManager().getCXXThisRegion(PT, SFC); >>>> } >>>> >>>> >>>> >>>> _______________________________________________ >>>> 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
