Function Outliner::Preprocess::transformThisExprs

Function Outliner::Preprocess::transformThisExprs#

Function Documentation#

SgBasicBlock *Outliner::Preprocess::transformThisExprs(SgBasicBlock *b)#

Canonicalize references to ‘this’.

Given a basic block with ‘this’ expressions:

{ … this … }

creates a level of indirection to ‘this’ through an explicit local variable, so that the outliner includes it in the outlined function parameter list:

// ‘this’ shell { TYPEOF(this)* this__ptr__ = (TYPEOF(this) *)this; { … this__ptr__ … } }