5#define DEBUG_FIXUP_COPY 0 
    6#define DEBUG_FIXUP_COPY_OUTPUT_MAP 0 
   12#define FixupCopyDataMemberMacro(IR_node_copy,IR_node_type,get_accessFunctionName,set_accessFunctionName)                \ 
   13     ROSE_ASSERT(this != NULL);                                                                                          \ 
   14     if (IR_node_copy->get_accessFunctionName() == this->get_accessFunctionName())                                       \ 
   16          SgCopyHelp::copiedNodeMapTypeIterator i = help.get_copiedNodeMap().find(this->get_accessFunctionName());       \ 
   17          printf ("SgCopyHelp::copiedNodeMapTypeIterator i != help.get_copiedNodeMap().end() = %s (using %s()) \n",i != help.get_copiedNodeMap().end() ? "true" : "false",#get_accessFunctionName); \ 
   18          if (i != help.get_copiedNodeMap().end())                                                                       \ 
   20               SgNode* associated_node_copy = i->second;                                                                 \ 
   21               ROSE_ASSERT(associated_node_copy != NULL);                                                                \ 
   22               IR_node_type* local_copy = is##IR_node_type(associated_node_copy);                                        \ 
   23               ROSE_ASSERT(local_copy != NULL);                                                                          \ 
   24               printf ("Resetting using %s->%s(local_copy) = %p = %s \n",#IR_node_copy,#set_accessFunctionName,local_copy,local_copy->class_name().c_str()); \ 
   25               IR_node_copy->set_accessFunctionName(local_copy);                                                         \ 
   27          ROSE_ASSERT(IR_node_copy != NULL);                                                                             \ 
   28          ROSE_ASSERT(IR_node_copy->get_accessFunctionName() != NULL);                                                   \ 
   29          ROSE_ASSERT(this->get_accessFunctionName() != NULL);                                                           \ 
   30          ROSE_ASSERT(IR_node_copy->get_accessFunctionName()->variantT() == this->get_accessFunctionName()->variantT()); \ 
   34           printf ("%s->%s() = %p != this->%s() = %p (so %s is already set for %p) \n",#IR_node_copy,#get_accessFunctionName,IR_node_copy,#get_accessFunctionName,this,#get_accessFunctionName,IR_node_copy); \ 
   37#define FixupCopyDataMemberMacro(IR_node_copy,IR_node_type,get_accessFunctionName,set_accessFunctionName)                \ 
   38     if (IR_node_copy->get_accessFunctionName() == this->get_accessFunctionName())                                       \ 
   40          SgCopyHelp::copiedNodeMapTypeIterator i = help.get_copiedNodeMap().find(this->get_accessFunctionName());       \ 
   41          if (i != help.get_copiedNodeMap().end())                                                                       \ 
   43               SgNode* associated_node_copy = i->second;                                                                 \ 
   44               ROSE_ASSERT(associated_node_copy != NULL);                                                                \ 
   45               IR_node_type* local_copy = is##IR_node_type(associated_node_copy);                                        \ 
   46               ROSE_ASSERT(local_copy != NULL);                                                                          \ 
   47               IR_node_copy->set_accessFunctionName(local_copy);                                                         \ 
   49          ROSE_ASSERT(IR_node_copy->get_accessFunctionName()->variantT() == this->get_accessFunctionName()->variantT()); \ 
Supporting class from copy mechanism within ROSE.