1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson// RUN: %clang_cc1 -emit-llvm -x c++ < %s 2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonvoid test0(int x) { 4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson if (x != 0) return; 5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson} 6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson// PR5211 9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonvoid test1() { 10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson char *xpto; 11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson while ( true && xpto[0] ); 12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson} 13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson// PR5514 15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonint a; 16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonvoid test2() { ++a+=10; } 17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson// PR7892 19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonint test3(const char*); 20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonint test3g = test3(__PRETTY_FUNCTION__); 21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson// PR7889 24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonstruct test4A { 25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson int j : 2; 26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}; 27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonint test4() { 28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson test4A a; 29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson (a.j = 2) = 3; 30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson} 31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson// Incomplete type in conditional operator. 33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson// Check operations on incomplete types. 34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonstruct s5; 35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonstruct s5 &f5_0(bool cond, struct s5 &a, struct s5 &b) { 36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return cond ? a : b; 37e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson} 38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson