http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59258

--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Marek Polacek from comment #1)
> Ugh, of course.  This should fix it.  Thanks for the report.

Seems to work for the reduced test case but not for the big code - also
-fsanitize=addr can only detect a segfault. Hopefully, it can be reduced to
something small. Currently, it looks as if it could be a similar kind of bug,
which makes reducing difficult.


> --- a/gcc/ubsan.c
> +++ b/gcc/ubsan.c

How about also adding:

--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -468,4 +468,5 @@ ubsan_create_data (const char *name, location_t loc,
   for (i = 0; i < nelts; i++)
     {
+      gcc_checking_assert (i < 5);
       t = (*saved_args)[i];

Reply via email to