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.