Program Listing for File fixupCxxSymbolTablesToSupportAliasingSymbols.h#
↰ Return to documentation for file (src/frontend/SageIII/astPostProcessing/fixupCxxSymbolTablesToSupportAliasingSymbols.h)
#ifndef FIXUP_CXX_TO_USE_ALIASING_SYMBOLS_H
#define FIXUP_CXX_TO_USE_ALIASING_SYMBOLS_H
// DQ (4/14/2010):
void fixupAstSymbolTablesToSupportAliasedSymbols (SgNode* node);
class FixupAstSymbolTablesToSupportAliasedSymbols : public AstSimpleProcessing
{
public:
// DQ (7/23/2011): Linkup namespaces so that we can build alias sysmbol from previously matching namespaces into subsequent matching namespaces.
std::map<SgName,std::vector<SgNamespaceDefinitionStatement*> > namespaceMap;
void visit ( SgNode* node );
// DQ (7/12/2014): Added support to record the causalDeclaration (the declaration that is causing the SgAliasSymbol to be introduced).
// This is important for the name qualification to be generated correctly before and after the causalDeclaration has been seen.
// It is also helpful in knowing which SgAliassymbols to remove from the AST when a SgUsingDirective or SgUsingDeclaration is
// removed from the AST. This functionality has not yet been implemented.
// This inserts an alias for each of the symbols in referencedScope into the symbol table of currentScope
// static void injectSymbolsFromReferencedScopeIntoCurrentScope ( SgScopeStatement* referencedScope, SgScopeStatement* currentScope, SgAccessModifier::access_modifier_enum accessLevel);
// static void injectSymbolsFromReferencedScopeIntoCurrentScope ( SgScopeStatement* referencedScope, SgScopeStatement* currentScope, SgNode* causalNode, SgAccessModifier::access_modifier_enum accessLevel);
static void injectSymbolsFromReferencedScopeIntoCurrentScope ( SgScopeStatement* referencedScope, SgScopeStatement* currentScope, SgNode* causalNode,
SgAccessModifier::access_modifier_enum accessLevel, bool calledFromUsingDirective );
// DQ (1/21/2019): Added to support Cxx_tests/test2019_21.C (symbol aliasing of data member in private base class of base class of derived class).
static bool isDefinedThroughPrivateBaseClass ( SgClassDeclaration* classDeclaration, SgSymbol* symbol );
};
// endif for FIXUP_CXX_TO_USE_ALIASING_SYMBOLS_H
#endif