|
35 | 35 | //
|
36 | 36 | // CHECK-STABLE: cplusplus.Move:WarnOn
|
37 | 37 | // CHECK-STABLE-SAME: (string) In non-aggressive mode, only warn
|
38 |
| -// CHECK-STABLLE: on use-after-move of local variables (or |
39 |
| -// CHECK-STABLLE: local rvalue references) and of STL objects. |
40 |
| -// CHECK-STABLLE: The former is possible because local variables |
41 |
| -// CHECK-STABLLE: (or local rvalue references) are not tempting |
42 |
| -// CHECK-STABLLE: their user to re-use the storage. The latter |
43 |
| -// CHECK-STABLLE: is possible because STL objects are known |
44 |
| -// CHECK-STABLLE: to end up in a valid but unspecified state |
45 |
| -// CHECK-STABLLE: after the move and their state-reset methods |
46 |
| -// CHECK-STABLLE: are also known, which allows us to predict |
47 |
| -// CHECK-STABLLE: precisely when use-after-move is invalid. |
48 |
| -// CHECK-STABLLE: Some STL objects are known to conform to |
49 |
| -// CHECK-STABLLE: additional contracts after move, so they |
50 |
| -// CHECK-STABLLE: are not tracked. However, smart pointers |
51 |
| -// CHECK-STABLLE: specifically are tracked because we can |
52 |
| -// CHECK-STABLLE: perform extra checking over them. In aggressive |
53 |
| -// CHECK-STABLLE: mode, warn on any use-after-move because |
54 |
| -// CHECK-STABLLE: the user has intentionally asked us to completely |
55 |
| -// CHECK-STABLLE: eliminate use-after-move in his code. Values: |
56 |
| -// CHECK-STABLLE: "KnownsOnly", "KnownsAndLocals", "All". |
57 |
| -// CHECK-STABLLE: (default: KnownsAndLocals) |
| 38 | +// CHECK-STABLE: on use-after-move of local variables (or |
| 39 | +// CHECK-STABLE: local rvalue references) and of STL objects. |
| 40 | +// CHECK-STABLE: The former is possible because local variables |
| 41 | +// CHECK-STABLE: (or local rvalue references) are not tempting |
| 42 | +// CHECK-STABLE: their user to re-use the storage. The latter |
| 43 | +// CHECK-STABLE: is possible because STL objects are known |
| 44 | +// CHECK-STABLE: to end up in a valid but unspecified state |
| 45 | +// CHECK-STABLE: after the move and their state-reset methods |
| 46 | +// CHECK-STABLE: are also known, which allows us to predict |
| 47 | +// CHECK-STABLE: precisely when use-after-move is invalid. |
| 48 | +// CHECK-STABLE: Some STL objects are known to conform to |
| 49 | +// CHECK-STABLE: additional contracts after move, so they |
| 50 | +// CHECK-STABLE: are not tracked. However, smart pointers |
| 51 | +// CHECK-STABLE: specifically are tracked because we can |
| 52 | +// CHECK-STABLE: perform extra checking over them. In aggressive |
| 53 | +// CHECK-STABLE: mode, warn on any use-after-move because |
| 54 | +// CHECK-STABLE: the user has intentionally asked us to completely |
| 55 | +// CHECK-STABLE: eliminate use-after-move in his code. Values: |
| 56 | +// CHECK-STABLE: "KnownsOnly", "KnownsAndLocals", "All". |
| 57 | +// CHECK-STABLE: (default: KnownsAndLocals) |
58 | 58 |
|
59 | 59 | // CHECK-STABLE-NOT: debug.AnalysisOrder:*
|
60 | 60 | // CHECK-DEVELOPER: debug.AnalysisOrder:*
|
|
0 commit comments