From Jason Turner

[support.runtime]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp1t0vlcm7/{from.md → to.md} +14 -9
tmp/tmp1t0vlcm7/{from.md → to.md} RENAMED
@@ -14,13 +14,13 @@ following changes:
14
  The restrictions that ISO C places on the second parameter to the
15
  `va_start()` macro in header `<stdarg.h>` are different in this
16
  International Standard. The parameter `parmN` is the identifier of the
17
  rightmost parameter in the variable parameter list of the function
18
  definition (the one just before the `...`).[^34] If the parameter
19
- `parmN` is declared with a function, array, or reference type, or with a
20
- type that is not compatible with the type that results when passing an
21
- argument for which there is no parameter, the behavior is undefined.
22
 
23
  ISO C 4.8.1.1.
24
 
25
  The function signature `longjmp(jmp_buf jbuf, int val)` has more
26
  restricted behavior in this International Standard. A `setjmp`/`longjmp`
@@ -45,21 +45,26 @@ The header `<cstdalign>` and the header `<stdalign.h>` shall not define
45
  a macro named `alignas`.
46
 
47
  The header `<cstdbool>` and the header `<stdbool.h>` shall not define
48
  macros named `bool`, `true`, or `false`.
49
 
 
 
 
50
  The common subset of the C and C++languages consists of all
51
  declarations, definitions, and expressions that may appear in a well
52
  formed C++program and also in a conforming C program. A POF (“plain old
53
  function”) is a function that uses only features from this common
54
  subset, and that does not directly or indirectly use any function that
55
- is not a POF, except that it may use functions defined in Clause 
56
- [[atomics]] that are not member functions. All signal handlers shall
57
- have C linkage. A POF that could be used as a signal handler in a
58
- conforming C program does not produce undefined behavior when used as a
59
- signal handler in a C++program. The behavior of any other function used
60
- as a signal handler in a C++program is *implementation-defined*.[^35]
 
 
61
 
62
  <!-- Link reference definitions -->
63
  [alloc.errors]: #alloc.errors
64
  [atomics]: atomics.md#atomics
65
  [bad.alloc]: #bad.alloc
 
14
  The restrictions that ISO C places on the second parameter to the
15
  `va_start()` macro in header `<stdarg.h>` are different in this
16
  International Standard. The parameter `parmN` is the identifier of the
17
  rightmost parameter in the variable parameter list of the function
18
  definition (the one just before the `...`).[^34] If the parameter
19
+ `parmN` is of a reference type, or of a type that is not compatible with
20
+ the type that results when passing an argument for which there is no
21
+ parameter, the behavior is undefined.
22
 
23
  ISO C 4.8.1.1.
24
 
25
  The function signature `longjmp(jmp_buf jbuf, int val)` has more
26
  restricted behavior in this International Standard. A `setjmp`/`longjmp`
 
45
  a macro named `alignas`.
46
 
47
  The header `<cstdbool>` and the header `<stdbool.h>` shall not define
48
  macros named `bool`, `true`, or `false`.
49
 
50
+ A call to the function `signal` synchronizes with any resulting
51
+ invocation of the signal handler so installed.
52
+
53
  The common subset of the C and C++languages consists of all
54
  declarations, definitions, and expressions that may appear in a well
55
  formed C++program and also in a conforming C program. A POF (“plain old
56
  function”) is a function that uses only features from this common
57
  subset, and that does not directly or indirectly use any function that
58
+ is not a POF, except that it may use plain lock-free atomic operations.
59
+ A *plain lock-free atomic operation* is an invocation of a function *f*
60
+ from Clause  [[atomics]], such that *f* is not a member function, and
61
+ either *f* is the function `atomic_is_lock_free`, or for every atomic
62
+ argument `A` passed to *f*, `atomic_is_lock_free(A)` yields `true`. All
63
+ signal handlers shall have C linkage. The behavior of any function other
64
+ than a POF used as a signal handler in a C++program is
65
+ *implementation-defined*.[^35]
66
 
67
  <!-- Link reference definitions -->
68
  [alloc.errors]: #alloc.errors
69
  [atomics]: atomics.md#atomics
70
  [bad.alloc]: #bad.alloc