Class FixupPrettyFunctionVariables#

Inheritance Relationships#

Base Type#

Class Documentation#

class FixupPrettyFunctionVariables : public SgTopDownProcessing<FixupPrettyFunctionVariablesInheritedAttribute>#

This traversal uses inherited attributes to fixup the variables put into the AST that match the function name (this is EDG trickery to signal that the variable name is “__PRETTY_FUNCTION__”).

\implementation This is required because EDG has this odd behavior of exchanging the name of variables that one would expect to be called “__PRETTY_FUNCTION__” with the name of the function (when it occurs in a function). This happens frequently because “__PRETTY_FUNCTION__” is the last variable (actually pointer to a function, I think) used in the translation of the “assert” macro (at least for GNU compilers). Since ROSE_ASSERT is frequently a macro for “assert” this is a common problem for the compilation of the ROSE source code using ROSE translators. Note that this subject of replacement of “__PRETTY_FUNCTION__” with the name of the function where it occurs is documented in the EDG_3.3/Changes file (and now in the source code for the translation of the EDG AST to the ROSE AST.

Public Functions

FixupPrettyFunctionVariablesInheritedAttribute evaluateInheritedAttribute(SgNode *node, FixupPrettyFunctionVariablesInheritedAttribute ia)#