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