Справочник Ada 2012
J.15.8 Предикаты для общих переменных
Синтаксис
Форма предиката pragma Atomic, Volatile, Independent, Atomic_Components, Volatile_Components и Independent_Components следующая:
pragma Atomic (local_name);
pragma Volatile (local_name);
pragma Independent (component_local_name);
pragma Atomic_Components (array_local_name);
pragma Volatile_Components (array_local_name);
pragma Independent_Components (local_name);
Правила разрешения имен
Имя local_name в предикатах Atomic или Volatile должно ссылаться на объявление object_declaration, неунаследованное объявление component_declaration или full_type_declaration. Имя component_local_name в предикате Independent должно ссылаться на неунаследованное объявление component_declaration. Имя array_local_name в предикатах Atomic_Components или Volatile_Components должно ссылаться на объявление типа массива или объекта массива анонимного типа. Имя local_name в предикате Independent_Components должно ссылаться на объявление типа массива или записи или объекта массива анонимного типа.
Статическая семантика
Эти pragma являются предикатами представления (см. 13.1). Каждый из этих pragma указывает, что соответствующий аспект (см. C.6) типа, объекта или компонента, указанного в его аргументе, равен True.
Правила легальности
Имя local_name каждого из этих pragma должно ссылаться на объявление, для которого может быть указан соответствующий аспект.