[cfe-commits] r119341 - /cfe/trunk/lib/Checker/GRCXXExprEngine.cpp

Zhongxing Xu xuzhongxing at gmail.com
Wed Nov 17 03:24:55 PST 2010


2010/11/17 Marcin Świderski <marcin.sfider at gmail.com>

> W dniu 17 listopada 2010 12:08 użytkownik Zhongxing Xu <
> xuzhongxing at gmail.com> napisał:
>
>>
>>
>> 2010/11/17 Marcin Świderski <marcin.sfider at gmail.com>
>>
>> 2010/11/17 Zhongxing Xu <xuzhongxing at gmail.com>
>>>
>>>> On Tue, Nov 16, 2010 at 4:50 PM, Marcin Swiderski <
>>>> marcin.sfider at gmail.com> 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?
>

Using qualified this is not a problem itself.

But in GRExprEngine::ProcessInitializer(), we only have CXXRecordDecl to
create the 'this' region.  So to uniform interface, we use CXXRecordDecl to
create 'this' region.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20101117/0a4aed36/attachment.html>


More information about the cfe-commits mailing list