new dumper, oo_prog_ex changed
authorGötz Lindenmaier <goetz@ipd.info.uni-karlsruhe.de>
Fri, 14 Nov 2003 14:23:08 +0000 (14:23 +0000)
committerGötz Lindenmaier <goetz@ipd.info.uni-karlsruhe.de>
Fri, 14 Nov 2003 14:23:08 +0000 (14:23 +0000)
[r2047]

24 files changed:
testprograms/ref-results/ARRAY-STACK_EXAMPLE_main-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/All_graphs.vcg [new file with mode: 0644]
testprograms/ref-results/GLOBAL_VAR_main-pure-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-ip.vcg [new file with mode: 0644]
testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-pure-ip.vcg [new file with mode: 0644]
testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-pure-wtypes-ip.vcg [new file with mode: 0644]
testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-type.vcg [new file with mode: 0644]
testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-wtypes-ip.vcg [new file with mode: 0644]
testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/IF_WHILE_EXAMPLE_main-pure.vcg [new file with mode: 0644]
testprograms/ref-results/OO_INLINE_EXAMPLE_main-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/OO_PROGRAM_EXAMPLE_main-pure-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/OO_PROGRAM_EXAMPLE_main-pure.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_INLINE_c-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_INLINE_set_a-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_c-pure-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_c-pure.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_c-type.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_c-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_set_a-pure-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_set_a-pure.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_set_a-type.vcg [new file with mode: 0644]
testprograms/ref-results/PRIMA_set_a-wtypes.vcg [new file with mode: 0644]
testprograms/ref-results/class_hierarchy.vcg [new file with mode: 0644]

