On Jun 2, 2010, at 10:11 PM, Zhongxing Xu wrote:

> 
> 
> On Thu, Jun 3, 2010 at 1:08 PM, Ted Kremenek <kreme...@apple.com> wrote:
> 
> On Jun 2, 2010, at 10:04 PM, Zhongxing Xu wrote:
> 
>> 
>> 
>> On Thu, Jun 3, 2010 at 1:02 PM, Ted Kremenek <kreme...@apple.com> wrote:
>> 
>> On Jun 2, 2010, at 9:48 PM, Zhongxing Xu wrote:
>> 
>>> Is it necessary to add all RHS of assignment expr as block-level expr?
>>> 
>>> +    return addStmt(B->getLHS(), AddStmtChoice::AsLValueNotAlwaysAdd);
>>> +  }
>>> 
>>> Here better to use visitStmt, because addStmt() means we want to 'add' the 
>>> statement. Maybe we should modify some of the existing code to emphasize 
>>> this.
>>>  
>>>  
>> 
>> 
>> That's right.  The rest of the cases in that method use addStmt() because 
>> they introduce real control-flow dependencies.  For the assignment operator 
>> this isn't need.
>> 
>> Zhongxing: I don't think any of the existing cases in that method need to be 
>> modified to use VisitStmt() instead of addStmt(), or do you see something?
>> 
>> I suggest the following implementation of addStmt.
>> 
>> CFGBlock *addStmt(Stmt *S) {
>>     return Visit(S, AddStmtChoice::AlwaysAdd);
>> }
> 
> That would break a fair number of the existing callers, as some use the 
> second argument to indicate that the expression should be treated as an 
> lvalue.
> 
> 
> Maybe those could use VisitStmt directly?

Hmm.  Maybe they all should then, and remove addStmt entirely?
_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to