undeclare_no_pointers
Section: 99 [util.dynamic.safety] Status: C++11 Submitter: BSI Opened: 2010-08-25 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [util.dynamic.safety].
View all issues with C++11 status.
Discussion:
Addresses GB-103
The precondition to calling declare_no_pointers
is that no
bytes in the range "have been previously registered" with
this call. As written, this precondition includes bytes in
ranges, even after they have been explicitly unregistered
with a later call to undeclare_no_pointers
.
Proposed resolution:
Update 99 [util.dynamic.safety] p.9:
void declare_no_pointers(char *p, size_t n);
9
Requires: No bytes in the specified rangehave been previously registeredare currently registered withdeclare_no_pointers()
. If the specified range is in an allocated object, then it must be entirely within a single allocated object. The object must be live until the correspondingundeclare_no_pointers()
call. [..]