The form for 
pragmas 
Atomic, Volatile, Independent, Atomic_Components, and Volatile_Components, 
and Independent_Components is as follows: 
The 
local_name 
in an Atomic or Volatile pragma shall resolve to denote either an 
object_declaration, 
a noninherited 
component_declaration, 
or a 
full_type_declaration. 
The 
component_local_name 
in an Independent pragma shall resolve to denote a noninherited 
component_declaration. 
The 
array_local_name 
in an Atomic_Components or Volatile_Components pragma shall resolve to 
denote the declaration of an array type or an array object of an anonymous 
type. The 
local_name 
in an Independent_Components pragma shall resolve to denote the declaration 
of an array or record type or an array object of an anonymous type. 
These 
pragmas 
are representation pragmas (see 
13.1). Each 
of these 
pragmas 
specifies that the similarly named aspect (see 
C.6) 
of the type, object, or component denoted by its argument is True.