|
2630 | 2630 | \item
|
2631 | 2631 | If \tcode{V} has partially-ordered initialization, \tcode{W} does not have
|
2632 | 2632 | unordered initialization, and \tcode{V} is defined before \tcode{W} in
|
2633 |
| -every translation unit in which \tcode{W} is defined, the initialization of |
2634 |
| -\tcode{V} is sequenced before the initialization of \tcode{W} if the |
2635 |
| -program does not start a thread~(\ref{intro.multithread}) |
2636 |
| -other than the main thread~(\ref{basic.start.main}) |
2637 |
| -and otherwise strongly happens before the initialization of \tcode{W}. |
| 2633 | +every translation unit in which \tcode{W} is defined, then |
| 2634 | +\begin{itemize} |
| 2635 | +\item |
| 2636 | +if the program starts a thread~(\ref{intro.multithread}) |
| 2637 | +other than the main thread~(\ref{basic.start.main}), |
| 2638 | +the initialization of \tcode{V} |
| 2639 | +strongly happens before |
| 2640 | +the initialization of \tcode{W}; |
| 2641 | +\item |
| 2642 | +otherwise, |
| 2643 | +the initialization of \tcode{V} |
| 2644 | +is sequenced before |
| 2645 | +the initialization of \tcode{W}. |
| 2646 | +\end{itemize} |
2638 | 2647 |
|
2639 | 2648 | \item
|
2640 | 2649 | Otherwise, if the program starts a thread
|
|
2670 | 2679 | defined in the same translation unit as the variable to be initialized.%
|
2671 | 2680 | \footnote{A non-local variable with static storage duration
|
2672 | 2681 | having initialization
|
2673 |
| -with side effects is initialized in this case |
| 2682 | +with side effects is initialized in this case, |
2674 | 2683 | even if it is not itself odr-used (\ref{basic.def.odr},~\ref{basic.stc.static}).}
|
2675 | 2684 | It is \impldef{threads and program points at which deferred dynamic initialization is performed}
|
2676 | 2685 | in which threads and at which points in the program such deferred dynamic initialization occurs.
|
|
0 commit comments