This is a "problem" test in Ada versus the C equivalent. In C, we used macros to : + declare a LOT of local integer and floating point variables + load them with values + check them at certain times + to avoid floating point operations on CPUs w/o hardware support The macros are not equivalent to subprograms doing the same thing. We are trying to insure that the register set is fully utilized and checking that it survives context switches. If the routines are subprograms, then calling conventions and scoping rules apply. Thus the variables do not exist throughout the entire life of the task as in the C test. It seems to point out that although the conditional compilation and macro capabilities of C are often abused, they do provide capabilities which are difficult if not impossible to mimic entirely with subprograms.