vla-1.c: Split the tests into individual functions.
2013-12-02 Marek Polacek <polacek@redhat.com> testsuite/ * c-c++-common/ubsan/vla-1.c: Split the tests into individual functions. From-SVN: r205590
This commit is contained in:
parent
100f09a564
commit
76004bbc2d
@ -1,3 +1,8 @@
|
||||
2013-12-02 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
* c-c++-common/ubsan/vla-1.c: Split the tests into individual
|
||||
functions.
|
||||
|
||||
2013-12-02 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/59139
|
||||
|
@ -1,33 +1,104 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable" } */
|
||||
|
||||
static int
|
||||
typedef long int V;
|
||||
int x = -1;
|
||||
double di = -3.2;
|
||||
V v = -6;
|
||||
|
||||
static int __attribute__ ((noinline, noclone))
|
||||
bar (void)
|
||||
{
|
||||
return -42;
|
||||
return -4;
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn1 (void)
|
||||
{
|
||||
int a[x];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn2 (void)
|
||||
{
|
||||
int a[x][x];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn3 (void)
|
||||
{
|
||||
int a[x][x][x];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn4 (void)
|
||||
{
|
||||
int b[x - 4];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn5 (void)
|
||||
{
|
||||
int c[(int) di];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn6 (void)
|
||||
{
|
||||
int d[1 + x];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn7 (void)
|
||||
{
|
||||
int e[1 ? x : -1];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn8 (void)
|
||||
{
|
||||
int f[++x];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn9 (void)
|
||||
{
|
||||
int g[(signed char) --x];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn10 (void)
|
||||
{
|
||||
int h[(++x, --x, x)];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn11 (void)
|
||||
{
|
||||
int i[v];
|
||||
}
|
||||
|
||||
static void __attribute__ ((noinline, noclone))
|
||||
fn12 (void)
|
||||
{
|
||||
int j[bar ()];
|
||||
}
|
||||
|
||||
typedef long int V;
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
int x = -1;
|
||||
double di = -3.2;
|
||||
V v = -666;
|
||||
|
||||
int a[x];
|
||||
int aa[x][x];
|
||||
int aaa[x][x][x];
|
||||
int b[x - 4];
|
||||
int c[(int) di];
|
||||
int d[1 + x];
|
||||
int e[1 ? x : -1];
|
||||
int f[++x];
|
||||
int g[(signed char) --x];
|
||||
int h[(++x, --x, x)];
|
||||
int i[v];
|
||||
int j[bar ()];
|
||||
|
||||
fn1 ();
|
||||
fn2 ();
|
||||
fn3 ();
|
||||
fn4 ();
|
||||
fn5 ();
|
||||
fn6 ();
|
||||
fn7 ();
|
||||
fn8 ();
|
||||
fn9 ();
|
||||
fn10 ();
|
||||
fn11 ();
|
||||
fn12 ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -44,5 +115,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 -42(\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 -4(\n|\r\n|\r)" } */
|
||||
|
Loading…
Reference in New Issue
Block a user