The RM 3.9.2(19) clause says that the controlling tag value is statically determined to be the tag of the tagged type involved. As a matter of fact, the call would be made dispatching only as a by-product of the propagation of the controlling tag value to the tag-indeternminate actuals, but that's unnecessary and not done in the equivalent case of a procedure call with both statically tagged and tag-indeternminate actuals. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * sem_disp.adb (Check_Dispatching_Call): Merge the two special cases where there are no controlling actuals but tag-indeternminate ones.