%\pagebreak
\section{Placement of \kcode{flush}, \kcode{barrier}, \kcode{taskwait} 
and \kcode{taskyield} Directives}
\label{sec:standalone}
\index{standalone directive placement}
\index{constructs!flush@\kcode{flush}}
\index{constructs!barrier@\kcode{barrier}}
\index{constructs!taskwait@\kcode{taskwait}}
\index{constructs!taskyield@\kcode{taskyield}}
\index{flush construct@\kcode{flush} construct}
\index{barrier construct@\kcode{barrier} construct}
\index{taskwait construct@\kcode{taskwait} construct}
\index{taskyield construct@\kcode{taskyield} construct}

The following example is non-conforming, because the \kcode{flush}, \kcode{barrier}, 
\kcode{taskwait}, and \kcode{taskyield}  directives are stand-alone directives 
and cannot be the immediate substatement of an \bcode{if} statement. 

\cexample[3.1]{standalone}{1}

The following example is non-conforming, because the \kcode{flush}, \kcode{barrier}, 
\kcode{taskwait}, and \kcode{taskyield}  directives are stand-alone directives 
and cannot be the action statement of an \bcode{if} statement or a labeled branch 
target.

\ffreeexample[3.1]{standalone}{1}

\pagebreak
The following version of the above example is conforming because the \kcode{flush}, 
\kcode{barrier}, \kcode{taskwait}, and \kcode{taskyield} directives are enclosed 
in a compound statement. 

\cexample[3.1]{standalone}{2}

The following example is conforming because the \kcode{flush}, \kcode{barrier}, 
\kcode{taskwait}, and \kcode{taskyield} directives are enclosed in an \bcode{if} 
construct or follow the labeled branch target.

\ffreeexample[3.1]{standalone}{2}


