tmp/tmpmyrezets/{from.md → to.md}
RENAMED
|
@@ -1,26 +1,32 @@
|
|
| 1 |
-
##
|
| 2 |
|
| 3 |
-
A
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
|
| 5 |
``` bnf
|
| 6 |
labeled-statement:
|
| 7 |
-
|
| 8 |
-
attribute-specifier-seqₒₚₜ case constant-expression ':' statement
|
| 9 |
-
attribute-specifier-seqₒₚₜ default ':' statement
|
| 10 |
```
|
| 11 |
|
| 12 |
-
The optional *attribute-specifier-seq* appertains to the label.
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
|
|
|
|
| 1 |
+
## Label <a id="stmt.label">[[stmt.label]]</a>
|
| 2 |
|
| 3 |
+
A label can be added to a statement or used anywhere in a
|
| 4 |
+
*compound-statement*.
|
| 5 |
+
|
| 6 |
+
``` bnf
|
| 7 |
+
label:
|
| 8 |
+
attribute-specifier-seqₒₚₜ identifier ':'
|
| 9 |
+
attribute-specifier-seqₒₚₜ case constant-expression ':'
|
| 10 |
+
attribute-specifier-seqₒₚₜ default ':'
|
| 11 |
+
```
|
| 12 |
|
| 13 |
``` bnf
|
| 14 |
labeled-statement:
|
| 15 |
+
label statement
|
|
|
|
|
|
|
| 16 |
```
|
| 17 |
|
| 18 |
+
The optional *attribute-specifier-seq* appertains to the label. The only
|
| 19 |
+
use of a label with an *identifier* is as the target of a `goto`. No two
|
| 20 |
+
labels in a function shall have the same *identifier*. A label can be
|
| 21 |
+
used in a `goto` statement before its introduction.
|
| 22 |
+
|
| 23 |
+
A *labeled-statement* whose *label* is a `case` or `default` label shall
|
| 24 |
+
be enclosed by [[stmt.pre]] a `switch` statement [[stmt.switch]].
|
| 25 |
+
|
| 26 |
+
A *control-flow-limited statement* is a statement `S` for which:
|
| 27 |
+
|
| 28 |
+
- a `case` or `default` label appearing within `S` shall be associated
|
| 29 |
+
with a `switch` statement [[stmt.switch]] within `S`, and
|
| 30 |
+
- a label declared in `S` shall only be referred to by a statement
|
| 31 |
+
[[stmt.goto]] in `S`.
|
| 32 |
|