diff --git a/testprograms/ref-results/ARRAY-STACK_EXAMPLE_main-wtypes.vcg b/testprograms/ref-results/ARRAY-STACK_EXAMPLE_main-wtypes.vcg
new file mode 100644 (file)
index 0000000..be70960
--- /dev/null
@@ -0,0 +1,157 @@
+graph: { title: "ir graph of ARRAY-STACK_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80ae410" label: "main" status:clustered color:white
+graph: { title: "n47"  label: "Block 47" status:clustered color:yellow
+edge: {sourcename: "n47" targetname: "n48" label: "0" color: red}
+node: {title: "n46" label: "End  46" color: blue info1: "visited: 10
+"}
+}
+
+graph: { title: "n49"  label: "Block 49" status:clustered color:yellow
+edge: {sourcename: "n49" targetname: "n50" label: "0" color: red}
+node: {title: "n48" label: "Return  48"  info1: "visited: 10
+return in method of type main
+  res 0 type: int
+"}
+edge: {sourcename: "n48" targetname: "n60" label: "0" color: blue}
+edge: {sourcename: "n48" targetname: "n53" label: "1" }
+node: {title: "n60" label: "ProjM 0 60" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n60" targetname: "n54" label: "0" color: blue}
+node: {title: "n53" label: "ProjIs 2 53" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n53" targetname: "n54" label: "0" }
+node: {title: "n54" label: "Load  54"  info1: "visited: 10
+"}
+edge: {sourcename: "n54" targetname: "n59" label: "0" color: blue}
+edge: {sourcename: "n54" targetname: "n55" label: "1" }
+node: {title: "n55" label: "Sel a_tp_elem_ent 55"  info1: "visited: 10
+Selecting entity of type int
+  from entity of type a_tp
+"}
+edge: {sourcename: "n55" targetname: "n59" label: "0" color: blue}
+edge: {sourcename: "n55" targetname: "n57" label: "1" }
+edge: {sourcename: "n55" targetname: "n56" label: "2" }
+node: {title: "n57" label: "Sel a 57"  info1: "visited: 10
+Selecting entity of type a_tp
+  from entity of type mainframe_tp
+"}
+edge: {sourcename: "n57" targetname: "n59" label: "0" color: blue}
+edge: {sourcename: "n57" targetname: "n58" label: "1" }
+}
+
+graph: { title: "n51"  label: "Block 51" status:clustered color:yellow
+edge: {sourcename: "n51" targetname: "n50" label: "0" color: red}
+node: {title: "n59" label: "ProjM 1 59" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n59" targetname: "n52" label: "0" color: blue}
+node: {title: "n58" label: "ProjP 2 58" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n58" targetname: "n52" label: "0" }
+node: {title: "n56" label: "0x3Iu  56" color: yellow info1: "visited: 10
+Const of type type_unknown
+"}
+node: {title: "n50" label: "ProjX 0 50" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n50" targetname: "n52" label: "0" color: red}
+node: {title: "n52" label: "Start  52" color: blue info1: "visited: 10
+start of method of type main
+"}
+}
+
+}
+
+node: {title: "e18" label: "ent a_tp_elem_ent" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a_tp_elem_ent
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e18" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t17" label: "array a_tp" info1: "state: layout_undefined
+size: -1B,
+"}
+edge: { sourcename: "t17" targetname: "t12"class: 10 label: "arr elt tp" color:green}
+edge: { sourcename: "t17" targetname: "e18"class: 10 label: "arr ent" color: green}
+edge: { sourcename: "n19" targetname: "t17"label: "upper 0"}
+edge: { sourcename: "n20" targetname: "t17"label: "lower 0"}
+node: {title: "n19" label: "0x9Iu  19" color: yellow info1: "visited: 2
+Const of type type_unknown
+"}
+node: {title: "n20" label: "0x0Iu  20" color: yellow info1: "visited: 2
+Const of type type_unknown
+"}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e35" label: "ent a" color: yellow
+ info1: "
+id: e35
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e35" targetname: "t17"class: 3 label: "type" color: red}
+node: {title: "t21" label: "class mainframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t21" targetname: "e35"class: 12 label: "member" color:blue}
+node: {title: "e16" label: "ent main" color: yellow
+ info1: "
+id: e16
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    main
+ld_name: ARRAY-STACK_EXAMPLE_main
+offset:  -1
+irg = g33"
+}
+edge: { sourcename: "e16" targetname: "t14"class: 3 label: "type" color: red}
+edge: { sourcename: "e16" targetname: "n15"label: "value 0"}
+node: {title: "n15" label: "&(ARRAY-STACK_EXAMPLE_main)P  15" color: yellow info1: "visited: 2
+Const of type type_unknown
+"}
+node: {title: "t13" label: "class ARRAY-STACK_EXAMPLE" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e16"class: 12 label: "member" color:blue}
+node: {title: "t14" label: "method main" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t12"class: 6 label: "res 0" color: green}
+edge: { sourcename: "n55" targetname: "e18"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n57" targetname: "e35"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/All_graphs.vcg b/testprograms/ref-results/All_graphs.vcg
new file mode 100644 (file)
index 0000000..962c89f
--- /dev/null
@@ -0,0 +1,216 @@
+graph: { title: "ir graph of All_graphs"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80aea48" label: "OO_PROGRAM_EXAMPLE_main" status:clustered color:white
+graph: { title: "n108"  label: "Block 108" status:clustered color:yellow
+edge: {sourcename: "n108" targetname: "n109" label: "0" color: red}
+node: {title: "n107" label: "End  107" color: blue info1: "visited: 46
+"}
+}
+
+graph: { title: "n110"  label: "Block 110" status:clustered color:yellow
+edge: {sourcename: "n110" targetname: "n198" label: "0" color: red}
+node: {title: "n109" label: "Return  109"  info1: "visited: 46
+"}
+edge: {sourcename: "n109" targetname: "n200" label: "0" color: blue}
+edge: {sourcename: "n109" targetname: "n201" label: "1" }
+node: {title: "n200" label: "FilterM 0 200" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n200" targetname: "n167" label: "0" color: blue}
+node: {title: "n201" label: "FilterIs 0 201" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n201" targetname: "n159" label: "0" }
+}
+
+graph: { title: "n195"  label: "Block 195" status:clustered color:yellow
+edge: {sourcename: "n195" targetname: "n192" label: "0" color: red}
+node: {title: "n194" label: "FilterM 0 194" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n194" targetname: "n141" label: "0" color: blue}
+node: {title: "n199" label: "ProjX 0 199" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n199" targetname: "n197" label: "0" color: red}
+node: {title: "n197" label: "CallBegin  197"  info1: "visited: 46
+"}
+edge: {sourcename: "n197" targetname: "n172" label: "0" }
+}
+
+graph: { title: "n189"  label: "Block 189" status:clustered color:yellow
+edge: {sourcename: "n189" targetname: "n111" label: "0" color: red}
+node: {title: "n127" label: "ProjM 0 127" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n127" targetname: "n119" label: "0" color: blue}
+node: {title: "n118" label: "ProjP 2 118" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n118" targetname: "n119" label: "0" }
+node: {title: "n119" label: "Alloc  119"  info1: "visited: 46
+allocating entity of type PRIMA
+"}
+edge: {sourcename: "n119" targetname: "n121" label: "0" color: blue}
+edge: {sourcename: "n119" targetname: "n120" label: "1" }
+node: {title: "n193" label: "ProjX 0 193" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n193" targetname: "n191" label: "0" color: red}
+node: {title: "n191" label: "CallBegin  191"  info1: "visited: 46
+"}
+edge: {sourcename: "n191" targetname: "n173" label: "0" }
+}
+
+graph: { title: "n112"  label: "Block 112" status:clustered color:yellow
+edge: {sourcename: "n112" targetname: "n111" label: "0" color: red}
+node: {title: "n125" label: "0x2Is  125" color: yellow info1: "visited: 46
+Const of type type_unknown
+"}
+node: {title: "n121" label: "ProjM 1 121" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n121" targetname: "n113" label: "0" color: blue}
+node: {title: "n120" label: "SymC PRIMA size  120"  info1: "visited: 46
+"}
+node: {title: "n117" label: "0x5Is  117" color: yellow info1: "visited: 46
+Const of type type_unknown
+"}
+node: {title: "n172" label: "&(PRIMA_c)P  172" color: yellow info1: "visited: 46
+Const of type type_unknown
+"}
+node: {title: "n173" label: "&(PRIMA_set_a)P  173" color: yellow info1: "visited: 46
+Const of type type_unknown
+"}
+node: {title: "n111" label: "ProjX 0 111" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n111" targetname: "n113" label: "0" color: red}
+node: {title: "n113" label: "Start OO_PROGRAM_EXAMPLE_main  113" color: blue info1: "visited: 46
+start of method of type OO_PROGRAM_EXAMPLE_main
+"}
+}
+
+}
+
+graph: { title: "0x80b1028" label: "set_a" status:clustered color:white
+graph: { title: "n186"  label: "Block 186" status:clustered color:yellow
+edge: {sourcename: "n186" targetname: "n185" label: "0" color: red}
+node: {title: "n192" label: "ProjX 0 192" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n192" targetname: "n187" label: "0" color: red}
+node: {title: "n187" label: "EndReg  187" color: blue info1: "visited: 46
+"}
+}
+
+graph: { title: "n137"  label: "Block 137" status:clustered color:yellow
+edge: {sourcename: "n137" targetname: "n138" label: "0" color: red}
+node: {title: "n141" label: "ProjM 0 141" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n141" targetname: "n142" label: "0" color: blue}
+node: {title: "n142" label: "Store  142"  info1: "visited: 46
+"}
+edge: {sourcename: "n142" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n142" targetname: "n145" label: "1" }
+edge: {sourcename: "n142" targetname: "n184" label: "2" }
+node: {title: "n145" label: "Sel a 145"  info1: "visited: 46
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n145" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n145" targetname: "n183" label: "1" }
+node: {title: "n185" label: "Jmp  185"  info1: "visited: 46
+"}
+}
+
+graph: { title: "n139"  label: "Block 139" status:clustered color:yellow
+edge: {sourcename: "n139" targetname: "n193" label: "0" color: red}
+node: {title: "n182" label: "FilterM 1 182" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n182" targetname: "n127" label: "0" color: blue}
+node: {title: "n183" label: "FilterP 0 183" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n183" targetname: "n118" label: "0" }
+node: {title: "n184" label: "FilterIs 1 184" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n184" targetname: "n125" label: "0" }
+node: {title: "n138" label: "ProjX 0 138" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n138" targetname: "n140" label: "0" color: red}
+node: {title: "n140" label: "Start set_a  140" color: blue info1: "visited: 46
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+graph: { title: "0x80b3640" label: "c" status:clustered color:white
+graph: { title: "n178"  label: "Block 178" status:clustered color:yellow
+edge: {sourcename: "n178" targetname: "n177" label: "0" color: red}
+node: {title: "n198" label: "ProjX 0 198" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n198" targetname: "n179" label: "0" color: red}
+node: {title: "n179" label: "EndReg  179" color: blue info1: "visited: 46
+"}
+}
+
+graph: { title: "n155"  label: "Block 155" status:clustered color:yellow
+edge: {sourcename: "n155" targetname: "n156" label: "0" color: red}
+node: {title: "n167" label: "ProjM 0 167" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n167" targetname: "n161" label: "0" color: blue}
+node: {title: "n159" label: "AddIs  159"  info1: "visited: 46
+"}
+edge: {sourcename: "n159" targetname: "n160" label: "0" }
+edge: {sourcename: "n159" targetname: "n174" label: "1" }
+node: {title: "n160" label: "ProjIs 2 160" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n160" targetname: "n161" label: "0" }
+node: {title: "n161" label: "Load  161"  info1: "visited: 46
+"}
+edge: {sourcename: "n161" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n161" targetname: "n162" label: "1" }
+node: {title: "n162" label: "Sel a 162"  info1: "visited: 46
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n162" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n162" targetname: "n176" label: "1" }
+node: {title: "n177" label: "Jmp  177"  info1: "visited: 46
+"}
+}
+
+graph: { title: "n157"  label: "Block 157" status:clustered color:yellow
+edge: {sourcename: "n157" targetname: "n199" label: "0" color: red}
+node: {title: "n175" label: "FilterM 1 175" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n175" targetname: "n194" label: "0" color: blue}
+node: {title: "n176" label: "FilterP 0 176" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n176" targetname: "n118" label: "0" }
+node: {title: "n174" label: "FilterIs 1 174" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n174" targetname: "n117" label: "0" }
+node: {title: "n156" label: "ProjX 0 156" color: yellow info1: "visited: 46
+"}
+edge: {sourcename: "n156" targetname: "n158" label: "0" color: red}
+node: {title: "n158" label: "Start c  158" color: blue info1: "visited: 46
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+}
diff --git a/testprograms/ref-results/GLOBAL_VAR_main-pure-wtypes.vcg b/testprograms/ref-results/GLOBAL_VAR_main-pure-wtypes.vcg
new file mode 100644 (file)
index 0000000..3d997e7
--- /dev/null
@@ -0,0 +1,122 @@
+graph: { title: "ir graph of GLOBAL_VAR_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n44" label: "Block  44" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n44" targetname: "n43" label: "0" color: red}
+node: {title: "n45" label: "Start  45" color: blue info1: "visited: 8
+start of method of type GLOBAL_VAR_main
+"}
+edge: { sourcename: "n45" targetname: "n44" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n43" label: "ProjX 0 43" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n43" targetname: "n45" label: "0" color: red}
+edge: { sourcename: "n43" targetname: "n44" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n42" label: "Block  42" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n42" targetname: "n43" label: "0" color: red}
+node: {title: "n48" label: "0x2Is  48" color: yellow info1: "visited: 8
+Const of type type_unknown
+"}
+edge: { sourcename: "n48" targetname: "n44" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n50" label: "ProjP 3 50" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n50" targetname: "n45" label: "0" }
+edge: { sourcename: "n50" targetname: "n44" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n51" label: "ProjM 1 51" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n51" targetname: "n45" label: "0" color: blue}
+edge: { sourcename: "n51" targetname: "n44" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n49" label: "Sel i 49"  info1: "visited: 8
+Selecting entity of type int
+  from entity of type GlobalType
+"}
+edge: {sourcename: "n49" targetname: "n51" label: "0" color: blue}
+edge: {sourcename: "n49" targetname: "n50" label: "1" }
+edge: { sourcename: "n49" targetname: "n42" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n47" label: "Store  47"  info1: "visited: 8
+"}
+edge: {sourcename: "n47" targetname: "n51" label: "0" color: blue}
+edge: {sourcename: "n47" targetname: "n49" label: "1" }
+edge: {sourcename: "n47" targetname: "n48" label: "2" }
+edge: { sourcename: "n47" targetname: "n42" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n46" label: "ProjM 0 46" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n46" targetname: "n47" label: "0" color: blue}
+edge: { sourcename: "n46" targetname: "n42" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n41" label: "Return  41"  info1: "visited: 8
+return in method of type GLOBAL_VAR_main
+"}
+edge: {sourcename: "n41" targetname: "n46" label: "0" color: blue}
+edge: { sourcename: "n41" targetname: "n42" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n40" label: "Block  40" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n40" targetname: "n41" label: "0" color: red}
+node: {title: "n39" label: "End  39" color: blue info1: "visited: 8
+"}
+edge: { sourcename: "n39" targetname: "n40" class: 2 priority: 2 linestyle: dotted}
+node: {title: "e16" label: "ent i" color: yellow
+ info1: "
+id: e16
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    i
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e16" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t0" label: "class GlobalType" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t0" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t0" targetname: "e16"class: 12 label: "member" color:blue}
+node: {title: "e15" label: "ent GLOBAL_VAR_main" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    GLOBAL_VAR_main
+ld_name: no yet set
+offset:  -1
+irg = g29"
+}
+edge: { sourcename: "e15" targetname: "t13"class: 3 label: "type" color: red}
+edge: { sourcename: "e15" targetname: "n14"label: "value 0"}
+node: {title: "n14" label: "&(GlobalType_GLOBAL_VAR_main)P  14" color: yellow info1: "visited: 1
+Const of type type_unknown
+"}
+node: {title: "t13" label: "method GLOBAL_VAR_main" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "t17" label: "class GLOBAL_VAR_mainframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n49" targetname: "e16"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-ip.vcg b/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-ip.vcg
new file mode 100644 (file)
index 0000000..ff9e700
--- /dev/null
@@ -0,0 +1,216 @@
+graph: { title: "ir graph of GlobalType_OO_PROGRAM_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80aea48" label: "OO_PROGRAM_EXAMPLE_main" status:clustered color:white
+graph: { title: "n108"  label: "Block 108" status:clustered color:yellow
+edge: {sourcename: "n108" targetname: "n109" label: "0" color: red}
+node: {title: "n107" label: "End  107" color: blue info1: "visited: 31
+"}
+}
+
+graph: { title: "n110"  label: "Block 110" status:clustered color:yellow
+edge: {sourcename: "n110" targetname: "n198" label: "0" color: red}
+node: {title: "n109" label: "Return  109"  info1: "visited: 31
+"}
+edge: {sourcename: "n109" targetname: "n200" label: "0" color: blue}
+edge: {sourcename: "n109" targetname: "n201" label: "1" }
+node: {title: "n200" label: "FilterM 0 200" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n200" targetname: "n167" label: "0" color: blue}
+node: {title: "n201" label: "FilterIs 0 201" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n201" targetname: "n159" label: "0" }
+}
+
+graph: { title: "n195"  label: "Block 195" status:clustered color:yellow
+edge: {sourcename: "n195" targetname: "n192" label: "0" color: red}
+node: {title: "n194" label: "FilterM 0 194" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n194" targetname: "n141" label: "0" color: blue}
+node: {title: "n199" label: "ProjX 0 199" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n199" targetname: "n197" label: "0" color: red}
+node: {title: "n197" label: "CallBegin  197"  info1: "visited: 31
+"}
+edge: {sourcename: "n197" targetname: "n172" label: "0" }
+}
+
+graph: { title: "n189"  label: "Block 189" status:clustered color:yellow
+edge: {sourcename: "n189" targetname: "n111" label: "0" color: red}
+node: {title: "n127" label: "ProjM 0 127" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n127" targetname: "n119" label: "0" color: blue}
+node: {title: "n118" label: "ProjP 2 118" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n118" targetname: "n119" label: "0" }
+node: {title: "n119" label: "Alloc  119"  info1: "visited: 31
+allocating entity of type PRIMA
+"}
+edge: {sourcename: "n119" targetname: "n121" label: "0" color: blue}
+edge: {sourcename: "n119" targetname: "n120" label: "1" }
+node: {title: "n193" label: "ProjX 0 193" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n193" targetname: "n191" label: "0" color: red}
+node: {title: "n191" label: "CallBegin  191"  info1: "visited: 31
+"}
+edge: {sourcename: "n191" targetname: "n173" label: "0" }
+}
+
+graph: { title: "n112"  label: "Block 112" status:clustered color:yellow
+edge: {sourcename: "n112" targetname: "n111" label: "0" color: red}
+node: {title: "n125" label: "0x2Is  125" color: yellow info1: "visited: 31
+Const of type type_unknown
+"}
+node: {title: "n121" label: "ProjM 1 121" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n121" targetname: "n113" label: "0" color: blue}
+node: {title: "n120" label: "SymC PRIMA size  120"  info1: "visited: 31
+"}
+node: {title: "n117" label: "0x5Is  117" color: yellow info1: "visited: 31
+Const of type type_unknown
+"}
+node: {title: "n172" label: "&(PRIMA_c)P  172" color: yellow info1: "visited: 31
+Const of type type_unknown
+"}
+node: {title: "n173" label: "&(PRIMA_set_a)P  173" color: yellow info1: "visited: 31
+Const of type type_unknown
+"}
+node: {title: "n111" label: "ProjX 0 111" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n111" targetname: "n113" label: "0" color: red}
+node: {title: "n113" label: "Start OO_PROGRAM_EXAMPLE_main  113" color: blue info1: "visited: 31
+start of method of type OO_PROGRAM_EXAMPLE_main
+"}
+}
+
+}
+
+graph: { title: "0x80b1028" label: "set_a" status:clustered color:white
+graph: { title: "n186"  label: "Block 186" status:clustered color:yellow
+edge: {sourcename: "n186" targetname: "n185" label: "0" color: red}
+node: {title: "n192" label: "ProjX 0 192" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n192" targetname: "n187" label: "0" color: red}
+node: {title: "n187" label: "EndReg  187" color: blue info1: "visited: 31
+"}
+}
+
+graph: { title: "n137"  label: "Block 137" status:clustered color:yellow
+edge: {sourcename: "n137" targetname: "n138" label: "0" color: red}
+node: {title: "n141" label: "ProjM 0 141" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n141" targetname: "n142" label: "0" color: blue}
+node: {title: "n142" label: "Store  142"  info1: "visited: 31
+"}
+edge: {sourcename: "n142" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n142" targetname: "n145" label: "1" }
+edge: {sourcename: "n142" targetname: "n184" label: "2" }
+node: {title: "n145" label: "Sel a 145"  info1: "visited: 31
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n145" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n145" targetname: "n183" label: "1" }
+node: {title: "n185" label: "Jmp  185"  info1: "visited: 31
+"}
+}
+
+graph: { title: "n139"  label: "Block 139" status:clustered color:yellow
+edge: {sourcename: "n139" targetname: "n193" label: "0" color: red}
+node: {title: "n182" label: "FilterM 1 182" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n182" targetname: "n127" label: "0" color: blue}
+node: {title: "n183" label: "FilterP 0 183" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n183" targetname: "n118" label: "0" }
+node: {title: "n184" label: "FilterIs 1 184" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n184" targetname: "n125" label: "0" }
+node: {title: "n138" label: "ProjX 0 138" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n138" targetname: "n140" label: "0" color: red}
+node: {title: "n140" label: "Start set_a  140" color: blue info1: "visited: 31
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+graph: { title: "0x80b3640" label: "c" status:clustered color:white
+graph: { title: "n178"  label: "Block 178" status:clustered color:yellow
+edge: {sourcename: "n178" targetname: "n177" label: "0" color: red}
+node: {title: "n198" label: "ProjX 0 198" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n198" targetname: "n179" label: "0" color: red}
+node: {title: "n179" label: "EndReg  179" color: blue info1: "visited: 31
+"}
+}
+
+graph: { title: "n155"  label: "Block 155" status:clustered color:yellow
+edge: {sourcename: "n155" targetname: "n156" label: "0" color: red}
+node: {title: "n167" label: "ProjM 0 167" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n167" targetname: "n161" label: "0" color: blue}
+node: {title: "n159" label: "AddIs  159"  info1: "visited: 31
+"}
+edge: {sourcename: "n159" targetname: "n160" label: "0" }
+edge: {sourcename: "n159" targetname: "n174" label: "1" }
+node: {title: "n160" label: "ProjIs 2 160" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n160" targetname: "n161" label: "0" }
+node: {title: "n161" label: "Load  161"  info1: "visited: 31
+"}
+edge: {sourcename: "n161" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n161" targetname: "n162" label: "1" }
+node: {title: "n162" label: "Sel a 162"  info1: "visited: 31
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n162" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n162" targetname: "n176" label: "1" }
+node: {title: "n177" label: "Jmp  177"  info1: "visited: 31
+"}
+}
+
+graph: { title: "n157"  label: "Block 157" status:clustered color:yellow
+edge: {sourcename: "n157" targetname: "n199" label: "0" color: red}
+node: {title: "n175" label: "FilterM 1 175" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n175" targetname: "n194" label: "0" color: blue}
+node: {title: "n176" label: "FilterP 0 176" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n176" targetname: "n118" label: "0" }
+node: {title: "n174" label: "FilterIs 1 174" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n174" targetname: "n117" label: "0" }
+node: {title: "n156" label: "ProjX 0 156" color: yellow info1: "visited: 31
+"}
+edge: {sourcename: "n156" targetname: "n158" label: "0" color: red}
+node: {title: "n158" label: "Start c  158" color: blue info1: "visited: 31
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+}
diff --git a/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-pure-ip.vcg b/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-pure-ip.vcg
new file mode 100644 (file)
index 0000000..ee49c4c
--- /dev/null
@@ -0,0 +1,240 @@
+graph: { title: "ir graph of GlobalType_OO_PROGRAM_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n112" label: "Block  112" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n112" targetname: "n111" label: "0" color: red}
+node: {title: "n113" label: "Start OO_PROGRAM_EXAMPLE_main  113" color: blue info1: "visited: 29
+start of method of type OO_PROGRAM_EXAMPLE_main
+"}
+edge: { sourcename: "n113" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n111" label: "ProjX 0 111" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n111" targetname: "n113" label: "0" color: red}
+edge: { sourcename: "n111" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n189" label: "Block  189" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n189" targetname: "n111" label: "0" color: red}
+node: {title: "n173" label: "&(PRIMA_set_a)P  173" color: yellow info1: "visited: 29
+Const of type type_unknown
+"}
+edge: { sourcename: "n173" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n191" label: "CallBegin  191"  info1: "visited: 29
+"}
+edge: {sourcename: "n191" targetname: "n173" label: "0" }
+edge: { sourcename: "n191" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n193" label: "ProjX 0 193" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n193" targetname: "n191" label: "0" color: red}
+edge: { sourcename: "n193" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n139" label: "Block  139" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n139" targetname: "n193" label: "0" color: red}
+node: {title: "n140" label: "Start set_a  140" color: blue info1: "visited: 29
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: { sourcename: "n140" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n138" label: "ProjX 0 138" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n138" targetname: "n140" label: "0" color: red}
+edge: { sourcename: "n138" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n137" label: "Block  137" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n137" targetname: "n138" label: "0" color: red}
+node: {title: "n185" label: "Jmp  185"  info1: "visited: 29
+"}
+edge: { sourcename: "n185" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n186" label: "Block  186" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n186" targetname: "n185" label: "0" color: red}
+node: {title: "n187" label: "EndReg  187" color: blue info1: "visited: 29
+"}
+edge: { sourcename: "n187" targetname: "n186" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n192" label: "ProjX 0 192" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n192" targetname: "n187" label: "0" color: red}
+edge: { sourcename: "n192" targetname: "n186" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n195" label: "Block  195" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n195" targetname: "n192" label: "0" color: red}
+node: {title: "n172" label: "&(PRIMA_c)P  172" color: yellow info1: "visited: 29
+Const of type type_unknown
+"}
+edge: { sourcename: "n172" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n197" label: "CallBegin  197"  info1: "visited: 29
+"}
+edge: {sourcename: "n197" targetname: "n172" label: "0" }
+edge: { sourcename: "n197" targetname: "n195" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n199" label: "ProjX 0 199" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n199" targetname: "n197" label: "0" color: red}
+edge: { sourcename: "n199" targetname: "n195" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n157" label: "Block  157" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n157" targetname: "n199" label: "0" color: red}
+node: {title: "n158" label: "Start c  158" color: blue info1: "visited: 29
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: { sourcename: "n158" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n156" label: "ProjX 0 156" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n156" targetname: "n158" label: "0" color: red}
+edge: { sourcename: "n156" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n155" label: "Block  155" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n155" targetname: "n156" label: "0" color: red}
+node: {title: "n177" label: "Jmp  177"  info1: "visited: 29
+"}
+edge: { sourcename: "n177" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n178" label: "Block  178" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n178" targetname: "n177" label: "0" color: red}
+node: {title: "n179" label: "EndReg  179" color: blue info1: "visited: 29
+"}
+edge: { sourcename: "n179" targetname: "n178" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n198" label: "ProjX 0 198" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n198" targetname: "n179" label: "0" color: red}
+edge: { sourcename: "n198" targetname: "n178" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n110" label: "Block  110" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n110" targetname: "n198" label: "0" color: red}
+node: {title: "n117" label: "0x5Is  117" color: yellow info1: "visited: 29
+Const of type type_unknown
+"}
+edge: { sourcename: "n117" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n174" label: "FilterIs 1 174" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n174" targetname: "n117" label: "0" }
+edge: { sourcename: "n174" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n120" label: "SymC PRIMA size  120"  info1: "visited: 29
+"}
+edge: { sourcename: "n120" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n121" label: "ProjM 1 121" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n121" targetname: "n113" label: "0" color: blue}
+edge: { sourcename: "n121" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n119" label: "Alloc  119"  info1: "visited: 29
+allocating entity of type PRIMA
+"}
+edge: {sourcename: "n119" targetname: "n121" label: "0" color: blue}
+edge: {sourcename: "n119" targetname: "n120" label: "1" }
+edge: { sourcename: "n119" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n118" label: "ProjP 2 118" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n118" targetname: "n119" label: "0" }
+edge: { sourcename: "n118" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n176" label: "FilterP 0 176" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n176" targetname: "n118" label: "0" }
+edge: { sourcename: "n176" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n125" label: "0x2Is  125" color: yellow info1: "visited: 29
+Const of type type_unknown
+"}
+edge: { sourcename: "n125" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n184" label: "FilterIs 1 184" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n184" targetname: "n125" label: "0" }
+edge: { sourcename: "n184" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n183" label: "FilterP 0 183" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n183" targetname: "n118" label: "0" }
+edge: { sourcename: "n183" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n127" label: "ProjM 0 127" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n127" targetname: "n119" label: "0" color: blue}
+edge: { sourcename: "n127" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n182" label: "FilterM 1 182" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n182" targetname: "n127" label: "0" color: blue}
+edge: { sourcename: "n182" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n145" label: "Sel a 145"  info1: "visited: 29
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n145" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n145" targetname: "n183" label: "1" }
+edge: { sourcename: "n145" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n142" label: "Store  142"  info1: "visited: 29
+"}
+edge: {sourcename: "n142" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n142" targetname: "n145" label: "1" }
+edge: {sourcename: "n142" targetname: "n184" label: "2" }
+edge: { sourcename: "n142" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n141" label: "ProjM 0 141" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n141" targetname: "n142" label: "0" color: blue}
+edge: { sourcename: "n141" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n194" label: "FilterM 0 194" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n194" targetname: "n141" label: "0" color: blue}
+edge: { sourcename: "n194" targetname: "n195" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n175" label: "FilterM 1 175" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n175" targetname: "n194" label: "0" color: blue}
+edge: { sourcename: "n175" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n162" label: "Sel a 162"  info1: "visited: 29
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n162" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n162" targetname: "n176" label: "1" }
+edge: { sourcename: "n162" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n161" label: "Load  161"  info1: "visited: 29
+"}
+edge: {sourcename: "n161" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n161" targetname: "n162" label: "1" }
+edge: { sourcename: "n161" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n160" label: "ProjIs 2 160" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n160" targetname: "n161" label: "0" }
+edge: { sourcename: "n160" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n159" label: "AddIs  159"  info1: "visited: 29
+"}
+edge: {sourcename: "n159" targetname: "n160" label: "0" }
+edge: {sourcename: "n159" targetname: "n174" label: "1" }
+edge: { sourcename: "n159" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n201" label: "FilterIs 0 201" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n201" targetname: "n159" label: "0" }
+edge: { sourcename: "n201" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n167" label: "ProjM 0 167" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n167" targetname: "n161" label: "0" color: blue}
+edge: { sourcename: "n167" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n200" label: "FilterM 0 200" color: yellow info1: "visited: 29
+"}
+edge: {sourcename: "n200" targetname: "n167" label: "0" color: blue}
+edge: { sourcename: "n200" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n109" label: "Return  109"  info1: "visited: 29
+"}
+edge: {sourcename: "n109" targetname: "n200" label: "0" color: blue}
+edge: {sourcename: "n109" targetname: "n201" label: "1" }
+edge: { sourcename: "n109" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n108" label: "Block  108" color: lightyellow info1: "visited: 29
+"}
+edge: {sourcename: "n108" targetname: "n109" label: "0" color: red}
+node: {title: "n107" label: "End  107" color: blue info1: "visited: 29
+"}
+edge: { sourcename: "n107" targetname: "n108" class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-pure-wtypes-ip.vcg b/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-pure-wtypes-ip.vcg
new file mode 100644 (file)
index 0000000..d0fbe8d
--- /dev/null
@@ -0,0 +1,351 @@
+graph: { title: "ir graph of GlobalType_OO_PROGRAM_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n112" label: "Block  112" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n112" targetname: "n111" label: "0" color: red}
+node: {title: "n113" label: "Start OO_PROGRAM_EXAMPLE_main  113" color: blue info1: "visited: 33
+start of method of type OO_PROGRAM_EXAMPLE_main
+"}
+edge: { sourcename: "n113" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n111" label: "ProjX 0 111" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n111" targetname: "n113" label: "0" color: red}
+edge: { sourcename: "n111" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n189" label: "Block  189" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n189" targetname: "n111" label: "0" color: red}
+node: {title: "n173" label: "&(PRIMA_set_a)P  173" color: yellow info1: "visited: 33
+Const of type type_unknown
+"}
+edge: { sourcename: "n173" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n191" label: "CallBegin  191"  info1: "visited: 33
+"}
+edge: {sourcename: "n191" targetname: "n173" label: "0" }
+edge: { sourcename: "n191" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n193" label: "ProjX 0 193" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n193" targetname: "n191" label: "0" color: red}
+edge: { sourcename: "n193" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n139" label: "Block  139" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n139" targetname: "n193" label: "0" color: red}
+node: {title: "n140" label: "Start set_a  140" color: blue info1: "visited: 33
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: { sourcename: "n140" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n138" label: "ProjX 0 138" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n138" targetname: "n140" label: "0" color: red}
+edge: { sourcename: "n138" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n137" label: "Block  137" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n137" targetname: "n138" label: "0" color: red}
+node: {title: "n185" label: "Jmp  185"  info1: "visited: 33
+"}
+edge: { sourcename: "n185" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n186" label: "Block  186" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n186" targetname: "n185" label: "0" color: red}
+node: {title: "n187" label: "EndReg  187" color: blue info1: "visited: 33
+"}
+edge: { sourcename: "n187" targetname: "n186" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n192" label: "ProjX 0 192" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n192" targetname: "n187" label: "0" color: red}
+edge: { sourcename: "n192" targetname: "n186" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n195" label: "Block  195" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n195" targetname: "n192" label: "0" color: red}
+node: {title: "n172" label: "&(PRIMA_c)P  172" color: yellow info1: "visited: 33
+Const of type type_unknown
+"}
+edge: { sourcename: "n172" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n197" label: "CallBegin  197"  info1: "visited: 33
+"}
+edge: {sourcename: "n197" targetname: "n172" label: "0" }
+edge: { sourcename: "n197" targetname: "n195" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n199" label: "ProjX 0 199" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n199" targetname: "n197" label: "0" color: red}
+edge: { sourcename: "n199" targetname: "n195" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n157" label: "Block  157" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n157" targetname: "n199" label: "0" color: red}
+node: {title: "n158" label: "Start c  158" color: blue info1: "visited: 33
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: { sourcename: "n158" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n156" label: "ProjX 0 156" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n156" targetname: "n158" label: "0" color: red}
+edge: { sourcename: "n156" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n155" label: "Block  155" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n155" targetname: "n156" label: "0" color: red}
+node: {title: "n177" label: "Jmp  177"  info1: "visited: 33
+"}
+edge: { sourcename: "n177" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n178" label: "Block  178" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n178" targetname: "n177" label: "0" color: red}
+node: {title: "n179" label: "EndReg  179" color: blue info1: "visited: 33
+"}
+edge: { sourcename: "n179" targetname: "n178" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n198" label: "ProjX 0 198" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n198" targetname: "n179" label: "0" color: red}
+edge: { sourcename: "n198" targetname: "n178" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n110" label: "Block  110" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n110" targetname: "n198" label: "0" color: red}
+node: {title: "n117" label: "0x5Is  117" color: yellow info1: "visited: 33
+Const of type type_unknown
+"}
+edge: { sourcename: "n117" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n174" label: "FilterIs 1 174" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n174" targetname: "n117" label: "0" }
+edge: { sourcename: "n174" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n120" label: "SymC PRIMA size  120"  info1: "visited: 33
+"}
+edge: { sourcename: "n120" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n121" label: "ProjM 1 121" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n121" targetname: "n113" label: "0" color: blue}
+edge: { sourcename: "n121" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n119" label: "Alloc  119"  info1: "visited: 33
+allocating entity of type PRIMA
+"}
+edge: {sourcename: "n119" targetname: "n121" label: "0" color: blue}
+edge: {sourcename: "n119" targetname: "n120" label: "1" }
+edge: { sourcename: "n119" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n118" label: "ProjP 2 118" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n118" targetname: "n119" label: "0" }
+edge: { sourcename: "n118" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n176" label: "FilterP 0 176" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n176" targetname: "n118" label: "0" }
+edge: { sourcename: "n176" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n125" label: "0x2Is  125" color: yellow info1: "visited: 33
+Const of type type_unknown
+"}
+edge: { sourcename: "n125" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n184" label: "FilterIs 1 184" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n184" targetname: "n125" label: "0" }
+edge: { sourcename: "n184" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n183" label: "FilterP 0 183" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n183" targetname: "n118" label: "0" }
+edge: { sourcename: "n183" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n127" label: "ProjM 0 127" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n127" targetname: "n119" label: "0" color: blue}
+edge: { sourcename: "n127" targetname: "n189" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n182" label: "FilterM 1 182" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n182" targetname: "n127" label: "0" color: blue}
+edge: { sourcename: "n182" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n145" label: "Sel a 145"  info1: "visited: 33
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n145" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n145" targetname: "n183" label: "1" }
+edge: { sourcename: "n145" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n142" label: "Store  142"  info1: "visited: 33
+"}
+edge: {sourcename: "n142" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n142" targetname: "n145" label: "1" }
+edge: {sourcename: "n142" targetname: "n184" label: "2" }
+edge: { sourcename: "n142" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n141" label: "ProjM 0 141" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n141" targetname: "n142" label: "0" color: blue}
+edge: { sourcename: "n141" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n194" label: "FilterM 0 194" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n194" targetname: "n141" label: "0" color: blue}
+edge: { sourcename: "n194" targetname: "n195" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n175" label: "FilterM 1 175" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n175" targetname: "n194" label: "0" color: blue}
+edge: { sourcename: "n175" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n162" label: "Sel a 162"  info1: "visited: 33
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n162" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n162" targetname: "n176" label: "1" }
+edge: { sourcename: "n162" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n161" label: "Load  161"  info1: "visited: 33
+"}
+edge: {sourcename: "n161" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n161" targetname: "n162" label: "1" }
+edge: { sourcename: "n161" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n160" label: "ProjIs 2 160" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n160" targetname: "n161" label: "0" }
+edge: { sourcename: "n160" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n159" label: "AddIs  159"  info1: "visited: 33
+"}
+edge: {sourcename: "n159" targetname: "n160" label: "0" }
+edge: {sourcename: "n159" targetname: "n174" label: "1" }
+edge: { sourcename: "n159" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n201" label: "FilterIs 0 201" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n201" targetname: "n159" label: "0" }
+edge: { sourcename: "n201" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n167" label: "ProjM 0 167" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n167" targetname: "n161" label: "0" color: blue}
+edge: { sourcename: "n167" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n200" label: "FilterM 0 200" color: yellow info1: "visited: 33
+"}
+edge: {sourcename: "n200" targetname: "n167" label: "0" color: blue}
+edge: { sourcename: "n200" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n109" label: "Return  109"  info1: "visited: 33
+"}
+edge: {sourcename: "n109" targetname: "n200" label: "0" color: blue}
+edge: {sourcename: "n109" targetname: "n201" label: "1" }
+edge: { sourcename: "n109" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n108" label: "Block  108" color: lightyellow info1: "visited: 33
+"}
+edge: {sourcename: "n108" targetname: "n109" label: "0" color: red}
+node: {title: "n107" label: "End  107" color: blue info1: "visited: 33
+"}
+edge: { sourcename: "n107" targetname: "n108" class: 2 priority: 2 linestyle: dotted}
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 35
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 36
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "e24" label: "ent OO_PROGRAM_EXAMPLE_main" color: yellow
+ info1: "
+id: e24
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    OO_PROGRAM_EXAMPLE_main
+ld_name: GlobalType_OO_PROGRAM_EXAMPLE_main
+offset:  -1
+irg = g37"
+}
+edge: { sourcename: "e24" targetname: "t22"class: 3 label: "type" color: red}
+edge: { sourcename: "e24" targetname: "n23"label: "value 0"}
+node: {title: "n23" label: "&(GlobalType_OO_PROGRAM_EXAMPLE_main)P  23" color: yellow info1: "visited: 37
+Const of type type_unknown
+"}
+node: {title: "t0" label: "class GlobalType" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t0" targetname: "e24"class: 12 label: "member" color:blue}
+node: {title: "t22" label: "method OO_PROGRAM_EXAMPLE_main" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t22" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t25" label: "class OO_PROGRAM_EXAMPLE_mainframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n162" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n119" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n120" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n145" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-type.vcg b/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-type.vcg
new file mode 100644 (file)
index 0000000..3ddcc51
--- /dev/null
@@ -0,0 +1,127 @@
+graph: { title: "ir graph of GlobalType_OO_PROGRAM_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 7
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 7
+Const of type type_unknown
+"}
+node: {title: "e24" label: "ent OO_PROGRAM_EXAMPLE_main" color: yellow
+ info1: "
+id: e24
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    OO_PROGRAM_EXAMPLE_main
+ld_name: GlobalType_OO_PROGRAM_EXAMPLE_main
+offset:  -1
+irg = g37"
+}
+edge: { sourcename: "e24" targetname: "t22"class: 3 label: "type" color: red}
+edge: { sourcename: "e24" targetname: "n23"label: "value 0"}
+node: {title: "n23" label: "&(GlobalType_OO_PROGRAM_EXAMPLE_main)P  23" color: yellow info1: "visited: 7
+Const of type type_unknown
+"}
+node: {title: "t0" label: "class GlobalType" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t0" targetname: "e24"class: 12 label: "member" color:blue}
+node: {title: "t22" label: "method OO_PROGRAM_EXAMPLE_main" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t22" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t25" label: "class OO_PROGRAM_EXAMPLE_mainframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+}
diff --git a/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-wtypes-ip.vcg b/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-wtypes-ip.vcg
new file mode 100644 (file)
index 0000000..2a3eb22
--- /dev/null
@@ -0,0 +1,327 @@
+graph: { title: "ir graph of GlobalType_OO_PROGRAM_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80aea48" label: "OO_PROGRAM_EXAMPLE_main" status:clustered color:white
+graph: { title: "n108"  label: "Block 108" status:clustered color:yellow
+edge: {sourcename: "n108" targetname: "n109" label: "0" color: red}
+node: {title: "n107" label: "End  107" color: blue info1: "visited: 40
+"}
+}
+
+graph: { title: "n110"  label: "Block 110" status:clustered color:yellow
+edge: {sourcename: "n110" targetname: "n198" label: "0" color: red}
+node: {title: "n109" label: "Return  109"  info1: "visited: 40
+"}
+edge: {sourcename: "n109" targetname: "n200" label: "0" color: blue}
+edge: {sourcename: "n109" targetname: "n201" label: "1" }
+node: {title: "n200" label: "FilterM 0 200" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n200" targetname: "n167" label: "0" color: blue}
+node: {title: "n201" label: "FilterIs 0 201" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n201" targetname: "n159" label: "0" }
+}
+
+graph: { title: "n195"  label: "Block 195" status:clustered color:yellow
+edge: {sourcename: "n195" targetname: "n192" label: "0" color: red}
+node: {title: "n194" label: "FilterM 0 194" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n194" targetname: "n141" label: "0" color: blue}
+node: {title: "n199" label: "ProjX 0 199" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n199" targetname: "n197" label: "0" color: red}
+node: {title: "n197" label: "CallBegin  197"  info1: "visited: 40
+"}
+edge: {sourcename: "n197" targetname: "n172" label: "0" }
+}
+
+graph: { title: "n189"  label: "Block 189" status:clustered color:yellow
+edge: {sourcename: "n189" targetname: "n111" label: "0" color: red}
+node: {title: "n127" label: "ProjM 0 127" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n127" targetname: "n119" label: "0" color: blue}
+node: {title: "n118" label: "ProjP 2 118" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n118" targetname: "n119" label: "0" }
+node: {title: "n119" label: "Alloc  119"  info1: "visited: 40
+allocating entity of type PRIMA
+"}
+edge: {sourcename: "n119" targetname: "n121" label: "0" color: blue}
+edge: {sourcename: "n119" targetname: "n120" label: "1" }
+node: {title: "n193" label: "ProjX 0 193" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n193" targetname: "n191" label: "0" color: red}
+node: {title: "n191" label: "CallBegin  191"  info1: "visited: 40
+"}
+edge: {sourcename: "n191" targetname: "n173" label: "0" }
+}
+
+graph: { title: "n112"  label: "Block 112" status:clustered color:yellow
+edge: {sourcename: "n112" targetname: "n111" label: "0" color: red}
+node: {title: "n125" label: "0x2Is  125" color: yellow info1: "visited: 40
+Const of type type_unknown
+"}
+node: {title: "n121" label: "ProjM 1 121" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n121" targetname: "n113" label: "0" color: blue}
+node: {title: "n120" label: "SymC PRIMA size  120"  info1: "visited: 40
+"}
+node: {title: "n117" label: "0x5Is  117" color: yellow info1: "visited: 40
+Const of type type_unknown
+"}
+node: {title: "n172" label: "&(PRIMA_c)P  172" color: yellow info1: "visited: 40
+Const of type type_unknown
+"}
+node: {title: "n173" label: "&(PRIMA_set_a)P  173" color: yellow info1: "visited: 40
+Const of type type_unknown
+"}
+node: {title: "n111" label: "ProjX 0 111" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n111" targetname: "n113" label: "0" color: red}
+node: {title: "n113" label: "Start OO_PROGRAM_EXAMPLE_main  113" color: blue info1: "visited: 40
+start of method of type OO_PROGRAM_EXAMPLE_main
+"}
+}
+
+}
+
+graph: { title: "0x80b1028" label: "set_a" status:clustered color:white
+graph: { title: "n186"  label: "Block 186" status:clustered color:yellow
+edge: {sourcename: "n186" targetname: "n185" label: "0" color: red}
+node: {title: "n192" label: "ProjX 0 192" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n192" targetname: "n187" label: "0" color: red}
+node: {title: "n187" label: "EndReg  187" color: blue info1: "visited: 40
+"}
+}
+
+graph: { title: "n137"  label: "Block 137" status:clustered color:yellow
+edge: {sourcename: "n137" targetname: "n138" label: "0" color: red}
+node: {title: "n141" label: "ProjM 0 141" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n141" targetname: "n142" label: "0" color: blue}
+node: {title: "n142" label: "Store  142"  info1: "visited: 40
+"}
+edge: {sourcename: "n142" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n142" targetname: "n145" label: "1" }
+edge: {sourcename: "n142" targetname: "n184" label: "2" }
+node: {title: "n145" label: "Sel a 145"  info1: "visited: 40
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n145" targetname: "n182" label: "0" color: blue}
+edge: {sourcename: "n145" targetname: "n183" label: "1" }
+node: {title: "n185" label: "Jmp  185"  info1: "visited: 40
+"}
+}
+
+graph: { title: "n139"  label: "Block 139" status:clustered color:yellow
+edge: {sourcename: "n139" targetname: "n193" label: "0" color: red}
+node: {title: "n182" label: "FilterM 1 182" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n182" targetname: "n127" label: "0" color: blue}
+node: {title: "n183" label: "FilterP 0 183" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n183" targetname: "n118" label: "0" }
+node: {title: "n184" label: "FilterIs 1 184" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n184" targetname: "n125" label: "0" }
+node: {title: "n138" label: "ProjX 0 138" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n138" targetname: "n140" label: "0" color: red}
+node: {title: "n140" label: "Start set_a  140" color: blue info1: "visited: 40
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+graph: { title: "0x80b3640" label: "c" status:clustered color:white
+graph: { title: "n178"  label: "Block 178" status:clustered color:yellow
+edge: {sourcename: "n178" targetname: "n177" label: "0" color: red}
+node: {title: "n198" label: "ProjX 0 198" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n198" targetname: "n179" label: "0" color: red}
+node: {title: "n179" label: "EndReg  179" color: blue info1: "visited: 40
+"}
+}
+
+graph: { title: "n155"  label: "Block 155" status:clustered color:yellow
+edge: {sourcename: "n155" targetname: "n156" label: "0" color: red}
+node: {title: "n167" label: "ProjM 0 167" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n167" targetname: "n161" label: "0" color: blue}
+node: {title: "n159" label: "AddIs  159"  info1: "visited: 40
+"}
+edge: {sourcename: "n159" targetname: "n160" label: "0" }
+edge: {sourcename: "n159" targetname: "n174" label: "1" }
+node: {title: "n160" label: "ProjIs 2 160" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n160" targetname: "n161" label: "0" }
+node: {title: "n161" label: "Load  161"  info1: "visited: 40
+"}
+edge: {sourcename: "n161" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n161" targetname: "n162" label: "1" }
+node: {title: "n162" label: "Sel a 162"  info1: "visited: 40
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n162" targetname: "n175" label: "0" color: blue}
+edge: {sourcename: "n162" targetname: "n176" label: "1" }
+node: {title: "n177" label: "Jmp  177"  info1: "visited: 40
+"}
+}
+
+graph: { title: "n157"  label: "Block 157" status:clustered color:yellow
+edge: {sourcename: "n157" targetname: "n199" label: "0" color: red}
+node: {title: "n175" label: "FilterM 1 175" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n175" targetname: "n194" label: "0" color: blue}
+node: {title: "n176" label: "FilterP 0 176" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n176" targetname: "n118" label: "0" }
+node: {title: "n174" label: "FilterIs 1 174" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n174" targetname: "n117" label: "0" }
+node: {title: "n156" label: "ProjX 0 156" color: yellow info1: "visited: 40
+"}
+edge: {sourcename: "n156" targetname: "n158" label: "0" color: red}
+node: {title: "n158" label: "Start c  158" color: blue info1: "visited: 40
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 42
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 43
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "e24" label: "ent OO_PROGRAM_EXAMPLE_main" color: yellow
+ info1: "
+id: e24
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    OO_PROGRAM_EXAMPLE_main
+ld_name: GlobalType_OO_PROGRAM_EXAMPLE_main
+offset:  -1
+irg = g37"
+}
+edge: { sourcename: "e24" targetname: "t22"class: 3 label: "type" color: red}
+edge: { sourcename: "e24" targetname: "n23"label: "value 0"}
+node: {title: "n23" label: "&(GlobalType_OO_PROGRAM_EXAMPLE_main)P  23" color: yellow info1: "visited: 44
+Const of type type_unknown
+"}
+node: {title: "t0" label: "class GlobalType" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t0" targetname: "e24"class: 12 label: "member" color:blue}
+node: {title: "t22" label: "method OO_PROGRAM_EXAMPLE_main" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t22" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t25" label: "class OO_PROGRAM_EXAMPLE_mainframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n162" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n119" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n120" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n145" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-wtypes.vcg b/testprograms/ref-results/GlobalType_OO_PROGRAM_EXAMPLE_main-wtypes.vcg
new file mode 100644 (file)
index 0000000..38befa1
--- /dev/null
@@ -0,0 +1,227 @@
+graph: { title: "ir graph of GlobalType_OO_PROGRAM_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80aea48" label: "OO_PROGRAM_EXAMPLE_main" status:clustered color:white
+graph: { title: "n108"  label: "Block 108" status:clustered color:yellow
+edge: {sourcename: "n108" targetname: "n109" label: "0" color: red}
+node: {title: "n107" label: "End  107" color: blue info1: "visited: 20
+"}
+}
+
+graph: { title: "n110"  label: "Block 110" status:clustered color:yellow
+edge: {sourcename: "n110" targetname: "n111" label: "0" color: red}
+node: {title: "n109" label: "Return  109"  info1: "visited: 20
+return in method of type OO_PROGRAM_EXAMPLE_main
+  res 0 type: int
+"}
+edge: {sourcename: "n109" targetname: "n128" label: "0" color: blue}
+edge: {sourcename: "n109" targetname: "n114" label: "1" }
+node: {title: "n128" label: "ProjM 0 128" color: yellow info1: "visited: 20
+"}
+edge: {sourcename: "n128" targetname: "n116" label: "0" color: blue}
+node: {title: "n114" label: "ProjIs 0 114" color: yellow info1: "visited: 20
+"}
+edge: {sourcename: "n114" targetname: "n115" label: "0" }
+node: {title: "n115" label: "ProjT 2 115" color: yellow info1: "visited: 20
+"}
+edge: {sourcename: "n115" targetname: "n116" label: "0" }
+node: {title: "n116" label: "Call  116"  info1: "visited: 20
+calling method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+  resul 0 type: int
+"}
+edge: {sourcename: "n116" targetname: "n123" label: "0" color: blue}
+edge: {sourcename: "n116" targetname: "n122" label: "1" }
+edge: {sourcename: "n116" targetname: "n118" label: "2" }
+edge: {sourcename: "n116" targetname: "n117" label: "3" }
+node: {title: "n122" label: "Sel c 122"  info1: "visited: 20
+Selecting entity of type c
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n122" targetname: "n123" label: "0" color: blue}
+edge: {sourcename: "n122" targetname: "n118" label: "1" }
+node: {title: "n123" label: "ProjM 0 123" color: yellow info1: "visited: 20
+"}
+edge: {sourcename: "n123" targetname: "n124" label: "0" color: blue}
+node: {title: "n124" label: "Call  124"  info1: "visited: 20
+calling method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: {sourcename: "n124" targetname: "n127" label: "0" color: blue}
+edge: {sourcename: "n124" targetname: "n126" label: "1" }
+edge: {sourcename: "n124" targetname: "n118" label: "2" }
+edge: {sourcename: "n124" targetname: "n125" label: "3" }
+node: {title: "n126" label: "Sel set_a 126"  info1: "visited: 20
+Selecting entity of type set_a
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n126" targetname: "n127" label: "0" color: blue}
+edge: {sourcename: "n126" targetname: "n118" label: "1" }
+node: {title: "n127" label: "ProjM 0 127" color: yellow info1: "visited: 20
+"}
+edge: {sourcename: "n127" targetname: "n119" label: "0" color: blue}
+node: {title: "n118" label: "ProjP 2 118" color: yellow info1: "visited: 20
+"}
+edge: {sourcename: "n118" targetname: "n119" label: "0" }
+node: {title: "n119" label: "Alloc  119"  info1: "visited: 20
+allocating entity of type PRIMA
+"}
+edge: {sourcename: "n119" targetname: "n121" label: "0" color: blue}
+edge: {sourcename: "n119" targetname: "n120" label: "1" }
+}
+
+graph: { title: "n112"  label: "Block 112" status:clustered color:yellow
+edge: {sourcename: "n112" targetname: "n111" label: "0" color: red}
+node: {title: "n125" label: "0x2Is  125" color: yellow info1: "visited: 20
+Const of type type_unknown
+"}
+node: {title: "n121" label: "ProjM 1 121" color: yellow info1: "visited: 20
+"}
+edge: {sourcename: "n121" targetname: "n113" label: "0" color: blue}
+node: {title: "n120" label: "SymC PRIMA size  120"  info1: "visited: 20
+"}
+node: {title: "n117" label: "0x5Is  117" color: yellow info1: "visited: 20
+Const of type type_unknown
+"}
+node: {title: "n111" label: "ProjX 0 111" color: yellow info1: "visited: 20
+"}
+edge: {sourcename: "n111" targetname: "n113" label: "0" color: red}
+node: {title: "n113" label: "Start  113" color: blue info1: "visited: 20
+start of method of type OO_PROGRAM_EXAMPLE_main
+"}
+}
+
+}
+
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 4
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 4
+Const of type type_unknown
+"}
+node: {title: "e24" label: "ent OO_PROGRAM_EXAMPLE_main" color: yellow
+ info1: "
+id: e24
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    OO_PROGRAM_EXAMPLE_main
+ld_name: GlobalType_OO_PROGRAM_EXAMPLE_main
+offset:  -1
+irg = g37"
+}
+edge: { sourcename: "e24" targetname: "t22"class: 3 label: "type" color: red}
+edge: { sourcename: "e24" targetname: "n23"label: "value 0"}
+node: {title: "n23" label: "&(GlobalType_OO_PROGRAM_EXAMPLE_main)P  23" color: yellow info1: "visited: 4
+Const of type type_unknown
+"}
+node: {title: "t0" label: "class GlobalType" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t0" targetname: "e24"class: 12 label: "member" color:blue}
+node: {title: "t22" label: "method OO_PROGRAM_EXAMPLE_main" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t22" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t25" label: "class OO_PROGRAM_EXAMPLE_mainframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n116" targetname: "t19"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n119" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n120" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n122" targetname: "e21"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n124" targetname: "t16"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n126" targetname: "e18"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/IF_WHILE_EXAMPLE_main-pure.vcg b/testprograms/ref-results/IF_WHILE_EXAMPLE_main-pure.vcg
new file mode 100644 (file)
index 0000000..f7cb513
--- /dev/null
@@ -0,0 +1,156 @@
+graph: { title: "ir graph of IF_WHILE_EXAMPLE_main"
+display_edge_labels: no
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n90" label: "Start  90" color: blue info1: "visited: 14
+start of method of type main
+"}
+edge: { sourcename: "n90" targetname: "n88" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n89" label: "ProjX 0 89" color: yellow info1: "visited: 14
+"}
+edge: {sourcename: "n89" targetname: "n90" label: "0" color: red}
+edge: { sourcename: "n89" targetname: "n88" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n88" label: "Block  88" color: lightyellow info1: "visited: 14
+"}
+edge: {sourcename: "n88" targetname: "n89" label: "0" color: red}
+node: {title: "n87" label: "0x0Iu  87" color: yellow info1: "visited: 14
+Const of type type_unknown
+"}
+edge: { sourcename: "n87" targetname: "n88" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n86" label: "CmpT  86"  info1: "visited: 14
+"}
+edge: {sourcename: "n86" targetname: "n87" label: "0" }
+edge: {sourcename: "n86" targetname: "n87" label: "1" }
+edge: { sourcename: "n86" targetname: "n80" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n85" label: "Projb Eq 85" color: yellow info1: "visited: 14
+"}
+edge: {sourcename: "n85" targetname: "n86" label: "0" }
+edge: { sourcename: "n85" targetname: "n80" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n84" label: "Cond  84"  info1: "visited: 14
+"}
+edge: {sourcename: "n84" targetname: "n85" label: "0" }
+edge: { sourcename: "n84" targetname: "n80" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n83" label: "ProjX 1 83" color: yellow info1: "visited: 14
+"}
+edge: {sourcename: "n83" targetname: "n84" label: "0" color: red}
+edge: { sourcename: "n83" targetname: "n80" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n82" label: "Block  82" color: lightyellow info1: "visited: 14
+"}
+edge: {sourcename: "n82" targetname: "n83" label: "0" color: red}
+node: {title: "n81" label: "Jmp  81"  info1: "visited: 14
+"}
+edge: { sourcename: "n81" targetname: "n82" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n92" label: "Block  92" color: lightyellow info1: "visited: 14
+"}
+edge: {sourcename: "n92" targetname: "n89" label: "0" color: red}
+node: {title: "n91" label: "Jmp  91"  info1: "visited: 14
+"}
+edge: { sourcename: "n91" targetname: "n92" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n80" label: "Block  80" color: lightyellow info1: "visited: 14
+"}
+edge: {sourcename: "n80" targetname: "n91" label: "0" color: red}
+edge: {sourcename: "n80" targetname: "n81" label: "1" color: red}
+node: {title: "n79" label: "ProjX 0 79" color: yellow info1: "visited: 14
+"}
+edge: {sourcename: "n79" targetname: "n84" label: "0" color: red}
+edge: { sourcename: "n79" targetname: "n80" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n78" label: "Block  78" color: lightyellow info1: "visited: 14
+"}
+edge: {sourcename: "n78" targetname: "n79" label: "0" color: red}
+node: {title: "n96" label: "0x0Iu  96" color: yellow info1: "visited: 14
+Const of type type_unknown
+"}
+edge: { sourcename: "n96" targetname: "n88" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n95" label: "PhiIu  95" color: green info1: "visited: 14
+"}
+edge: {sourcename: "n95" targetname: "n96" label: "0" }
+edge: {sourcename: "n95" targetname: "n94" label: "1" }
+edge: { sourcename: "n95" targetname: "n80" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n97" label: "0x1Iu  97" color: yellow info1: "visited: 14
+Const of type type_unknown
+"}
+edge: { sourcename: "n97" targetname: "n88" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n94" label: "PhiIu  94" color: green info1: "visited: 14
+"}
+edge: {sourcename: "n94" targetname: "n97" label: "0" }
+edge: {sourcename: "n94" targetname: "n95" label: "1" }
+edge: { sourcename: "n94" targetname: "n80" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n93" label: "SubIu  93"  info1: "visited: 14
+"}
+edge: {sourcename: "n93" targetname: "n95" label: "0" }
+edge: {sourcename: "n93" targetname: "n94" label: "1" }
+edge: { sourcename: "n93" targetname: "n78" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n98" label: "ProjM 1 98" color: yellow info1: "visited: 14
+"}
+edge: {sourcename: "n98" targetname: "n90" label: "0" color: blue}
+edge: { sourcename: "n98" targetname: "n88" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n77" label: "Return  77"  info1: "visited: 14
+return in method of type main
+  res 0 type: int
+"}
+edge: {sourcename: "n77" targetname: "n98" label: "0" color: blue}
+edge: {sourcename: "n77" targetname: "n93" label: "1" }
+edge: { sourcename: "n77" targetname: "n78" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n76" label: "Block  76" color: lightyellow info1: "visited: 14
+"}
+edge: {sourcename: "n76" targetname: "n77" label: "0" color: red}
+node: {title: "n75" label: "End  75" color: blue info1: "visited: 14
+"}
+edge: { sourcename: "n75" targetname: "n76" class: 2 priority: 2 linestyle: dotted}
+edge: {sourcename: "n90" targetname: "n89" color: red linestyle: dashed}
+edge: {sourcename: "n90" targetname: "n98" color: red linestyle: dashed}
+edge: {sourcename: "n89" targetname: "n92" color: red linestyle: dashed}
+edge: {sourcename: "n89" targetname: "n88" color: red linestyle: dashed}
+edge: {sourcename: "n92" targetname: "n91" color: red linestyle: dashed}
+edge: {sourcename: "n91" targetname: "n80" color: red linestyle: dashed}
+edge: {sourcename: "n80" targetname: "n83" color: red linestyle: dashed}
+edge: {sourcename: "n80" targetname: "n84" color: red linestyle: dashed}
+edge: {sourcename: "n80" targetname: "n85" color: red linestyle: dashed}
+edge: {sourcename: "n80" targetname: "n86" color: red linestyle: dashed}
+edge: {sourcename: "n80" targetname: "n79" color: red linestyle: dashed}
+edge: {sourcename: "n80" targetname: "n95" color: red linestyle: dashed}
+edge: {sourcename: "n80" targetname: "n94" color: red linestyle: dashed}
+edge: {sourcename: "n83" targetname: "n82" color: red linestyle: dashed}
+edge: {sourcename: "n82" targetname: "n81" color: red linestyle: dashed}
+edge: {sourcename: "n81" targetname: "n80" color: red linestyle: dashed}
+edge: {sourcename: "n84" targetname: "n83" color: red linestyle: dashed}
+edge: {sourcename: "n84" targetname: "n79" color: red linestyle: dashed}
+edge: {sourcename: "n79" targetname: "n78" color: red linestyle: dashed}
+edge: {sourcename: "n78" targetname: "n77" color: red linestyle: dashed}
+edge: {sourcename: "n78" targetname: "n93" color: red linestyle: dashed}
+edge: {sourcename: "n77" targetname: "n76" color: red linestyle: dashed}
+edge: {sourcename: "n76" targetname: "n75" color: red linestyle: dashed}
+edge: {sourcename: "n93" targetname: "n77" color: red linestyle: dashed}
+edge: {sourcename: "n85" targetname: "n84" color: red linestyle: dashed}
+edge: {sourcename: "n86" targetname: "n85" color: red linestyle: dashed}
+edge: {sourcename: "n95" targetname: "n94" color: red linestyle: dashed}
+edge: {sourcename: "n95" targetname: "n93" color: red linestyle: dashed}
+edge: {sourcename: "n94" targetname: "n95" color: red linestyle: dashed}
+edge: {sourcename: "n94" targetname: "n93" color: red linestyle: dashed}
+edge: {sourcename: "n88" targetname: "n89" color: red linestyle: dashed}
+edge: {sourcename: "n88" targetname: "n90" color: red linestyle: dashed}
+edge: {sourcename: "n88" targetname: "n87" color: red linestyle: dashed}
+edge: {sourcename: "n88" targetname: "n98" color: red linestyle: dashed}
+edge: {sourcename: "n88" targetname: "n96" color: red linestyle: dashed}
+edge: {sourcename: "n88" targetname: "n97" color: red linestyle: dashed}
+edge: {sourcename: "n87" targetname: "n86" color: red linestyle: dashed}
+edge: {sourcename: "n87" targetname: "n86" color: red linestyle: dashed}
+edge: {sourcename: "n98" targetname: "n77" color: red linestyle: dashed}
+edge: {sourcename: "n96" targetname: "n95" color: red linestyle: dashed}
+edge: {sourcename: "n97" targetname: "n94" color: red linestyle: dashed}
+}
diff --git a/testprograms/ref-results/OO_INLINE_EXAMPLE_main-wtypes.vcg b/testprograms/ref-results/OO_INLINE_EXAMPLE_main-wtypes.vcg
new file mode 100644 (file)
index 0000000..cb81fa8
--- /dev/null
@@ -0,0 +1,224 @@
+graph: { title: "ir graph of OO_INLINE_EXAMPLE_main"
+display_edge_labels: no
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80aec28" label: "OO_INLINE_EXAMPLE_main" status:clustered color:white
+graph: { title: "n200"  label: "Block 200" status:clustered color:yellow
+edge: {sourcename: "n200" targetname: "n202" label: "0" color: red}
+edge: {sourcename: "n200" targetname: "n201" label: "1" color: red}
+node: {title: "n204" label: "PhiM  204" color: green info1: "visited: 22
+"}
+edge: {sourcename: "n204" targetname: "n215" label: "0" color: blue}
+edge: {sourcename: "n204" targetname: "n205" label: "1" color: blue}
+node: {title: "n205" label: "Store  205"  info1: "visited: 22
+"}
+edge: {sourcename: "n205" targetname: "n204" label: "0" color: blue}
+edge: {sourcename: "n205" targetname: "n210" label: "1" }
+edge: {sourcename: "n205" targetname: "n206" label: "2" }
+node: {title: "n210" label: "Sel a 210"  info1: "visited: 22
+Selecting entity of type int
+  from entity of type PRIMA_INLINE
+"}
+edge: {sourcename: "n210" targetname: "n204" label: "0" color: blue}
+edge: {sourcename: "n210" targetname: "n211" label: "1" }
+node: {title: "n206" label: "PhiIs  206" color: green info1: "visited: 22
+"}
+edge: {sourcename: "n206" targetname: "n209" label: "0" }
+edge: {sourcename: "n206" targetname: "n207" label: "1" }
+node: {title: "n207" label: "PhiIs  207" color: green info1: "visited: 22
+"}
+edge: {sourcename: "n207" targetname: "n208" label: "0" }
+edge: {sourcename: "n207" targetname: "n206" label: "1" }
+node: {title: "n201" label: "Jmp  201"  info1: "visited: 22
+"}
+}
+
+graph: { title: "n203"  label: "Block 203" status:clustered color:yellow
+edge: {sourcename: "n203" targetname: "n198" label: "0" color: red}
+node: {title: "n215" label: "ProjM 0 215" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n215" targetname: "n216" label: "0" color: blue}
+node: {title: "n216" label: "Store  216"  info1: "visited: 22
+"}
+edge: {sourcename: "n216" targetname: "n219" label: "0" color: blue}
+edge: {sourcename: "n216" targetname: "n218" label: "1" }
+edge: {sourcename: "n216" targetname: "n217" label: "2" }
+node: {title: "n218" label: "Sel a 218"  info1: "visited: 22
+Selecting entity of type int
+  from entity of type PRIMA_INLINE
+"}
+edge: {sourcename: "n218" targetname: "n219" label: "0" color: blue}
+edge: {sourcename: "n218" targetname: "n211" label: "1" }
+node: {title: "n219" label: "ProjM 0 219" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n219" targetname: "n212" label: "0" color: blue}
+node: {title: "n211" label: "ProjP 2 211" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n211" targetname: "n212" label: "0" }
+node: {title: "n212" label: "Alloc  212"  info1: "visited: 22
+allocating entity of type PRIMA_INLINE
+"}
+edge: {sourcename: "n212" targetname: "n214" label: "0" color: blue}
+edge: {sourcename: "n212" targetname: "n213" label: "1" }
+node: {title: "n208" label: "0x0Is  208" color: yellow info1: "visited: 22
+Const of type type_unknown
+"}
+node: {title: "n202" label: "Jmp  202"  info1: "visited: 22
+"}
+}
+
+graph: { title: "n197"  label: "Block 197" status:clustered color:yellow
+edge: {sourcename: "n197" targetname: "n198" label: "0" color: red}
+node: {title: "n217" label: "0x2Is  217" color: yellow info1: "visited: 22
+Const of type type_unknown
+"}
+node: {title: "n214" label: "ProjM 1 214" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n214" targetname: "n199" label: "0" color: blue}
+node: {title: "n213" label: "SymC PRIMA_INLINE size  213"  info1: "visited: 22
+"}
+node: {title: "n209" label: "0x5Is  209" color: yellow info1: "visited: 22
+Const of type type_unknown
+"}
+node: {title: "n198" label: "ProjX 0 198" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n198" targetname: "n199" label: "0" color: red}
+node: {title: "n199" label: "Start  199" color: blue info1: "visited: 22
+start of method of type OO_INLINE_EXAMPLE_main
+"}
+}
+
+graph: { title: "n195"  label: "Block 195" status:clustered color:yellow
+node: {title: "n194" label: "End  194" color: blue info1: "visited: 22
+"}
+}
+
+}
+
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA_INLINE" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_INLINE_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_INLINE_set_a)P  17" color: yellow info1: "visited: 1
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_INLINE_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_INLINE_c)P  20" color: yellow info1: "visited: 1
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "e24" label: "ent OO_INLINE_EXAMPLE_main" color: yellow
+ info1: "
+id: e24
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    OO_INLINE_EXAMPLE_main
+ld_name: no yet set
+offset:  -1
+irg = g37"
+}
+edge: { sourcename: "e24" targetname: "t22"class: 3 label: "type" color: red}
+edge: { sourcename: "e24" targetname: "n23"label: "value 0"}
+node: {title: "n23" label: "&(GlobalType_OO_INLINE_EXAMPLE_main)P  23" color: yellow info1: "visited: 1
+Const of type type_unknown
+"}
+node: {title: "t0" label: "class GlobalType" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t0" targetname: "e24"class: 12 label: "member" color:blue}
+node: {title: "t22" label: "method OO_INLINE_EXAMPLE_main" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t22" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t25" label: "class OO_INLINE_EXAMPLE_mainframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n210" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n212" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n213" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n218" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/OO_PROGRAM_EXAMPLE_main-pure-wtypes.vcg b/testprograms/ref-results/OO_PROGRAM_EXAMPLE_main-pure-wtypes.vcg
new file mode 100644 (file)
index 0000000..3ec1b0b
--- /dev/null
@@ -0,0 +1,240 @@
+graph: { title: "ir graph of OO_PROGRAM_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n112" label: "Block  112" color: lightyellow info1: "visited: 17
+"}
+edge: {sourcename: "n112" targetname: "n111" label: "0" color: red}
+node: {title: "n113" label: "Start  113" color: blue info1: "visited: 17
+start of method of type OO_PROGRAM_EXAMPLE_main
+"}
+edge: { sourcename: "n113" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n111" label: "ProjX 0 111" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n111" targetname: "n113" label: "0" color: red}
+edge: { sourcename: "n111" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n110" label: "Block  110" color: lightyellow info1: "visited: 17
+"}
+edge: {sourcename: "n110" targetname: "n111" label: "0" color: red}
+node: {title: "n117" label: "0x5Is  117" color: yellow info1: "visited: 17
+Const of type type_unknown
+"}
+edge: { sourcename: "n117" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n120" label: "SymC PRIMA size  120"  info1: "visited: 17
+"}
+edge: { sourcename: "n120" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n121" label: "ProjM 1 121" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n121" targetname: "n113" label: "0" color: blue}
+edge: { sourcename: "n121" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n119" label: "Alloc  119"  info1: "visited: 17
+allocating entity of type PRIMA
+"}
+edge: {sourcename: "n119" targetname: "n121" label: "0" color: blue}
+edge: {sourcename: "n119" targetname: "n120" label: "1" }
+edge: { sourcename: "n119" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n118" label: "ProjP 2 118" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n118" targetname: "n119" label: "0" }
+edge: { sourcename: "n118" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n125" label: "0x2Is  125" color: yellow info1: "visited: 17
+Const of type type_unknown
+"}
+edge: { sourcename: "n125" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n127" label: "ProjM 0 127" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n127" targetname: "n119" label: "0" color: blue}
+edge: { sourcename: "n127" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n126" label: "Sel set_a 126"  info1: "visited: 17
+Selecting entity of type set_a
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n126" targetname: "n127" label: "0" color: blue}
+edge: {sourcename: "n126" targetname: "n118" label: "1" }
+edge: { sourcename: "n126" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n124" label: "Call  124"  info1: "visited: 17
+calling method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: {sourcename: "n124" targetname: "n127" label: "0" color: blue}
+edge: {sourcename: "n124" targetname: "n126" label: "1" }
+edge: {sourcename: "n124" targetname: "n118" label: "2" }
+edge: {sourcename: "n124" targetname: "n125" label: "3" }
+edge: { sourcename: "n124" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n123" label: "ProjM 0 123" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n123" targetname: "n124" label: "0" color: blue}
+edge: { sourcename: "n123" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n122" label: "Sel c 122"  info1: "visited: 17
+Selecting entity of type c
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n122" targetname: "n123" label: "0" color: blue}
+edge: {sourcename: "n122" targetname: "n118" label: "1" }
+edge: { sourcename: "n122" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n116" label: "Call  116"  info1: "visited: 17
+calling method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+  resul 0 type: int
+"}
+edge: {sourcename: "n116" targetname: "n123" label: "0" color: blue}
+edge: {sourcename: "n116" targetname: "n122" label: "1" }
+edge: {sourcename: "n116" targetname: "n118" label: "2" }
+edge: {sourcename: "n116" targetname: "n117" label: "3" }
+edge: { sourcename: "n116" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n115" label: "ProjT 2 115" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n115" targetname: "n116" label: "0" }
+edge: { sourcename: "n115" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n114" label: "ProjIs 0 114" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n114" targetname: "n115" label: "0" }
+edge: { sourcename: "n114" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n128" label: "ProjM 0 128" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n128" targetname: "n116" label: "0" color: blue}
+edge: { sourcename: "n128" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n109" label: "Return  109"  info1: "visited: 17
+return in method of type OO_PROGRAM_EXAMPLE_main
+  res 0 type: int
+"}
+edge: {sourcename: "n109" targetname: "n128" label: "0" color: blue}
+edge: {sourcename: "n109" targetname: "n114" label: "1" }
+edge: { sourcename: "n109" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n108" label: "Block  108" color: lightyellow info1: "visited: 17
+"}
+edge: {sourcename: "n108" targetname: "n109" label: "0" color: red}
+node: {title: "n107" label: "End  107" color: blue info1: "visited: 17
+"}
+edge: { sourcename: "n107" targetname: "n108" class: 2 priority: 2 linestyle: dotted}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 1
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 1
+Const of type type_unknown
+"}
+node: {title: "e24" label: "ent OO_PROGRAM_EXAMPLE_main" color: yellow
+ info1: "
+id: e24
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    OO_PROGRAM_EXAMPLE_main
+ld_name: no yet set
+offset:  -1
+irg = g37"
+}
+edge: { sourcename: "e24" targetname: "t22"class: 3 label: "type" color: red}
+edge: { sourcename: "e24" targetname: "n23"label: "value 0"}
+node: {title: "n23" label: "&(GlobalType_OO_PROGRAM_EXAMPLE_main)P  23" color: yellow info1: "visited: 1
+Const of type type_unknown
+"}
+node: {title: "t0" label: "class GlobalType" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t0" targetname: "e24"class: 12 label: "member" color:blue}
+node: {title: "t22" label: "method OO_PROGRAM_EXAMPLE_main" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t22" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t25" label: "class OO_PROGRAM_EXAMPLE_mainframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n116" targetname: "t19"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n119" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n120" targetname: "t13"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n122" targetname: "e21"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n124" targetname: "t16"class: 2 priority: 2 linestyle: dotted}
+edge: { sourcename: "n126" targetname: "e18"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/OO_PROGRAM_EXAMPLE_main-pure.vcg b/testprograms/ref-results/OO_PROGRAM_EXAMPLE_main-pure.vcg
new file mode 100644 (file)
index 0000000..72508eb
--- /dev/null
@@ -0,0 +1,127 @@
+graph: { title: "ir graph of OO_PROGRAM_EXAMPLE_main"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n112" label: "Block  112" color: lightyellow info1: "visited: 15
+"}
+edge: {sourcename: "n112" targetname: "n111" label: "0" color: red}
+node: {title: "n113" label: "Start  113" color: blue info1: "visited: 15
+start of method of type OO_PROGRAM_EXAMPLE_main
+"}
+edge: { sourcename: "n113" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n111" label: "ProjX 0 111" color: yellow info1: "visited: 15
+"}
+edge: {sourcename: "n111" targetname: "n113" label: "0" color: red}
+edge: { sourcename: "n111" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n110" label: "Block  110" color: lightyellow info1: "visited: 15
+"}
+edge: {sourcename: "n110" targetname: "n111" label: "0" color: red}
+node: {title: "n117" label: "0x5Is  117" color: yellow info1: "visited: 15
+Const of type type_unknown
+"}
+edge: { sourcename: "n117" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n120" label: "SymC PRIMA size  120"  info1: "visited: 15
+"}
+edge: { sourcename: "n120" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n121" label: "ProjM 1 121" color: yellow info1: "visited: 15
+"}
+edge: {sourcename: "n121" targetname: "n113" label: "0" color: blue}
+edge: { sourcename: "n121" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n119" label: "Alloc  119"  info1: "visited: 15
+allocating entity of type PRIMA
+"}
+edge: {sourcename: "n119" targetname: "n121" label: "0" color: blue}
+edge: {sourcename: "n119" targetname: "n120" label: "1" }
+edge: { sourcename: "n119" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n118" label: "ProjP 2 118" color: yellow info1: "visited: 15
+"}
+edge: {sourcename: "n118" targetname: "n119" label: "0" }
+edge: { sourcename: "n118" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n125" label: "0x2Is  125" color: yellow info1: "visited: 15
+Const of type type_unknown
+"}
+edge: { sourcename: "n125" targetname: "n112" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n127" label: "ProjM 0 127" color: yellow info1: "visited: 15
+"}
+edge: {sourcename: "n127" targetname: "n119" label: "0" color: blue}
+edge: { sourcename: "n127" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n126" label: "Sel set_a 126"  info1: "visited: 15
+Selecting entity of type set_a
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n126" targetname: "n127" label: "0" color: blue}
+edge: {sourcename: "n126" targetname: "n118" label: "1" }
+edge: { sourcename: "n126" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n124" label: "Call  124"  info1: "visited: 15
+calling method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: {sourcename: "n124" targetname: "n127" label: "0" color: blue}
+edge: {sourcename: "n124" targetname: "n126" label: "1" }
+edge: {sourcename: "n124" targetname: "n118" label: "2" }
+edge: {sourcename: "n124" targetname: "n125" label: "3" }
+edge: { sourcename: "n124" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n123" label: "ProjM 0 123" color: yellow info1: "visited: 15
+"}
+edge: {sourcename: "n123" targetname: "n124" label: "0" color: blue}
+edge: { sourcename: "n123" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n122" label: "Sel c 122"  info1: "visited: 15
+Selecting entity of type c
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n122" targetname: "n123" label: "0" color: blue}
+edge: {sourcename: "n122" targetname: "n118" label: "1" }
+edge: { sourcename: "n122" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n116" label: "Call  116"  info1: "visited: 15
+calling method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+  resul 0 type: int
+"}
+edge: {sourcename: "n116" targetname: "n123" label: "0" color: blue}
+edge: {sourcename: "n116" targetname: "n122" label: "1" }
+edge: {sourcename: "n116" targetname: "n118" label: "2" }
+edge: {sourcename: "n116" targetname: "n117" label: "3" }
+edge: { sourcename: "n116" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n115" label: "ProjT 2 115" color: yellow info1: "visited: 15
+"}
+edge: {sourcename: "n115" targetname: "n116" label: "0" }
+edge: { sourcename: "n115" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n114" label: "ProjIs 0 114" color: yellow info1: "visited: 15
+"}
+edge: {sourcename: "n114" targetname: "n115" label: "0" }
+edge: { sourcename: "n114" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n128" label: "ProjM 0 128" color: yellow info1: "visited: 15
+"}
+edge: {sourcename: "n128" targetname: "n116" label: "0" color: blue}
+edge: { sourcename: "n128" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n109" label: "Return  109"  info1: "visited: 15
+return in method of type OO_PROGRAM_EXAMPLE_main
+  res 0 type: int
+"}
+edge: {sourcename: "n109" targetname: "n128" label: "0" color: blue}
+edge: {sourcename: "n109" targetname: "n114" label: "1" }
+edge: { sourcename: "n109" targetname: "n110" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n108" label: "Block  108" color: lightyellow info1: "visited: 15
+"}
+edge: {sourcename: "n108" targetname: "n109" label: "0" color: red}
+node: {title: "n107" label: "End  107" color: blue info1: "visited: 15
+"}
+edge: { sourcename: "n107" targetname: "n108" class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/PRIMA_INLINE_c-wtypes.vcg b/testprograms/ref-results/PRIMA_INLINE_c-wtypes.vcg
new file mode 100644 (file)
index 0000000..74e1d73
--- /dev/null
@@ -0,0 +1,172 @@
+graph: { title: "ir graph of PRIMA_INLINE_c"
+display_edge_labels: no
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80b3820" label: "c" status:clustered color:white
+graph: { title: "n248"  label: "Block 248" status:clustered color:yellow
+edge: {sourcename: "n248" targetname: "n250" label: "0" color: red}
+edge: {sourcename: "n248" targetname: "n249" label: "1" color: red}
+node: {title: "n252" label: "PhiM  252" color: green info1: "visited: 22
+"}
+edge: {sourcename: "n252" targetname: "n261" label: "0" color: blue}
+edge: {sourcename: "n252" targetname: "n253" label: "1" color: blue}
+node: {title: "n253" label: "Store  253"  info1: "visited: 22
+"}
+edge: {sourcename: "n253" targetname: "n252" label: "0" color: blue}
+edge: {sourcename: "n253" targetname: "n259" label: "1" }
+edge: {sourcename: "n253" targetname: "n254" label: "2" }
+node: {title: "n259" label: "Sel a 259"  info1: "visited: 22
+Selecting entity of type int
+  from entity of type PRIMA_INLINE
+"}
+edge: {sourcename: "n259" targetname: "n252" label: "0" color: blue}
+edge: {sourcename: "n259" targetname: "n260" label: "1" }
+node: {title: "n254" label: "PhiIs  254" color: green info1: "visited: 22
+"}
+edge: {sourcename: "n254" targetname: "n257" label: "0" }
+edge: {sourcename: "n254" targetname: "n255" label: "1" }
+node: {title: "n255" label: "PhiIs  255" color: green info1: "visited: 22
+"}
+edge: {sourcename: "n255" targetname: "n256" label: "0" }
+edge: {sourcename: "n255" targetname: "n254" label: "1" }
+node: {title: "n249" label: "Jmp  249"  info1: "visited: 22
+"}
+}
+
+graph: { title: "n251"  label: "Block 251" status:clustered color:yellow
+edge: {sourcename: "n251" targetname: "n246" label: "0" color: red}
+node: {title: "n260" label: "ProjP 0 260" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n260" targetname: "n258" label: "0" }
+node: {title: "n257" label: "ProjIs 1 257" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n257" targetname: "n258" label: "0" }
+node: {title: "n250" label: "Jmp  250"  info1: "visited: 22
+"}
+}
+
+graph: { title: "n245"  label: "Block 245" status:clustered color:yellow
+edge: {sourcename: "n245" targetname: "n246" label: "0" color: red}
+node: {title: "n261" label: "ProjM 1 261" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n261" targetname: "n247" label: "0" color: blue}
+node: {title: "n258" label: "ProjT 4 258" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n258" targetname: "n247" label: "0" }
+node: {title: "n256" label: "0x0Is  256" color: yellow info1: "visited: 22
+Const of type type_unknown
+"}
+node: {title: "n246" label: "ProjX 0 246" color: yellow info1: "visited: 22
+"}
+edge: {sourcename: "n246" targetname: "n247" label: "0" color: red}
+node: {title: "n247" label: "Start  247" color: blue info1: "visited: 22
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+graph: { title: "n243"  label: "Block 243" status:clustered color:yellow
+node: {title: "n242" label: "End  242" color: blue info1: "visited: 22
+"}
+}
+
+}
+
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA_INLINE" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_INLINE_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_INLINE_set_a)P  17" color: yellow info1: "visited: 3
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_INLINE_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_INLINE_c)P  20" color: yellow info1: "visited: 3
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t82" label: "class cframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n259" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/PRIMA_INLINE_set_a-wtypes.vcg b/testprograms/ref-results/PRIMA_INLINE_set_a-wtypes.vcg
new file mode 100644 (file)
index 0000000..6baf0e4
--- /dev/null
@@ -0,0 +1,156 @@
+graph: { title: "ir graph of PRIMA_INLINE_set_a"
+display_edge_labels: no
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80b1208" label: "set_a" status:clustered color:white
+graph: { title: "n225"  label: "Block 225" status:clustered color:yellow
+edge: {sourcename: "n225" targetname: "n226" label: "0" color: red}
+node: {title: "n224" label: "End  224" color: blue info1: "visited: 17
+"}
+}
+
+graph: { title: "n227"  label: "Block 227" status:clustered color:yellow
+edge: {sourcename: "n227" targetname: "n228" label: "0" color: red}
+node: {title: "n226" label: "Return  226"  info1: "visited: 17
+return in method of type set_a
+"}
+edge: {sourcename: "n226" targetname: "n231" label: "0" color: blue}
+node: {title: "n231" label: "ProjM 0 231" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n231" targetname: "n232" label: "0" color: blue}
+node: {title: "n232" label: "Store  232"  info1: "visited: 17
+"}
+edge: {sourcename: "n232" targetname: "n237" label: "0" color: blue}
+edge: {sourcename: "n232" targetname: "n235" label: "1" }
+edge: {sourcename: "n232" targetname: "n233" label: "2" }
+node: {title: "n235" label: "Sel a 235"  info1: "visited: 17
+Selecting entity of type int
+  from entity of type PRIMA_INLINE
+"}
+edge: {sourcename: "n235" targetname: "n237" label: "0" color: blue}
+edge: {sourcename: "n235" targetname: "n236" label: "1" }
+node: {title: "n236" label: "ProjP 0 236" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n236" targetname: "n234" label: "0" }
+node: {title: "n233" label: "ProjIs 1 233" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n233" targetname: "n234" label: "0" }
+}
+
+graph: { title: "n229"  label: "Block 229" status:clustered color:yellow
+edge: {sourcename: "n229" targetname: "n228" label: "0" color: red}
+node: {title: "n237" label: "ProjM 1 237" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n237" targetname: "n230" label: "0" color: blue}
+node: {title: "n234" label: "ProjT 4 234" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n234" targetname: "n230" label: "0" }
+node: {title: "n228" label: "ProjX 0 228" color: yellow info1: "visited: 17
+"}
+edge: {sourcename: "n228" targetname: "n230" label: "0" color: red}
+node: {title: "n230" label: "Start  230" color: blue info1: "visited: 17
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA_INLINE" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_INLINE_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_INLINE_set_a)P  17" color: yellow info1: "visited: 2
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_INLINE_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_INLINE_c)P  20" color: yellow info1: "visited: 2
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t59" label: "class set_aframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n235" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/PRIMA_c-pure-wtypes.vcg b/testprograms/ref-results/PRIMA_c-pure-wtypes.vcg
new file mode 100644 (file)
index 0000000..c069142
--- /dev/null
@@ -0,0 +1,171 @@
+graph: { title: "ir graph of PRIMA_c"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n157" label: "Block  157" color: lightyellow info1: "visited: 10
+"}
+edge: {sourcename: "n157" targetname: "n156" label: "0" color: red}
+node: {title: "n158" label: "Start  158" color: blue info1: "visited: 10
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: { sourcename: "n158" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n156" label: "ProjX 0 156" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n156" targetname: "n158" label: "0" color: red}
+edge: { sourcename: "n156" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n155" label: "Block  155" color: lightyellow info1: "visited: 10
+"}
+edge: {sourcename: "n155" targetname: "n156" label: "0" color: red}
+node: {title: "n164" label: "ProjT 4 164" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n164" targetname: "n158" label: "0" }
+edge: { sourcename: "n164" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n163" label: "ProjP 0 163" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n163" targetname: "n164" label: "0" }
+edge: { sourcename: "n163" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n165" label: "ProjM 1 165" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n165" targetname: "n158" label: "0" color: blue}
+edge: { sourcename: "n165" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n162" label: "Sel a 162"  info1: "visited: 10
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n162" targetname: "n165" label: "0" color: blue}
+edge: {sourcename: "n162" targetname: "n163" label: "1" }
+edge: { sourcename: "n162" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n161" label: "Load  161"  info1: "visited: 10
+"}
+edge: {sourcename: "n161" targetname: "n165" label: "0" color: blue}
+edge: {sourcename: "n161" targetname: "n162" label: "1" }
+edge: { sourcename: "n161" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n160" label: "ProjIs 2 160" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n160" targetname: "n161" label: "0" }
+edge: { sourcename: "n160" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n166" label: "ProjIs 1 166" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n166" targetname: "n164" label: "0" }
+edge: { sourcename: "n166" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n159" label: "AddIs  159"  info1: "visited: 10
+"}
+edge: {sourcename: "n159" targetname: "n166" label: "0" }
+edge: {sourcename: "n159" targetname: "n160" label: "1" }
+edge: { sourcename: "n159" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n167" label: "ProjM 0 167" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n167" targetname: "n161" label: "0" color: blue}
+edge: { sourcename: "n167" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n154" label: "Return  154"  info1: "visited: 10
+return in method of type c
+  res 0 type: int
+"}
+edge: {sourcename: "n154" targetname: "n167" label: "0" color: blue}
+edge: {sourcename: "n154" targetname: "n159" label: "1" }
+edge: { sourcename: "n154" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n153" label: "Block  153" color: lightyellow info1: "visited: 10
+"}
+edge: {sourcename: "n153" targetname: "n154" label: "0" color: red}
+node: {title: "n152" label: "End  152" color: blue info1: "visited: 10
+"}
+edge: { sourcename: "n152" targetname: "n153" class: 2 priority: 2 linestyle: dotted}
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 3
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 3
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t82" label: "class cframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n162" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/PRIMA_c-pure.vcg b/testprograms/ref-results/PRIMA_c-pure.vcg
new file mode 100644 (file)
index 0000000..63c9de6
--- /dev/null
@@ -0,0 +1,90 @@
+graph: { title: "ir graph of PRIMA_c"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n157" label: "Block  157" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n157" targetname: "n156" label: "0" color: red}
+node: {title: "n158" label: "Start  158" color: blue info1: "visited: 8
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: { sourcename: "n158" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n156" label: "ProjX 0 156" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n156" targetname: "n158" label: "0" color: red}
+edge: { sourcename: "n156" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n155" label: "Block  155" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n155" targetname: "n156" label: "0" color: red}
+node: {title: "n164" label: "ProjT 4 164" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n164" targetname: "n158" label: "0" }
+edge: { sourcename: "n164" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n163" label: "ProjP 0 163" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n163" targetname: "n164" label: "0" }
+edge: { sourcename: "n163" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n165" label: "ProjM 1 165" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n165" targetname: "n158" label: "0" color: blue}
+edge: { sourcename: "n165" targetname: "n157" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n162" label: "Sel a 162"  info1: "visited: 8
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n162" targetname: "n165" label: "0" color: blue}
+edge: {sourcename: "n162" targetname: "n163" label: "1" }
+edge: { sourcename: "n162" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n161" label: "Load  161"  info1: "visited: 8
+"}
+edge: {sourcename: "n161" targetname: "n165" label: "0" color: blue}
+edge: {sourcename: "n161" targetname: "n162" label: "1" }
+edge: { sourcename: "n161" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n160" label: "ProjIs 2 160" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n160" targetname: "n161" label: "0" }
+edge: { sourcename: "n160" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n166" label: "ProjIs 1 166" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n166" targetname: "n164" label: "0" }
+edge: { sourcename: "n166" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n159" label: "AddIs  159"  info1: "visited: 8
+"}
+edge: {sourcename: "n159" targetname: "n166" label: "0" }
+edge: {sourcename: "n159" targetname: "n160" label: "1" }
+edge: { sourcename: "n159" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n167" label: "ProjM 0 167" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n167" targetname: "n161" label: "0" color: blue}
+edge: { sourcename: "n167" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n154" label: "Return  154"  info1: "visited: 8
+return in method of type c
+  res 0 type: int
+"}
+edge: {sourcename: "n154" targetname: "n167" label: "0" color: blue}
+edge: {sourcename: "n154" targetname: "n159" label: "1" }
+edge: { sourcename: "n154" targetname: "n155" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n153" label: "Block  153" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n153" targetname: "n154" label: "0" color: red}
+node: {title: "n152" label: "End  152" color: blue info1: "visited: 8
+"}
+edge: { sourcename: "n152" targetname: "n153" class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/PRIMA_c-type.vcg b/testprograms/ref-results/PRIMA_c-type.vcg
new file mode 100644 (file)
index 0000000..fdc7376
--- /dev/null
@@ -0,0 +1,100 @@
+graph: { title: "ir graph of PRIMA_c"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 9
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 9
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t82" label: "class cframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+}
diff --git a/testprograms/ref-results/PRIMA_c-wtypes.vcg b/testprograms/ref-results/PRIMA_c-wtypes.vcg
new file mode 100644 (file)
index 0000000..ea7c0a4
--- /dev/null
@@ -0,0 +1,164 @@
+graph: { title: "ir graph of PRIMA_c"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80b3640" label: "c" status:clustered color:white
+graph: { title: "n153"  label: "Block 153" status:clustered color:yellow
+edge: {sourcename: "n153" targetname: "n154" label: "0" color: red}
+node: {title: "n152" label: "End  152" color: blue info1: "visited: 13
+"}
+}
+
+graph: { title: "n155"  label: "Block 155" status:clustered color:yellow
+edge: {sourcename: "n155" targetname: "n156" label: "0" color: red}
+node: {title: "n154" label: "Return  154"  info1: "visited: 13
+return in method of type c
+  res 0 type: int
+"}
+edge: {sourcename: "n154" targetname: "n167" label: "0" color: blue}
+edge: {sourcename: "n154" targetname: "n159" label: "1" }
+node: {title: "n167" label: "ProjM 0 167" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n167" targetname: "n161" label: "0" color: blue}
+node: {title: "n159" label: "AddIs  159"  info1: "visited: 13
+"}
+edge: {sourcename: "n159" targetname: "n166" label: "0" }
+edge: {sourcename: "n159" targetname: "n160" label: "1" }
+node: {title: "n166" label: "ProjIs 1 166" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n166" targetname: "n164" label: "0" }
+node: {title: "n160" label: "ProjIs 2 160" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n160" targetname: "n161" label: "0" }
+node: {title: "n161" label: "Load  161"  info1: "visited: 13
+"}
+edge: {sourcename: "n161" targetname: "n165" label: "0" color: blue}
+edge: {sourcename: "n161" targetname: "n162" label: "1" }
+node: {title: "n162" label: "Sel a 162"  info1: "visited: 13
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n162" targetname: "n165" label: "0" color: blue}
+edge: {sourcename: "n162" targetname: "n163" label: "1" }
+node: {title: "n163" label: "ProjP 0 163" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n163" targetname: "n164" label: "0" }
+}
+
+graph: { title: "n157"  label: "Block 157" status:clustered color:yellow
+edge: {sourcename: "n157" targetname: "n156" label: "0" color: red}
+node: {title: "n165" label: "ProjM 1 165" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n165" targetname: "n158" label: "0" color: blue}
+node: {title: "n164" label: "ProjT 4 164" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n164" targetname: "n158" label: "0" }
+node: {title: "n156" label: "ProjX 0 156" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n156" targetname: "n158" label: "0" color: red}
+node: {title: "n158" label: "Start  158" color: blue info1: "visited: 13
+start of method of type c
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 6
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 6
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t82" label: "class cframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n162" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/PRIMA_set_a-pure-wtypes.vcg b/testprograms/ref-results/PRIMA_set_a-pure-wtypes.vcg
new file mode 100644 (file)
index 0000000..8615267
--- /dev/null
@@ -0,0 +1,161 @@
+graph: { title: "ir graph of PRIMA_set_a"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n139" label: "Block  139" color: lightyellow info1: "visited: 10
+"}
+edge: {sourcename: "n139" targetname: "n138" label: "0" color: red}
+node: {title: "n140" label: "Start  140" color: blue info1: "visited: 10
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: { sourcename: "n140" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n138" label: "ProjX 0 138" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n138" targetname: "n140" label: "0" color: red}
+edge: { sourcename: "n138" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n137" label: "Block  137" color: lightyellow info1: "visited: 10
+"}
+edge: {sourcename: "n137" targetname: "n138" label: "0" color: red}
+node: {title: "n144" label: "ProjT 4 144" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n144" targetname: "n140" label: "0" }
+edge: { sourcename: "n144" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n143" label: "ProjIs 1 143" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n143" targetname: "n144" label: "0" }
+edge: { sourcename: "n143" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n146" label: "ProjP 0 146" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n146" targetname: "n144" label: "0" }
+edge: { sourcename: "n146" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n147" label: "ProjM 1 147" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n147" targetname: "n140" label: "0" color: blue}
+edge: { sourcename: "n147" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n145" label: "Sel a 145"  info1: "visited: 10
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n145" targetname: "n147" label: "0" color: blue}
+edge: {sourcename: "n145" targetname: "n146" label: "1" }
+edge: { sourcename: "n145" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n142" label: "Store  142"  info1: "visited: 10
+"}
+edge: {sourcename: "n142" targetname: "n147" label: "0" color: blue}
+edge: {sourcename: "n142" targetname: "n145" label: "1" }
+edge: {sourcename: "n142" targetname: "n143" label: "2" }
+edge: { sourcename: "n142" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n141" label: "ProjM 0 141" color: yellow info1: "visited: 10
+"}
+edge: {sourcename: "n141" targetname: "n142" label: "0" color: blue}
+edge: { sourcename: "n141" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n136" label: "Return  136"  info1: "visited: 10
+return in method of type set_a
+"}
+edge: {sourcename: "n136" targetname: "n141" label: "0" color: blue}
+edge: { sourcename: "n136" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n135" label: "Block  135" color: lightyellow info1: "visited: 10
+"}
+edge: {sourcename: "n135" targetname: "n136" label: "0" color: red}
+node: {title: "n134" label: "End  134" color: blue info1: "visited: 10
+"}
+edge: { sourcename: "n134" targetname: "n135" class: 2 priority: 2 linestyle: dotted}
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 2
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 2
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t59" label: "class set_aframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n145" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/PRIMA_set_a-pure.vcg b/testprograms/ref-results/PRIMA_set_a-pure.vcg
new file mode 100644 (file)
index 0000000..263283f
--- /dev/null
@@ -0,0 +1,80 @@
+graph: { title: "ir graph of PRIMA_set_a"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "n139" label: "Block  139" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n139" targetname: "n138" label: "0" color: red}
+node: {title: "n140" label: "Start  140" color: blue info1: "visited: 8
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+edge: { sourcename: "n140" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n138" label: "ProjX 0 138" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n138" targetname: "n140" label: "0" color: red}
+edge: { sourcename: "n138" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n137" label: "Block  137" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n137" targetname: "n138" label: "0" color: red}
+node: {title: "n144" label: "ProjT 4 144" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n144" targetname: "n140" label: "0" }
+edge: { sourcename: "n144" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n143" label: "ProjIs 1 143" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n143" targetname: "n144" label: "0" }
+edge: { sourcename: "n143" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n146" label: "ProjP 0 146" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n146" targetname: "n144" label: "0" }
+edge: { sourcename: "n146" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n147" label: "ProjM 1 147" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n147" targetname: "n140" label: "0" color: blue}
+edge: { sourcename: "n147" targetname: "n139" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n145" label: "Sel a 145"  info1: "visited: 8
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n145" targetname: "n147" label: "0" color: blue}
+edge: {sourcename: "n145" targetname: "n146" label: "1" }
+edge: { sourcename: "n145" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n142" label: "Store  142"  info1: "visited: 8
+"}
+edge: {sourcename: "n142" targetname: "n147" label: "0" color: blue}
+edge: {sourcename: "n142" targetname: "n145" label: "1" }
+edge: {sourcename: "n142" targetname: "n143" label: "2" }
+edge: { sourcename: "n142" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n141" label: "ProjM 0 141" color: yellow info1: "visited: 8
+"}
+edge: {sourcename: "n141" targetname: "n142" label: "0" color: blue}
+edge: { sourcename: "n141" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n136" label: "Return  136"  info1: "visited: 8
+return in method of type set_a
+"}
+edge: {sourcename: "n136" targetname: "n141" label: "0" color: blue}
+edge: { sourcename: "n136" targetname: "n137" class: 2 priority: 2 linestyle: dotted}
+node: {title: "n135" label: "Block  135" color: lightyellow info1: "visited: 8
+"}
+edge: {sourcename: "n135" targetname: "n136" label: "0" color: red}
+node: {title: "n134" label: "End  134" color: blue info1: "visited: 8
+"}
+edge: { sourcename: "n134" targetname: "n135" class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/PRIMA_set_a-type.vcg b/testprograms/ref-results/PRIMA_set_a-type.vcg
new file mode 100644 (file)
index 0000000..d51e20f
--- /dev/null
@@ -0,0 +1,100 @@
+graph: { title: "ir graph of PRIMA_set_a"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 8
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 8
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t59" label: "class set_aframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+}
diff --git a/testprograms/ref-results/PRIMA_set_a-wtypes.vcg b/testprograms/ref-results/PRIMA_set_a-wtypes.vcg
new file mode 100644 (file)
index 0000000..84f746a
--- /dev/null
@@ -0,0 +1,156 @@
+graph: { title: "ir graph of PRIMA_set_a"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+graph: { title: "0x80b1028" label: "set_a" status:clustered color:white
+graph: { title: "n135"  label: "Block 135" status:clustered color:yellow
+edge: {sourcename: "n135" targetname: "n136" label: "0" color: red}
+node: {title: "n134" label: "End  134" color: blue info1: "visited: 13
+"}
+}
+
+graph: { title: "n137"  label: "Block 137" status:clustered color:yellow
+edge: {sourcename: "n137" targetname: "n138" label: "0" color: red}
+node: {title: "n136" label: "Return  136"  info1: "visited: 13
+return in method of type set_a
+"}
+edge: {sourcename: "n136" targetname: "n141" label: "0" color: blue}
+node: {title: "n141" label: "ProjM 0 141" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n141" targetname: "n142" label: "0" color: blue}
+node: {title: "n142" label: "Store  142"  info1: "visited: 13
+"}
+edge: {sourcename: "n142" targetname: "n147" label: "0" color: blue}
+edge: {sourcename: "n142" targetname: "n145" label: "1" }
+edge: {sourcename: "n142" targetname: "n143" label: "2" }
+node: {title: "n145" label: "Sel a 145"  info1: "visited: 13
+Selecting entity of type int
+  from entity of type PRIMA
+"}
+edge: {sourcename: "n145" targetname: "n147" label: "0" color: blue}
+edge: {sourcename: "n145" targetname: "n146" label: "1" }
+node: {title: "n146" label: "ProjP 0 146" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n146" targetname: "n144" label: "0" }
+node: {title: "n143" label: "ProjIs 1 143" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n143" targetname: "n144" label: "0" }
+}
+
+graph: { title: "n139"  label: "Block 139" status:clustered color:yellow
+edge: {sourcename: "n139" targetname: "n138" label: "0" color: red}
+node: {title: "n147" label: "ProjM 1 147" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n147" targetname: "n140" label: "0" color: blue}
+node: {title: "n144" label: "ProjT 4 144" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n144" targetname: "n140" label: "0" }
+node: {title: "n138" label: "ProjX 0 138" color: yellow info1: "visited: 13
+"}
+edge: {sourcename: "n138" targetname: "n140" label: "0" color: red}
+node: {title: "n140" label: "Start  140" color: blue info1: "visited: 13
+start of method of type set_a
+  param 0 type: class_prima_ptr
+  param 1 type: int
+"}
+}
+
+}
+
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "e15" targetname: "t12"class: 3 label: "type" color: red}
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "e18" targetname: "t16"class: 3 label: "type" color: red}
+edge: { sourcename: "e18" targetname: "n17"label: "value 0"}
+node: {title: "n17" label: "&(PRIMA_set_a)P  17" color: yellow info1: "visited: 5
+Const of type type_unknown
+"}
+node: {title: "t16" label: "method set_a" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t16" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t16" targetname: "t12"class: 5 label: "param 1" color: green}
+node: {title: "t14" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t14" targetname: "t13"class: 9 label: "points to" color:green}
+node: {title: "t12" label: "primitive int" info1: "state: layout_fixed,
+mode: Is,
+size: 4B,
+"}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "e21" targetname: "t19"class: 3 label: "type" color: red}
+edge: { sourcename: "e21" targetname: "n20"label: "value 0"}
+node: {title: "n20" label: "&(PRIMA_c)P  20" color: yellow info1: "visited: 5
+Const of type type_unknown
+"}
+node: {title: "t19" label: "method c" info1: "state: layout_fixed,
+mode: P,
+size: 4B,
+"}
+edge: { sourcename: "t19" targetname: "t14"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t19" targetname: "t12"class: 6 label: "res 0" color: green}
+node: {title: "t59" label: "class set_aframe_tp" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+edge: { sourcename: "n145" targetname: "e15"class: 2 priority: 2 linestyle: dotted}
+}
diff --git a/testprograms/ref-results/class_hierarchy.vcg b/testprograms/ref-results/class_hierarchy.vcg
new file mode 100644 (file)
index 0000000..60e96b8
--- /dev/null
@@ -0,0 +1,64 @@
+graph: { title: "ir graph of class_hierarchy"
+display_edge_labels: yes
+layoutalgorithm: mindepth
+manhattan_edges: yes
+port_sharing: no
+orientation: bottom_to_top
+classname 1: "Data"
+classname 2: "Block"
+classname 3: "Entity type"
+classname 4: "Entity owner"
+classname 5: "Method Param"
+classname 6: "Method Res"
+classname 7: "Super"
+classname 8: "Union"
+classname 9: "Points-to"
+classname 10: "Array Element Type"
+classname 11: "Overwrites"
+classname 12: "Member"
+
+node: {title: "t13" label: "class PRIMA" info1: "state: layout_undefined
+size: -1B,
+" color: green}
+node: {title: "e15" label: "ent a" color: yellow
+ info1: "
+id: e15
+allocation:  allocation_automatic
+visibility:  visibility_local
+variability: variability_uninitialized
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    a
+ld_name: no yet set
+offset:  -1"
+}
+edge: { sourcename: "t13" targetname: "e15"class: 12 label: "member" color:blue}
+node: {title: "e18" label: "ent set_a" color: yellow
+ info1: "
+id: e18
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    set_a
+ld_name: PRIMA_set_a
+offset:  -1
+irg = g71"
+}
+edge: { sourcename: "t13" targetname: "e18"class: 12 label: "member" color:blue}
+node: {title: "e21" label: "ent c" color: yellow
+ info1: "
+id: e21
+allocation:  allocation_static
+visibility:  visibility_local
+variability: variability_constant
+volatility:  volatility_non_volatile
+peculiarity: peculiarity_existent
+name:    c
+ld_name: PRIMA_c
+offset:  -1
+irg = g94"
+}
+edge: { sourcename: "t13" targetname: "e21"class: 12 label: "member" color:blue}
+}