/* { dg-do compile } */ /* { dg-options "-Wunused" } */ void f1 (void) { int a; /* { dg-warning "set but not used" } */ int b; int c; c = 1; a = b = c; } 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); } int f3 (int x) { int a; return a = x; } int f4 (int x) { int a; a = x; return a; } 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; } int f6 (int x) { int a[2]; int b; b = x; a[b] = 1; return a[b]; } void f7 (int x, int *p) { int *a[2]; a[x] = p; a[x][x] = x; } struct S { int i; }; void f8 (void) { struct S s; /* { dg-warning "set but not used" } */ s.i = 6; } int f9 (void) { struct S s; s.i = 6; return s.i; } struct S f10 (void) { struct S s; s.i = 6; return s; } extern int foo11 (int *); void f11 (void) { int a[2]; foo11 (a); } void f12 (void) { int a; a = 1; a; /* { dg-warning "no effect" } */ } void f13 (void (*x) (void)) { void (*a) (void); a = x; a (); } void f14 (void (*x) (void)) { void (*a) (void); /* { dg-warning "set but not used" } */ a = x; } extern void foo15 (int *); void f15 (void) { int a[10]; int *b = a + 2; foo15 (b); } extern void foo16 (int **); void f16 (void) { int a[10]; int *b[] = { a, a + 2 }; foo16 (b); } void f17 (int x) { long a; /* { dg-warning "set but not used" } */ int b; a = b = x; } void f18 (int x) { int a; /* { dg-warning "set but not used" } */ int b; a = (char) (b = x); } int f19 (int x, int y, int z) { int a; int b; a = x; b = y; return z ? a : b; } 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; }