From: Alan Modra Date: Fri, 1 Feb 2002 01:18:06 +0000 (+0000) Subject: * basic_blocks.c: Replace bool with boolean, TRUE with true and X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bde52789b2840efede7cba2971d8b174586018fc;p=binutils-gdb.git * basic_blocks.c: Replace bool with boolean, TRUE with true and FALSE with false throughout. * basic_blocks.h: Likewise. * cg_arcs.c: Likewise. * cg_dfn.c: Likewise. * cg_print.c: Likewise. * corefile.c: Likewise. * gmon_io.c: Likewise. * gprof.c: Likewise. * hist.c: Likewise. * mips.c: Likewise. * source.c: Likewise. * source.h: Likewise. * sym_ids.c: Likewise. * sym_ids.h: Likewise. * symtab.h: Likewise. * tahoe.c: Likewise. * vax.c: Likewise. * gprof.h: Likewise. (TRUE): Don't define. (FALSE): Don't define. --- diff --git a/gprof/ChangeLog b/gprof/ChangeLog index 63654b97526..12826c40a40 100644 --- a/gprof/ChangeLog +++ b/gprof/ChangeLog @@ -1,3 +1,27 @@ +2002-02-01 Alan Modra + + * basic_blocks.c: Replace bool with boolean, TRUE with true and + FALSE with false throughout. + * basic_blocks.h: Likewise. + * cg_arcs.c: Likewise. + * cg_dfn.c: Likewise. + * cg_print.c: Likewise. + * corefile.c: Likewise. + * gmon_io.c: Likewise. + * gprof.c: Likewise. + * hist.c: Likewise. + * mips.c: Likewise. + * source.c: Likewise. + * source.h: Likewise. + * sym_ids.c: Likewise. + * sym_ids.h: Likewise. + * symtab.h: Likewise. + * tahoe.c: Likewise. + * vax.c: Likewise. + * gprof.h: Likewise. + (TRUE): Don't define. + (FALSE): Don't define. + 2002-01-31 Jason R Thorpe * TODO: Remove "host architecture pointer size" item. diff --git a/gprof/basic_blocks.c b/gprof/basic_blocks.c index 65a662c2058..d1bd3f03049 100644 --- a/gprof/basic_blocks.c +++ b/gprof/basic_blocks.c @@ -33,7 +33,7 @@ #include "sym_ids.h" /* Default option values: */ -bool bb_annotate_all_lines = FALSE; +boolean bb_annotate_all_lines = false; unsigned long bb_min_calls = 1; int bb_table_length = 10; @@ -138,8 +138,8 @@ DEFUN (bb_read_rec, (ifp, filename), FILE * ifp AND const char *filename) care about anymore. */ if ((fread (&ncalls, sizeof (ncalls), 1, ifp) != 1) || (fread (&addr, sizeof (addr), 1, ifp) != 1) - || (fskip_string (ifp), FALSE) - || (fskip_string (ifp), FALSE) + || (fskip_string (ifp), false) + || (fskip_string (ifp), false) || (fread (&line_num, sizeof (line_num), 1, ifp) != 1)) { perror (filename); @@ -181,11 +181,11 @@ DEFUN (bb_read_rec, (ifp, filename), FILE * ifp AND const char *filename) } else { - static bool user_warned = FALSE; + static boolean user_warned = false; if (!user_warned) { - user_warned = TRUE; + user_warned = true; fprintf (stderr, _("%s: warning: ignoring basic-block exec counts (use -l or --line)\n"), whoami); @@ -248,7 +248,7 @@ DEFUN_VOID (print_exec_counts) int i, j, len; if (first_output) - first_output = FALSE; + first_output = false; else printf ("\f\n"); diff --git a/gprof/basic_blocks.h b/gprof/basic_blocks.h index e6fcf1f209a..cc240928c22 100644 --- a/gprof/basic_blocks.h +++ b/gprof/basic_blocks.h @@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define basic_blocks_h /* Options: */ -extern bool bb_annotate_all_lines; /* Force annotation of all lines? */ +extern boolean bb_annotate_all_lines; /* Force annotation of all lines? */ extern int bb_table_length; /* Length of most-used bb table. */ extern unsigned long bb_min_calls; /* Minimum execution count. */ diff --git a/gprof/cg_arcs.c b/gprof/cg_arcs.c index 83696310f74..8ebaa7f8f09 100644 --- a/gprof/cg_arcs.c +++ b/gprof/cg_arcs.c @@ -291,7 +291,7 @@ DEFUN_VOID (cycle_link) ++num; ++cyc; sym_init (cyc); - cyc->cg.print_flag = TRUE; /* should this be printed? */ + cyc->cg.print_flag = true; /* should this be printed? */ cyc->cg.top_order = DFN_NAN; /* graph call chain top-sort order */ cyc->cg.cyc.num = num; /* internal number of cycle on */ cyc->cg.cyc.head = cyc; /* pointer to head of cycle */ @@ -349,7 +349,7 @@ DEFUN (inherit_flags, (child), Sym * child) if (child == head) { /* just a regular child, check its parents: */ - child->cg.print_flag = FALSE; + child->cg.print_flag = false; child->cg.prop.fract = 0.0; for (arc = child->cg.parents; arc; arc = arc->next_parent) { @@ -377,7 +377,7 @@ DEFUN (inherit_flags, (child), Sym * child) * Its a member of a cycle, look at all parents from outside * the cycle. */ - head->cg.print_flag = FALSE; + head->cg.print_flag = false; head->cg.prop.fract = 0.0; for (member = head->cg.cyc.next; member; member = member->cg.cyc.next) { @@ -454,7 +454,7 @@ DEFUN (propagate_flags, (symbols), Sym ** symbols) || (syms[INCL_GRAPH].len == 0 && !sym_lookup (&syms[EXCL_GRAPH], child->addr))) { - child->cg.print_flag = TRUE; + child->cg.print_flag = true; } } else @@ -467,7 +467,7 @@ DEFUN (propagate_flags, (symbols), Sym ** symbols) if (!sym_lookup (&syms[INCL_GRAPH], child->addr) && sym_lookup (&syms[EXCL_GRAPH], child->addr)) { - child->cg.print_flag = FALSE; + child->cg.print_flag = false; } } if (child->cg.prop.fract == 0.0) @@ -603,7 +603,7 @@ DEFUN_VOID (cg_assemble) parent->cg.prop.fract = 0.0; parent->cg.prop.self = 0.0; parent->cg.prop.child = 0.0; - parent->cg.print_flag = FALSE; + parent->cg.print_flag = false; parent->cg.top_order = DFN_NAN; parent->cg.cyc.num = 0; parent->cg.cyc.head = parent; diff --git a/gprof/cg_dfn.c b/gprof/cg_dfn.c index 75b033beb45..ace8328d141 100644 --- a/gprof/cg_dfn.c +++ b/gprof/cg_dfn.c @@ -43,7 +43,7 @@ int dfn_counter = DFN_NAN; /* * Is CHILD already numbered? */ -static bool +static boolean DEFUN (is_numbered, (child), Sym * child) { return child->cg.top_order != DFN_NAN && child->cg.top_order != DFN_BUSY; @@ -53,14 +53,14 @@ DEFUN (is_numbered, (child), Sym * child) /* * Is CHILD already busy? */ -static bool +static boolean DEFUN (is_busy, (child), Sym * child) { if (child->cg.top_order == DFN_NAN) { - return FALSE; + return false; } - return TRUE; + return true; } diff --git a/gprof/cg_print.c b/gprof/cg_print.c index 867a4ec2756..260a8765d93 100644 --- a/gprof/cg_print.c +++ b/gprof/cg_print.c @@ -48,7 +48,7 @@ static void DEFUN_VOID (print_header) { if (first_output) - first_output = FALSE; + first_output = false; else printf ("\f\n"); diff --git a/gprof/corefile.c b/gprof/corefile.c index 5616dfac02a..9f3ca03cd2d 100644 --- a/gprof/corefile.c +++ b/gprof/corefile.c @@ -273,7 +273,7 @@ DEFUN (find_call, (parent, p_lowpc, p_highpc), whoami, bfd_printable_name(core_bfd)); /* Don't give the error more than once. */ - ignore_direct_calls = FALSE; + ignore_direct_calls = false; } } @@ -365,7 +365,7 @@ DEFUN (core_sym_class, (sym), asymbol * sym) /* Get whatever source info we can get regarding address ADDR. */ -static bool +static boolean DEFUN (get_src_info, (addr, filename, name, line_num), bfd_vma addr AND const char **filename AND const char **name AND int *line_num) @@ -383,14 +383,14 @@ DEFUN (get_src_info, (addr, filename, name, line_num), *filename = fname; *name = func_name; *line_num = l; - return TRUE; + return true; } else { DBG (AOUTDEBUG, printf ("[get_src_info] no info for 0x%lx (%s:%d,%s)\n", (long) addr, fname ? fname : "", l, func_name ? func_name : "")); - return FALSE; + return false; } } @@ -528,11 +528,11 @@ core_create_function_syms (core_bfd) } } - symtab.limit->is_func = TRUE; - symtab.limit->is_bb_head = TRUE; + symtab.limit->is_func = true; + symtab.limit->is_bb_head = true; if (class == 't') - symtab.limit->is_static = TRUE; + symtab.limit->is_static = true; min_vma = MIN (symtab.limit->addr, min_vma); max_vma = MAX (symtab.limit->addr, max_vma); diff --git a/gprof/gmon_io.c b/gprof/gmon_io.c index 0bc5caa778c..db115908c6c 100644 --- a/gprof/gmon_io.c +++ b/gprof/gmon_io.c @@ -532,7 +532,7 @@ DEFUN (gmon_out_read, (filename), const char *filename) printf (nbbs == 1 ? _("\t%d basic-block count record\n") : _("\t%d basic-block count records\n"), nbbs); - first_output = FALSE; + first_output = false; } } diff --git a/gprof/gprof.c b/gprof/gprof.c index 3c29e09f00f..c7189d03597 100644 --- a/gprof/gprof.c +++ b/gprof/gprof.c @@ -44,19 +44,19 @@ long hz = HZ_WRONG; int debug_level = 0; int output_style = 0; int output_width = 80; -bool bsd_style_output = FALSE; -bool demangle = TRUE; -bool discard_underscores = TRUE; -bool ignore_direct_calls = FALSE; -bool ignore_static_funcs = FALSE; -bool ignore_zeros = TRUE; -bool line_granularity = FALSE; -bool print_descriptions = TRUE; -bool print_path = FALSE; -bool ignore_non_functions = FALSE; +boolean bsd_style_output = false; +boolean demangle = true; +boolean discard_underscores = true; +boolean ignore_direct_calls = false; +boolean ignore_static_funcs = false; +boolean ignore_zeros = true; +boolean line_granularity = false; +boolean print_descriptions = true; +boolean print_path = false; +boolean ignore_non_functions = false; File_Format file_format = FF_AUTO; -bool first_output = TRUE; +boolean first_output = true; char copyright[] = "@(#) Copyright (c) 1983 Regents of the University of California.\n\ @@ -192,7 +192,7 @@ DEFUN (main, (argc, argv), int argc AND char **argv) switch (ch) { case 'a': - ignore_static_funcs = TRUE; + ignore_static_funcs = true; break; case 'A': if (optarg) @@ -203,14 +203,14 @@ DEFUN (main, (argc, argv), int argc AND char **argv) user_specified |= STYLE_ANNOTATED_SOURCE; break; case 'b': - print_descriptions = FALSE; + print_descriptions = false; break; case 'B': output_style |= STYLE_CALL_GRAPH; user_specified |= STYLE_CALL_GRAPH; break; case 'c': - ignore_direct_calls = TRUE; + ignore_direct_calls = true; break; case 'C': if (optarg) @@ -236,7 +236,7 @@ DEFUN (main, (argc, argv), int argc AND char **argv) #endif /* DEBUG */ break; case 'D': - ignore_non_functions = TRUE; + ignore_non_functions = true; break; case 'E': sym_id_add (optarg, EXCL_TIME); @@ -279,10 +279,10 @@ DEFUN (main, (argc, argv), int argc AND char **argv) sym_id_add (optarg, EXCL_ARCS); break; case 'l': - line_granularity = TRUE; + line_granularity = true; break; case 'L': - print_path = TRUE; + print_path = true; break; case 'm': bb_min_calls = (unsigned long) strtoul (optarg, (char **) NULL, 10); @@ -392,7 +392,7 @@ DEFUN (main, (argc, argv), int argc AND char **argv) } break; case 'T': - bsd_style_output = TRUE; + bsd_style_output = true; break; case 'v': /* This output is intended to follow the GNU standards document. */ @@ -409,13 +409,13 @@ This program is free software. This program has absolutely no warranty.\n")); } break; case 'x': - bb_annotate_all_lines = TRUE; + bb_annotate_all_lines = true; break; case 'y': - create_annotation_files = TRUE; + create_annotation_files = true; break; case 'z': - ignore_zeros = FALSE; + ignore_zeros = false; break; case 'Z': if (optarg) @@ -430,7 +430,7 @@ This program is free software. This program has absolutely no warranty.\n")); user_specified |= STYLE_ANNOTATED_SOURCE; break; case OPTION_DEMANGLE: - demangle = TRUE; + demangle = true; if (optarg != NULL) { enum demangling_styles style; @@ -448,7 +448,7 @@ This program is free software. This program has absolutely no warranty.\n")); } break; case OPTION_NO_DEMANGLE: - demangle = FALSE; + demangle = false; break; default: usage (stderr, 1); diff --git a/gprof/gprof.h b/gprof/gprof.h index 07ca5f0e1d8..567ebd2d5c2 100644 --- a/gprof/gprof.h +++ b/gprof/gprof.h @@ -62,16 +62,6 @@ #include "bin-bugs.h" -/* - * These may already be defined on some systems. We could probably - * just use the BFD versions of these, since BFD has already dealt - * with this problem. - */ -#undef FALSE -#define FALSE 0 -#undef TRUE -#define TRUE 1 - #define STYLE_FLAT_PROFILE (1<<0) #define STYLE_CALL_GRAPH (1<<1) #define STYLE_SUMMARY_FILE (1<<2) @@ -118,23 +108,23 @@ extern long hz; /* ticks per second */ /* * Command-line options: */ -extern int debug_level; /* debug level */ +extern int debug_level; /* debug level */ extern int output_style; -extern int output_width; /* controls column width in index */ -extern bool bsd_style_output; /* as opposed to FSF style output */ -extern bool demangle; /* demangle symbol names? */ -extern bool discard_underscores; /* discard leading underscores? */ -extern bool ignore_direct_calls; /* don't count direct calls */ -extern bool ignore_static_funcs; /* suppress static functions */ -extern bool ignore_zeros; /* ignore unused symbols/files */ -extern bool line_granularity; /* function or line granularity? */ -extern bool print_descriptions; /* output profile description */ -extern bool print_path; /* print path or just filename? */ -extern bool ignore_non_functions;/* Ignore non-function symbols. */ - -extern File_Format file_format; /* requested file format */ - -extern bool first_output; /* no output so far? */ +extern int output_width; /* controls column width in index */ +extern boolean bsd_style_output; /* as opposed to FSF style output */ +extern boolean demangle; /* demangle symbol names? */ +extern boolean discard_underscores; /* discard leading underscores? */ +extern boolean ignore_direct_calls; /* don't count direct calls */ +extern boolean ignore_static_funcs; /* suppress static functions */ +extern boolean ignore_zeros; /* ignore unused symbols/files */ +extern boolean line_granularity; /* function or line granularity? */ +extern boolean print_descriptions; /* output profile description */ +extern boolean print_path; /* print path or just filename? */ +extern boolean ignore_non_functions; /* Ignore non-function symbols. */ + +extern File_Format file_format; /* requested file format */ + +extern boolean first_output; /* no output so far? */ extern void done PARAMS ((int status)); diff --git a/gprof/hist.c b/gprof/hist.c index 403b7790c0a..0d0df01007c 100644 --- a/gprof/hist.c +++ b/gprof/hist.c @@ -456,7 +456,7 @@ DEFUN_VOID (hist_print) bfd_vma addr; if (first_output) - first_output = FALSE; + first_output = false; else printf ("\f\n"); diff --git a/gprof/mips.c b/gprof/mips.c index 078474f7cce..5638957f5e2 100644 --- a/gprof/mips.c +++ b/gprof/mips.c @@ -38,11 +38,11 @@ mips_find_call (parent, p_lowpc, p_highpc) unsigned int op; int offset; Sym *child; - static bool inited = FALSE; + static boolean inited = false; if (!inited) { - inited = TRUE; + inited = true; sym_init (&indirect_child); indirect_child.name = _(""); indirect_child.cg.prop.fract = 1.0; diff --git a/gprof/source.c b/gprof/source.c index 7b9401f60ad..c0bbabd92b7 100644 --- a/gprof/source.c +++ b/gprof/source.c @@ -28,7 +28,7 @@ #define EXT_ANNO "-ann" /* Postfix of annotated files. */ /* Default option values. */ -bool create_annotation_files = FALSE; +boolean create_annotation_files = false; Search_List src_search_list = {0, 0}; Source_File *first_src_file = 0; @@ -94,9 +94,9 @@ DEFUN (annotate_source, (sf, max_width, annote, arg), AND void (*annote) PARAMS ((char *buf, int w, int l, void *arg)) AND void *arg) { - static bool first_file = TRUE; + static boolean first_file = true; int i, line_num, nread; - bool new_line; + boolean new_line; char buf[8192]; char fname[PATH_MAX]; char *annotation, *name_only; @@ -111,7 +111,7 @@ DEFUN (annotate_source, (sf, max_width, annote, arg), sle = 0; /* Don't use search list for absolute paths. */ name_only = 0; - while (TRUE) + while (true) { DBG (SRCDEBUG, printf ("[annotate_source]: looking for %s, trying %s\n", sf->name, fname)); @@ -226,12 +226,12 @@ DEFUN (annotate_source, (sf, max_width, annote, arg), if (ofp == stdout) { if (first_file) - first_file = FALSE; + first_file = false; else fputc ('\n', ofp); if (first_output) - first_output = FALSE; + first_output = false; else fprintf (ofp, "\f\n"); @@ -240,7 +240,7 @@ DEFUN (annotate_source, (sf, max_width, annote, arg), annotation = xmalloc (max_width + 1); line_num = 1; - new_line = TRUE; + new_line = true; while ((nread = fread (buf, 1, sizeof (buf), ifp)) > 0) { @@ -251,7 +251,7 @@ DEFUN (annotate_source, (sf, max_width, annote, arg), (*annote) (annotation, max_width, line_num, arg); fputs (annotation, ofp); ++line_num; - new_line = FALSE; + new_line = false; } new_line = (buf[i] == '\n'); diff --git a/gprof/source.h b/gprof/source.h index 746848e02f1..6e2e18fbe7e 100644 --- a/gprof/source.h +++ b/gprof/source.h @@ -33,7 +33,7 @@ typedef struct source_file Source_File; /* Options. */ -extern bool create_annotation_files; /* Create annotated output files? */ +extern boolean create_annotation_files; /* Create annotated output files? */ /* List of directories to search for source files. */ extern Search_List src_search_list; diff --git a/gprof/sym_ids.c b/gprof/sym_ids.c index 378d1aee7c7..f388d111412 100644 --- a/gprof/sym_ids.c +++ b/gprof/sym_ids.c @@ -33,7 +33,7 @@ struct sym_id struct sym_id *next; char *spec; /* Parsing modifies this. */ Table_Id which_table; - bool has_right; + boolean has_right; struct match { @@ -169,7 +169,7 @@ DEFUN (parse_id, (id), struct sym_id *id) { parse_spec (slash + 1, &id->right.sym); *slash = '\0'; - id->has_right = TRUE; + id->has_right = true; } parse_spec (id->spec, &id->left.sym); @@ -206,21 +206,21 @@ DEFUN (parse_id, (id), struct sym_id *id) /* Return TRUE iff PATTERN matches SYM. */ -static bool +static boolean DEFUN (match, (pattern, sym), Sym * pattern AND Sym * sym) { - return (pattern->file ? pattern->file == sym->file : TRUE) - && (pattern->line_num ? pattern->line_num == sym->line_num : TRUE) + return (pattern->file ? pattern->file == sym->file : true) + && (pattern->line_num ? pattern->line_num == sym->line_num : true) && (pattern->name ? strcmp (pattern->name, sym->name+(discard_underscores && sym->name[0] == '_')) == 0 - : TRUE); + : true); } static void DEFUN (extend_match, (m, sym, tab, second_pass), - struct match *m AND Sym * sym AND Sym_Table * tab AND bool second_pass) + struct match *m AND Sym * sym AND Sym_Table * tab AND boolean second_pass) { if (m->prev_match != sym - 1) { @@ -271,10 +271,10 @@ DEFUN_VOID (sym_id_parse) for (id = id_list; id; id = id->next) { if (match (&id->left.sym, sym)) - extend_match (&id->left, sym, &syms[id->which_table], FALSE); + extend_match (&id->left, sym, &syms[id->which_table], false); if (id->has_right && match (&id->right.sym, sym)) - extend_match (&id->right, sym, &right_ids, FALSE); + extend_match (&id->right, sym, &right_ids, false); } } @@ -302,10 +302,10 @@ DEFUN_VOID (sym_id_parse) for (id = id_list; id; id = id->next) { if (match (&id->left.sym, sym)) - extend_match (&id->left, sym, &syms[id->which_table], TRUE); + extend_match (&id->left, sym, &syms[id->which_table], true); if (id->has_right && match (&id->right.sym, sym)) - extend_match (&id->right, sym, &right_ids, TRUE); + extend_match (&id->right, sym, &right_ids, true); } } @@ -353,7 +353,7 @@ DEFUN_VOID (sym_id_parse) time requesting -k a/b. Fortunately, those symbol tables don't get very big (the user has to type them!), so a linear search is probably tolerable. */ -bool +boolean DEFUN (sym_id_arc_is_present, (symtab, from, to), Sym_Table * symtab AND Sym * from AND Sym * to) { @@ -363,8 +363,8 @@ DEFUN (sym_id_arc_is_present, (symtab, from, to), { if (from->addr >= sym->addr && from->addr <= sym->end_addr && arc_lookup (sym, to)) - return TRUE; + return true; } - return FALSE; + return false; } diff --git a/gprof/sym_ids.h b/gprof/sym_ids.h index ca0ad069e29..5b65ce26afa 100644 --- a/gprof/sym_ids.h +++ b/gprof/sym_ids.h @@ -35,8 +35,8 @@ Table_Id; extern Sym_Table syms[NUM_TABLES]; -extern void sym_id_add PARAMS ((const char *, Table_Id)); -extern void sym_id_parse PARAMS ((void)); -extern bool sym_id_arc_is_present PARAMS ((Sym_Table *, Sym *, Sym *)); +extern void sym_id_add PARAMS ((const char *, Table_Id)); +extern void sym_id_parse PARAMS ((void)); +extern boolean sym_id_arc_is_present PARAMS ((Sym_Table *, Sym *, Sym *)); #endif /* sym_ids_h */ diff --git a/gprof/symtab.h b/gprof/symtab.h index d25323bfe28..824fe9c2d35 100644 --- a/gprof/symtab.h +++ b/gprof/symtab.h @@ -77,7 +77,7 @@ typedef struct sym double child_time; /* Cumulative ticks in children. */ int index; /* Index in the graph list. */ int top_order; /* Graph call chain top-sort order. */ - bool print_flag; /* Should this be printed? */ + boolean print_flag; /* Should this be printed? */ struct { double fract; /* What % of time propagates. */ diff --git a/gprof/tahoe.c b/gprof/tahoe.c index 1e627c86697..eb990171bee 100644 --- a/gprof/tahoe.c +++ b/gprof/tahoe.c @@ -221,11 +221,11 @@ tahoe_find_call (parent, p_lowpc, p_highpc) tahoe_operandenum mode; tahoe_operandenum firstmode; bfd_vma pc, destpc; - static bool inited = FALSE; + static boolean inited = false; if (!inited) { - inited = TRUE; + inited = true; sym_init (&indirectchild); indirectchild.cg.prop.fract = 1.0; indirectchild.cg.cyc.head = &indirectchild; diff --git a/gprof/vax.c b/gprof/vax.c index bbecff99c65..a54cce27f47 100644 --- a/gprof/vax.c +++ b/gprof/vax.c @@ -232,11 +232,11 @@ vax_find_call (parent, p_lowpc, p_highpc) operandenum mode; operandenum firstmode; bfd_vma pc, destpc; - static bool inited = FALSE; + static boolean inited = false; if (!inited) { - inited = TRUE; + inited = true; sym_init (&indirectchild); indirectchild.cg.prop.fract = 1.0; indirectchild.cg.cyc.head = &indirectchild;