blob: 7fcaa955c599fca4e87cc09f61a8f9bb19fa06b8 [file] [log] [blame]
// { dg-do compile }
// { dg-options "-Wunused" }
template <int N>
void
f1 (void)
{
int a; // { dg-warning "set but not used" }
int b;
int c;
c = 1;
a = b = c;
}
template <int N>
void
f2 (int x)
{
int a; // { dg-warning "set but not used" }
int b;
int c; // { dg-warning "set but not used" }
c = (a = x, b = x);
}
template <int N>
int
f3 (int x)
{
int a;
return a = x;
}
template <int N>
int
f4 (int x)
{
int a;
a = x;
return a;
}
template <int N>
void
f5 (int x)
{
int a[2]; // { dg-warning "set but not used" }
int b;
int *c, d[2];
c = d;
b = x;
a[b] = 1;
c[b] = 1;
}
template <int N>
int
f6 (int x)
{
int a[2];
int b;
b = x;
a[b] = 1;
return a[b];
}
template <int N>
void
f7 (int x, int *p)
{
int *a[2];
a[x] = p;
a[x][x] = x;
}
struct S { int i; };
template <int N>
void
f8 (void)
{
struct S s; // { dg-warning "set but not used" }
s.i = 6;
}
template <int N>
int
f9 (void)
{
struct S s;
s.i = 6;
return s.i;
}
template <int N>
struct S
f10 (void)
{
struct S s;
s.i = 6;
return s;
}
extern int foo11 (int *);
template <int N>
void
f11 (void)
{
int a[2];
foo11 (a);
}
template <int N>
void
f12 (void)
{
int a;
a = 1;
a; // { dg-warning "statement has no effect" }
}
template <int N>
void
f13 (void (*x) (void))
{
void (*a) (void);
a = x;
a ();
}
template <int N>
void
f14 (void (*x) (void))
{
void (*a) (void); // { dg-warning "set but not used" }
a = x;
}
extern void foo15 (int *);
template <int N>
void
f15 (void)
{
int a[10];
int *b = a + 2;
foo15 (b);
}
extern void foo16 (int **);
template <int N>
void
f16 (void)
{
int a[10];
int *b[] = { a, a + 2 };
foo16 (b);
}
template <int N>
void
f17 (int x)
{
long a; // { dg-warning "set but not used" }
int b;
a = b = x;
}
template <int N>
void
f18 (int x)
{
int a; // { dg-warning "set but not used" }
int b;
a = (char) (b = x);
}
template <int N>
int
f19 (int x, int y, int z)
{
int a;
int b;
a = x;
b = y;
return z ? a : b;
}
template <int N>
int *
f20 (int x)
{
static int a[] = { 3, 4, 5, 6 };
static int b[] = { 4, 5, 6, 7 };
static int c[] = { 5, 6, 7, 8 }; // { dg-warning "set but not used" }
c[1] = 1;
return x ? a : b;
}
S s;
void
test ()
{
int i = 0;
f1<0> ();
f2<0> (0);
(void) f3<0> (0);
(void) f4<0> (0);
f5<0> (0);
(void) f6<0> (0);
f7<0> (0, &i);
f8<0> ();
(void) f9<0> ();
s = f10<0> ();
f11<0> ();
f12<0> ();
f13<0> (f1<0>);
f14<0> (f1<0>);
f15<0> ();
f16<0> ();
f17<0> (0);
f18<0> (0);
(void) f19<0> (0, 0, 0);
(void) f20<0> (0);
}