version 1.3, 2001/03/22 05:18:30 |
version 1.4, 2002/03/25 16:30:55 |
|
|
printname( parentp ); |
printname( parentp ); |
printf( ")\n" ); |
printf( ")\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
/* |
/* |
* if we're already numbered, no need to look any furthur. |
* if we're already numbered, no need to look any furthur. |
*/ |
*/ |
|
|
printname( parentp ); |
printname( parentp ); |
printf( "\n" ); |
printf( "\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
} |
} |
|
|
/* |
/* |
|
|
printname( cycleheadp ); |
printname( cycleheadp ); |
printf( "\n" ); |
printf( "\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
if ( cycletop == dfn_depth ) { |
if ( cycletop == dfn_depth ) { |
/* |
/* |
* this is previous function, e.g. this calls itself |
* this is previous function, e.g. this calls itself |
|
|
printname( tailp ); |
printname( tailp ); |
printf( "\n" ); |
printf( "\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
} |
} |
/* |
/* |
* if what we think is the top of the cycle |
* if what we think is the top of the cycle |
|
|
printname( cycleheadp ); |
printname( cycleheadp ); |
printf( "\n" ); |
printf( "\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
} |
} |
for ( index = cycletop + 1 ; index <= dfn_depth ; index += 1 ) { |
for ( index = cycletop + 1 ; index <= dfn_depth ; index += 1 ) { |
childp = dfn_stack[ index ].nlentryp; |
childp = dfn_stack[ index ].nlentryp; |
|
|
printname( cycleheadp ); |
printname( cycleheadp ); |
printf( "\n" ); |
printf( "\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
for ( tailp = childp ; tailp->cnext ; tailp = tailp->cnext ) { |
for ( tailp = childp ; tailp->cnext ; tailp = tailp->cnext ) { |
tailp -> cnext -> cyclehead = cycleheadp; |
tailp -> cnext -> cyclehead = cycleheadp; |
# ifdef DEBUG |
# ifdef DEBUG |
|
|
printname( cycleheadp ); |
printname( cycleheadp ); |
printf( "\n" ); |
printf( "\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
} |
} |
} else if ( childp -> cyclehead != cycleheadp /* firewall */ ) |
} else if ( childp -> cyclehead != cycleheadp /* firewall */ ) |
warnx("[dfn_busy] glommed, but not to cyclehead"); |
warnx("[dfn_busy] glommed, but not to cyclehead"); |
|
|
printname( parentp ); |
printname( parentp ); |
printf( "\n" ); |
printf( "\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
} |
} |
|
|
/* |
/* |
|
|
printname( parentp ); |
printname( parentp ); |
printf( "\n" ); |
printf( "\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
/* |
/* |
* number functions and things in their cycles |
* number functions and things in their cycles |
* unless the function is itself part of a cycle |
* unless the function is itself part of a cycle |
|
|
printname( memberp ); |
printname( memberp ); |
printf( " -> toporder = %d\n" , dfn_counter ); |
printf( " -> toporder = %d\n" , dfn_counter ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
} |
} |
} else { |
} else { |
# ifdef DEBUG |
# ifdef DEBUG |
if ( debug & DFNDEBUG ) { |
if ( debug & DFNDEBUG ) { |
printf( "[dfn_post_visit]\t\tis part of a cycle\n" ); |
printf( "[dfn_post_visit]\t\tis part of a cycle\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
} |
} |
dfn_depth -= 1; |
dfn_depth -= 1; |
} |
} |