Viewing file: pr104224.c (2.34 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#include <stdio.h>
struct test { int one; int two; };
void func2(const struct test *t) { if (t->one == 0) printf("init func2\n");
if (t->two == 0) /* { dg-warning "uninitialized" } */ printf("uninit func2\n"); }
void func1(struct test *t) { t->one = 1; func2(t); }
int func3(int num) { if (num) return num; else return 0; }
void func4(int *a, int max) { int i; // skip the first for (i=1; i<max; i++) a[i] = 0; }
void func5(const int *a, int max) { /* a[0] is uninitialized, but the rest of the array is initialized. */ int i; for (i=0; i<max; i++) { if (a[i]) /* { dg-warning "uninitialized" "" { xfail *-*-* } } */ printf("func5: %d\n", i); } }
int func6(const int *num) { if (*num) /* { dg-warning "uninitialized" } */ return *num; /* { dg-warning "uninitialized" } */ else return 0; }
int j; int func7(void) { return j; /* { dg-bogus "uninitialized" } */ }
void func8(const int *a, int max) { int i; for (i=0; i<max; i++) { if (a[i]) /* { dg-warning "uninitialized" } */ printf("func8: %d\n", i); } }
enum {RED, AMBER, GREEN, BLACK};
int main(void) { struct test t; /* { dg-message "region created on stack here" } */ int num; /* { dg-message "region created on stack here" } */ int arry[10]; int arry_2[10]; /* { dg-message "region created on stack here" } */ int go; /* { dg-message "region created on stack here" } */ int color = BLACK;
func1(&t); func3(num); /* { dg-warning "use of uninitialized value 'num'" } */ func4(arry, 10); func5(arry, 10); func6(&num);
printf("num: %d\n", num); /* { dg-warning "use of uninitialized value 'num'" } */ printf("func7: %d\n", func7()); func8(arry_2, 10);
switch (color) { case RED: case AMBER: go = 0; break; case GREEN: go = 1; break; }
printf("go :%d\n", go); /* { dg-warning "use of uninitialized value 'go'" } */
return 0; }
|