https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28032
--- Comment #15 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- Created attachment 59515 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59515&action=edit Example illustrating kicker This simple patch adds a custom procedure to be run on a test case. I am using inline_matmul_1.f90 as the example test case. When running this test case you will see that the gfortran.dg dg.exp specifies running our main test procedure twice. Like this: --- snip --- set all_flags $DEFAULT_FFLAGS # Main loop. gfortran-dg-runtest [lsort \ [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] "" $all_flags gfortran-dg-runtest [lsort \ [glob -nocomplain $srcdir/$subdir/g77/*.\[fF\] ] ] "" $all_flags # All done. dg-finish When running the test,the new procedure I created is not executed until after the first gfortran-dg-runtest is executed and before the second one. The output from running this test is as follows: --- snip --- Running /home/jerry/dev/trunk/gcc/testsuite/gfortran.dg/dg.exp ... gfortran-dg-runtest Simple test gfortran-dg-runtest === gfortran Summary === --- snip --- I do not know why this happens but I suspect it has to do with the parallelization being done in the make/dejagnu test code. Regardless, I understand why our gfortran-dg-runtest code is doing its own scanning of the file under test to figure out what to do.