This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: libsanitizer merge from upstream r196090
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Marek Polacek <polacek at redhat dot com>
- Cc: Konstantin Serebryany <konstantin dot s dot serebryany at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Dodji Seketeli <dodji at redhat dot com>, Dmitry Vyukov <dvyukov at google dot com>
- Date: Mon, 2 Dec 2013 15:47:18 +0100
- Subject: Re: libsanitizer merge from upstream r196090
- Authentication-results: sourceware.org; auth=none
- References: <CAGQ9bdw4vW29d_L0hYuhy3r47Sqn8Xebsr4FZoZyDk=G=i+kpg at mail dot gmail dot com> <20131202134105 dot GB9986 at redhat dot com> <20131202144118 dot GC9986 at redhat dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Mon, Dec 02, 2013 at 03:41:18PM +0100, Marek Polacek wrote:
> On Mon, Dec 02, 2013 at 02:41:05PM +0100, Marek Polacek wrote:
> > On Mon, Dec 02, 2013 at 03:52:09PM +0400, Konstantin Serebryany wrote:
> > > This change breaks one ubsan test:
> > > make check -C gcc RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} ubsan.exp'
> > > FAIL: c-c++-common/ubsan/vla-1.c -O0 execution test
> > > I am asking gcc-ubsan maintainers to help me decipher dejagnu
> > > diagnostics and fix the test failure.
> >
> > Ok, reproduced. I'll look into it.
>
> Well, this should help. The problem is that the testcase, when run,
> SIGSEGVed, but since we're doing Ugly Things (VLAs with negative
> size), it of course _can_ segfault, we're just relying that it
> doesn't.
Suppossedly it might be better to split the main from the test into multiple
functions, with __attribute__((noinline)) and just one invalid VLA in each.
> diff --git a/gcc/testsuite/c-c++-common/ubsan/vla-1.c b/gcc/testsuite/c-c++-common/ubsan/vla-1.c
> index 3e47bd3..1c5d14a 100644
> --- a/gcc/testsuite/c-c++-common/ubsan/vla-1.c
> +++ b/gcc/testsuite/c-c++-common/ubsan/vla-1.c
> @@ -13,7 +13,7 @@ main (void)
> {
> int x = -1;
> double di = -3.2;
> - V v = -666;
> + V v = -6;
>
> int a[x];
> int aa[x][x];
> @@ -44,5 +44,5 @@ main (void)
> /* { dg-output "\[^\n\r]*variable length array bound evaluates to non-positive value 0(\n|\r\n|\r)" } */
> /* { dg-output "\[^\n\r]*variable length array bound evaluates to non-positive value -1(\n|\r\n|\r)" } */
> /* { dg-output "\[^\n\r]*variable length array bound evaluates to non-positive value -1(\n|\r\n|\r)" } */
> -/* { dg-output "\[^\n\r]*variable length array bound evaluates to non-positive value -666(\n|\r\n|\r)" } */
> +/* { dg-output "\[^\n\r]*variable length array bound evaluates to non-positive value -6(\n|\r\n|\r)" } */
> /* { dg-output "\[^\n\r]*variable length array bound evaluates to non-positive value -42(\n|\r\n|\r)" } */
Jakub