Clang Project

clang_source_code/test/Analysis/cxx-uninitialized-object-no-dereference.cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.cplusplus.UninitializedObject \
2// RUN:   -std=c++11 -DPEDANTIC -verify %s
3
4class UninitPointerTest {
5  int *ptr; // expected-note{{uninitialized pointer 'this->ptr'}}
6  int dontGetFilteredByNonPedanticMode = 0;
7
8public:
9  UninitPointerTest() {} // expected-warning{{1 uninitialized field}}
10};
11
12void fUninitPointerTest() {
13  UninitPointerTest();
14}
15
16class UninitPointeeTest {
17  int *ptr; // no-note
18  int dontGetFilteredByNonPedanticMode = 0;
19
20public:
21  UninitPointeeTest(int *ptr) : ptr(ptr) {} // no-warning
22};
23
24void fUninitPointeeTest() {
25  int a;
26  UninitPointeeTest t(&a);
27}
28