Inline Expansion of Subprograms
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Ada Reference Manual — Legal Information

# 6.3.2 Inline Expansion of Subprograms

1
Subprograms may be expanded in line at the call site.

#### Syntax

2
The form of a pragma Inline, which is a program unit pragma (see 10.1.5), is as follows:
3
pragma Inline(name {, name});

#### Legality Rules

4
The pragma shall apply to one or more callable entities or generic subprograms.

#### Static Semantics

5
If a pragma Inline applies to a callable entity, this indicates that inline expansion is desired for all calls to that entity. If a pragma Inline applies to a generic subprogram, this indicates that inline expansion is desired for all calls to all instances of that generic subprogram.

#### Implementation Permissions

6
For each call, an implementation is free to follow or to ignore the recommendation expressed by the pragma.
6.1/2
An implementation may allow a pragma Inline that has an argument which is a direct_name denoting a subprogram_body of the same declarative_part.
NOTES
7
6 The name in a pragma Inline can denote more than one entity in the case of overloading. Such a pragma applies to all of the denoted entities.

Sponsored by Ada-Europe