+ ctp = get_pointer_points_to_type (ctp); /* ctp == char[]*[] */
+
+ assert (is_Array_type (ctp));
+
+ arg_desc = new_name (ctp, args [1], -1);
+ arg_pto = new_pto (args [1]);
+ /* todo: simulate 'store' to arg1[] ?!? */
+ qset_insert (arg_pto->values, arg_desc);
+
+ set_node_pto (args [1], arg_pto);
+
+ DBGPRINT (1, (stdout, "%s:%i (%s[%li])\n",
+ __FUNCTION__, __LINE__,
+ OPNAME (args [1]), OPNUM (args [1])));
+
+# ifdef TEST_MAIN_TYPE
+ ctp = get_array_element_type (ctp); /* ctp == char[]* */
+
+ assert (is_Pointer_type (ctp));
+
+ ctp = get_pointer_points_to_type (ctp); /* ctp == char[] */
+
+ assert (is_Array_type (ctp));
+
+ ctp = get_array_element_type (ctp); /* ctp == char */
+
+ assert (is_primitive_type (ctp));
+# endif /* defined TEST_MAIN_TYPE */
+
+ /* HERE ("end"); */
+}
+
+/* Initialise the Init module */
+void pto_init_init (void)
+{
+ pto_obst = (struct obstack*) xmalloc (sizeof (struct obstack));
+
+ obstack_init (pto_obst);
+}
+
+/* Cleanup the Init module */
+void pto_init_cleanup (void)
+{
+ obstack_free (pto_obst, NULL);
+ memset (pto_obst, 0x00, sizeof (struct obstack));
+ free (pto_obst);
+ pto_obst = NULL;
+}
+
+
+/* Initialise the Names of the Types/Entities */
+void pto_init_type_names (void)
+{
+ /* HERE ("start"); */
+ type_walk (clear_type_link, NULL, NULL);
+ /* HERE ("end"); */
+}
+
+/* Initialise the given graph for a new pass run */
+void pto_init_graph (ir_graph *graph)
+{
+ ir_node **proj_args;
+ graph_info_t *ginfo = ecg_get_info (graph);
+ const int n_ctxs = ginfo->n_ctxs;
+
+ /* only for debugging stuff: */
+ entity *ent = get_irg_entity (graph);
+ const char *ent_name = (char*) get_entity_name (ent);
+ const char *own_name = (char*) get_type_name (get_entity_owner (ent));
+
+ DBGPRINT (2, (stdout, "%s: init \"%s.%s\" for %i ctxs\n",
+ __FUNCTION__,
+ own_name, ent_name, n_ctxs));
+
+ /* HERE ("start"); */
+
+ clear_graph_links (graph);
+ pto_init_graph_allocs (graph);
+
+ /* HERE ("end"); */
+
+ assert (NULL == get_irg_proj_args (graph));
+ proj_args = find_irg_args (graph);
+ set_irg_proj_args (graph, proj_args);
+ assert (proj_args == get_irg_proj_args (graph));