13573b2c84372d9484296fa658f5276f6c09acb92Daniel Dunbar// RUN: %clang_cc1 -emit-llvm -x c++ < %s
29257700370b2bf9ddba666c472a2ffe8bd376f77Nuno Lopes
39b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattnervoid test0(int x) {
49257700370b2bf9ddba666c472a2ffe8bd376f77Nuno Lopes          if (x != 0) return;
59257700370b2bf9ddba666c472a2ffe8bd376f77Nuno Lopes}
69b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattner
79b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattner
89b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattner// PR5211
99b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattnervoid test1() {
109b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattner  char *xpto;
119b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattner  while ( true && xpto[0] );
129b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattner}
1301a46924878a85e2b8db914277801f747675fe8bChris Lattner
1401a46924878a85e2b8db914277801f747675fe8bChris Lattner// PR5514
1501a46924878a85e2b8db914277801f747675fe8bChris Lattnerint a;
1601a46924878a85e2b8db914277801f747675fe8bChris Lattnervoid test2() { ++a+=10; }
17c7855c6447efc16dd49685d81288edb061e6808eChris Lattner
18c7855c6447efc16dd49685d81288edb061e6808eChris Lattner// PR7892
19c7855c6447efc16dd49685d81288edb061e6808eChris Lattnerint test3(const char*);
20c7855c6447efc16dd49685d81288edb061e6808eChris Lattnerint test3g = test3(__PRETTY_FUNCTION__);
21aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner
22aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner
23aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner// PR7889
24aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattnerstruct test4A {
25aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner  int j : 2;
26aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner};
27aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattnerint test4() {
28aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner  test4A a;
29aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner  (a.j = 2) = 3;
30aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner}
3196a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar
3296a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar// Incomplete type in conditional operator.
3396a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar// Check operations on incomplete types.
3496a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbarstruct s5;
3596a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbarstruct s5 &f5_0(bool cond, struct s5 &a, struct s5 &b) {
3696a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar  return cond ? a : b;
3796a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar}
38