--- layout: fc_discuss_archives title: Message 23 from Frama-C-discuss on August 2012 ---
Hello, > As 'this' is a pointer, this->gear is represented internally as > > Mem ({ enode = Var vthis; ...}, Field (fgear, NoOffset)) I think it's (Mem {enode = Lval(Var vthis, NoOffset); ....}, Field (fgear, NoOffset)) > The first argument of the Mem constructor is an expression. Thus, your > two occurrences of this->gear will contain two different > Cil_types.exp, that will have two different eids. The two lvals will I understand that this->gear++, this->gear-- are different expressions. But why are the inner expressions this->gear different? How are the eids generated? Are the respective vids equal? > want is given by the functions Cil.compareExp and Cil.compareLval, but These use ==. Is it possible to access the physical representation of ADTs? - Boris