This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [patch] Make vector::at() assertion message more useful
- From: Paolo Carlini <paolo dot carlini at oracle dot com>
- To: Paul Pluzhnikov <ppluzhnikov at google dot com>, patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Cc: habets at google dot com
- Date: Sat, 17 Aug 2013 12:41:04 +0200
- Subject: Re: [patch] Make vector::at() assertion message more useful
- References: <ye6qk3jlqioo dot fsf at elbrus2 dot mtv dot corp dot google dot com>
Hi,
Paul Pluzhnikov <ppluzhnikov@google.com> ha scritto: __throw_out_of_range(__N("vector::_M_range_check"));
>+ {
>+ char __s[256];
>+ __builtin_snprintf(__s, sizeof(__s),
>+ __N("vector::_M_range_check: %zu >= %zu"),
>+ __n, this->size());
>+ __throw_out_of_range(__s);
>+ }
The idea makes sense, but while we are at it I think the message could be more clear, say what the two numbers are. Also, I don't think we can unconditionally call snprintf, it's C99 and supported targets lack it. Maybe with some libiberty magic? I don't think such magic automagically triggers when __builtin_snprintf is expanded, or does it? Please investigate that.
Thanks,
Paolo