test(bool x)1*4110967cSIlya Biryukov void test(bool x) {
2*4110967cSIlya Biryukov   if (x) {}
3*4110967cSIlya Biryukov   // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:2:7 %s | FileCheck %s
4*4110967cSIlya Biryukov   // CHECK: PREFERRED-TYPE: _Bool
5*4110967cSIlya Biryukov 
6*4110967cSIlya Biryukov   while (x) {}
7*4110967cSIlya Biryukov   // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:6:10 %s | FileCheck %s
8*4110967cSIlya Biryukov 
9*4110967cSIlya Biryukov   for (; x;) {}
10*4110967cSIlya Biryukov   // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:9:10 %s | FileCheck %s
11*4110967cSIlya Biryukov 
12*4110967cSIlya Biryukov   // FIXME(ibiryukov): the condition in do-while is parsed as expression, so we
13*4110967cSIlya Biryukov   // fail to detect it should be converted to bool.
14*4110967cSIlya Biryukov   // do {} while (x);
15*4110967cSIlya Biryukov }
16