forked from OSchip/llvm-project
54 lines
1.1 KiB
C
54 lines
1.1 KiB
C
// RUN: %clang_cc1 -analyze -warn-uninit-values -verify %s
|
|
|
|
int f1() {
|
|
int x;
|
|
return x; // expected-warning {{use of uninitialized variable}}
|
|
}
|
|
|
|
int f2(int x) {
|
|
int y;
|
|
int z = x + y; // expected-warning {{use of uninitialized variable}}
|
|
return z;
|
|
}
|
|
|
|
|
|
int f3(int x) {
|
|
int y;
|
|
return x ? 1 : y; // expected-warning {{use of uninitialized variable}}
|
|
}
|
|
|
|
int f4(int x) {
|
|
int y;
|
|
if (x) y = 1;
|
|
return y; // expected-warning {{use of uninitialized variable}}
|
|
}
|
|
|
|
void f5() {
|
|
int a;
|
|
a = 30; // no-warning
|
|
}
|
|
|
|
void f6(int i) {
|
|
int x;
|
|
for (i = 0 ; i < 10; i++)
|
|
printf("%d",x++); // expected-warning {{use of uninitialized variable}} \
|
|
// expected-warning{{implicitly declaring C library function 'printf' with type 'int (char const *, ...)'}} \
|
|
// expected-note{{please include the header <stdio.h> or explicitly provide a declaration for 'printf'}}
|
|
}
|
|
|
|
void f7(int i) {
|
|
int x = i;
|
|
int y;
|
|
for (i = 0; i < 10; i++ ) {
|
|
printf("%d",x++); // no-warning
|
|
x += y; // expected-warning {{use of uninitialized variable}}
|
|
}
|
|
}
|
|
|
|
int f8(int j) {
|
|
int x = 1, y = x + 1;
|
|
if (y) // no-warning
|
|
return x;
|
|
return y;
|
|
}
|