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