From Jason Turner

[dcl.attr.depend]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp8t6y6v3w/{from.md → to.md} +9 -11
tmp/tmp8t6y6v3w/{from.md → to.md} RENAMED
@@ -1,18 +1,16 @@
1
  ### Carries dependency attribute <a id="dcl.attr.depend">[[dcl.attr.depend]]</a>
2
 
3
  The *attribute-token* `carries_dependency` specifies dependency
4
- propagation into and out of functions. It shall appear at most once in
5
- each *attribute-list* and no *attribute-argument-clause* shall be
6
- present. The attribute may be applied to the *declarator-id* of a
7
- *parameter-declaration* in a function declaration or lambda, in which
8
- case it specifies that the initialization of the parameter carries a
9
- dependency to [[intro.multithread]] each lvalue-to-rvalue conversion
10
- [[conv.lval]] of that object. The attribute may also be applied to the
11
- *declarator-id* of a function declaration, in which case it specifies
12
- that the return value, if any, carries a dependency to the evaluation of
13
- the function call expression.
14
 
15
  The first declaration of a function shall specify the
16
  `carries_dependency` attribute for its *declarator-id* if any
17
  declaration of the function specifies the `carries_dependency`
18
  attribute. Furthermore, the first declaration of a function shall
@@ -24,11 +22,11 @@ declaration in one translation unit and the same function or one of its
24
  parameters is declared without the `carries_dependency` attribute in its
25
  first declaration in another translation unit, the program is
26
  ill-formed, no diagnostic required.
27
 
28
  [*Note 1*: The `carries_dependency` attribute does not change the
29
- meaning of the program, but may result in generation of more efficient
30
  code. — *end note*]
31
 
32
  [*Example 1*:
33
 
34
  ``` cpp
 
1
  ### Carries dependency attribute <a id="dcl.attr.depend">[[dcl.attr.depend]]</a>
2
 
3
  The *attribute-token* `carries_dependency` specifies dependency
4
+ propagation into and out of functions. No *attribute-argument-clause*
5
+ shall be present. The attribute may be applied to a parameter of a
6
+ function or lambda, in which case it specifies that the initialization
7
+ of the parameter carries a dependency to [[intro.multithread]] each
8
+ lvalue-to-rvalue conversion [[conv.lval]] of that object. The attribute
9
+ may also be applied to a function or a lambda call operator, in which
10
+ case it specifies that the return value, if any, carries a dependency to
11
+ the evaluation of the function call expression.
 
 
12
 
13
  The first declaration of a function shall specify the
14
  `carries_dependency` attribute for its *declarator-id* if any
15
  declaration of the function specifies the `carries_dependency`
16
  attribute. Furthermore, the first declaration of a function shall
 
22
  parameters is declared without the `carries_dependency` attribute in its
23
  first declaration in another translation unit, the program is
24
  ill-formed, no diagnostic required.
25
 
26
  [*Note 1*: The `carries_dependency` attribute does not change the
27
+ meaning of the program, but might result in generation of more efficient
28
  code. — *end note*]
29
 
30
  [*Example 1*:
31
 
32
  ``` cpp