175bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith// RUN: %clang_cc1 -fsyntax-only -Wuninitialized -verify %s
275bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith// RUN: %clang_cc1 -fsyntax-only -Wuninitialized -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s
375bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith
475bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith_Bool test_bool_no_false() {
575bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  _Bool var; // expected-note {{initialize}}
675bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  // CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:12-[[@LINE-1]]:12}:" = 0"
775bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  return var; // expected-warning {{uninitialized}}
875bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith}
975bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith
1075bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith#define bool _Bool
1175bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith#define false (bool)0
1275bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith#define true (bool)1
1375bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smithbool test_bool_with_false() {
1475bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  bool var; // expected-note {{initialize}}
1575bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  // CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:11-[[@LINE-1]]:11}:" = false"
1675bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  return var; // expected-warning {{uninitialized}}
1775bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith}
1875bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith
1975bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smithbool test_bool_with_false_undefined() {
2075bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  bool
2175bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith#undef false
2275bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith      var; // expected-note {{initialize}}
2375bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  // CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:10}:" = 0"
2475bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith  return var; // expected-warning {{uninitialized}}
2575bd9ed70cec21b4395d701d371356cfe3ec9aaeRichard Smith}
26