%\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}