[cxx-abi-dev] Run-time array checking

Mike Herrick mjh at edg.com
Mon Dec 3 18:44:34 UTC 2012


If there are no further objections, can this be applied to the ABI document?

Thanks,

Mike Herrick
Edison Design Group

On Sep 13, 2012, at 10:00 AM, Mike Herrick wrote:

> 
> On Sep 13, 2012, at 9:00 AM, Mike Herrick wrote:
> 
>> Okay, if there aren't any other objections/ideas, I'll come up with a patch.
> 
> Here's a proposed patch (against the current gh-pages branch at github):
> 
> diff --git a/abi.html b/abi.html
> index fe5e72c..10f4ca5 100644
> --- a/abi.html
> +++ b/abi.html
> @@ -3329,6 +3329,12 @@ not be called.</p>
> 
> <p>Neither <code>alloc</code> nor <code>dealloc</code> may be
> <code>NULL</code>.</p>
> +
> +<p>If the computed size of the allocated array object (including
> +space for a cookie, if specified) would exceed the
> +implementation-defined limit, <code>std::bad_array_new_length</code>
> +is thrown.</p>
> +
> </dd>
> 
> <dt><code><pre>
> @@ -3347,6 +3353,16 @@ function takes both the object address and its size.
> </dd>
> 
> <dt><code><pre>
> +extern "C" void __cxa_throw_bad_array_new_length (void);
> +</pre></code></dt>
> +<dd>
> +Unconditionally throws <code>std::bad_array_new_length</code>.
> +May be invoked by the compiler when the number of array elements
> +expression of a <code>new[]</code> operation violates the requirements
> +of the C++ standard.
> +</dd>
> +
> +<dt><code><pre>
> extern "C" void __cxa_vec_ctor (
>            void *array_address,
>            size_t element_count,
> 
> Mike.
> 
> 



More information about the cxx-abi-dev mailing list