From Jason Turner

[basic.stc.dynamic.allocation]

Diff to HTML by rtfpessoa

tmp/tmpfyc2us4x/{from.md → to.md} RENAMED
@@ -24,11 +24,11 @@ from any previously returned value `p1`, unless that value `p1` was
24
  subsequently passed to a replaceable deallocation function. Furthermore,
25
  for the library allocation functions in  [[new.delete.single]] and 
26
  [[new.delete.array]], `p0` represents the address of a block of storage
27
  disjoint from the storage for any other object accessible to the caller.
28
  The effect of indirecting through a pointer returned from a request for
29
- zero size is undefined.[^11]
30
 
31
  For an allocation function other than a reserved placement allocation
32
  function [[new.delete.placement]], the pointer returned on a successful
33
  call shall represent the address of storage that is aligned as follows:
34
 
@@ -43,12 +43,12 @@ call shall represent the address of storage that is aligned as follows:
43
 
44
  An allocation function that fails to allocate storage can invoke the
45
  currently installed new-handler function [[new.handler]], if any.
46
 
47
  [*Note 3*: A program-supplied allocation function can obtain the
48
- address of the currently installed `new_handler` using the
49
- `std::get_new_handler` function [[get.new.handler]]. — *end note*]
50
 
51
  An allocation function that has a non-throwing exception specification
52
  [[except.spec]] indicates failure by returning a null pointer value. Any
53
  other allocation function never returns a null pointer value and
54
  indicates failure only by throwing an exception [[except.throw]] of a
@@ -63,8 +63,10 @@ calls to the functions in the C++ standard library.
63
 
64
  [*Note 4*: In particular, a global allocation function is not called to
65
  allocate storage for objects with static storage duration
66
  [[basic.stc.static]], for objects or references with thread storage
67
  duration [[basic.stc.thread]], for objects of type `std::type_info`
68
- [[expr.typeid]], or for an exception object
 
 
69
  [[except.throw]]. — *end note*]
70
 
 
24
  subsequently passed to a replaceable deallocation function. Furthermore,
25
  for the library allocation functions in  [[new.delete.single]] and 
26
  [[new.delete.array]], `p0` represents the address of a block of storage
27
  disjoint from the storage for any other object accessible to the caller.
28
  The effect of indirecting through a pointer returned from a request for
29
+ zero size is undefined.[^9]
30
 
31
  For an allocation function other than a reserved placement allocation
32
  function [[new.delete.placement]], the pointer returned on a successful
33
  call shall represent the address of storage that is aligned as follows:
34
 
 
43
 
44
  An allocation function that fails to allocate storage can invoke the
45
  currently installed new-handler function [[new.handler]], if any.
46
 
47
  [*Note 3*: A program-supplied allocation function can obtain the
48
+ currently installed `new_handler` using the `std::get_new_handler`
49
+ function [[get.new.handler]]. — *end note*]
50
 
51
  An allocation function that has a non-throwing exception specification
52
  [[except.spec]] indicates failure by returning a null pointer value. Any
53
  other allocation function never returns a null pointer value and
54
  indicates failure only by throwing an exception [[except.throw]] of a
 
63
 
64
  [*Note 4*: In particular, a global allocation function is not called to
65
  allocate storage for objects with static storage duration
66
  [[basic.stc.static]], for objects or references with thread storage
67
  duration [[basic.stc.thread]], for objects of type `std::type_info`
68
+ [[expr.typeid]], for an object of type
69
+ `std::contracts::contract_violation` when a contract violation occurs
70
+ [[basic.contract.eval]], or for an exception object
71
  [[except.throw]]. — *end note*]
72