1. Равно ли число параметров, получаемых рассматриваемым модулем, числу аргументов, передаваемых каждым из вызывающих модулей? Правилен ли порядок их следования?
2. Совпадают ли атрибуты (например, тип и размер) каждого параметра с атрибутами соответствующего ему аргумента?
3. Совпадают ли единицы измерения каждого параметра с единицами измерения соответствующих аргументов? Например, нет ли случаев, когда значение параметров выражено в градусах, а аргумента — в радианах?
4. Равно ли число аргументов, передаваемых из рассматриваемого модуля другому модулю, числу параметров, ожидаемых в вызываемом модуле?
5. Соответствуют ли атрибуты каждого аргумента, передаваемого другому модулю, атрибутам соответствующего параметра в рассматриваемом модуле?
6. Совпадают ли единицы измерения каждого аргумента, передаваемого другому модулю, с единицами измерения соответствующего параметра в рассматриваемом модуле?
7. Если вызываются встроенные функции, правильно ли заданы число, атрибуты и порядок следования аргументов?
8. Если модуль имеет несколько точек входа, передается ли параметр всегда вне зависимости от точки входа? Такая ошибка присутствует во втором операторе присваивания следующей программы на PL/1:
A: PROCEDURE (W,X);
W=X+1;
RETURN;
В: ENTRY (Y,Z);
Y=X+Z;
END;
9. Не изменяет ли подпрограмма параметр, который должен использоваться только как входная величина?
10. Если имеются глобальные переменные (например, переменные в PL/1 с атрибутом EXTERNAL или в Си с атрибутом EXTERN, переменные, указанные в операторах COMMON Фортрана), имеют ли они одинаковые определения и атрибуты во всех модулях, которые к ним обращаются?
11. Передаются ли в качестве аргументов константы? В некоторых реализациях Фортрана такие операторы, как
CALL SUBX (J,3)
являются опасными, поскольку, если подпрограмма SUBX присвоит значение второму параметру, значение константы 3 будет изменено.