1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm-only %s f(bool flag)2*67e74705SXin Livoid f(bool flag) { 3*67e74705SXin Li int a = 1; 4*67e74705SXin Li int b = 2; 5*67e74705SXin Li 6*67e74705SXin Li (flag ? a : b) = 3; 7*67e74705SXin Li } 8*67e74705SXin Li 9*67e74705SXin Li // PR10756 10*67e74705SXin Li namespace test0 { 11*67e74705SXin Li struct A { 12*67e74705SXin Li A(const A &); 13*67e74705SXin Li A &operator=(const A &); 14*67e74705SXin Li A sub() const; 15*67e74705SXin Li void foo() const; 16*67e74705SXin Li }; foo(bool cond,const A & a)17*67e74705SXin Li void foo(bool cond, const A &a) { 18*67e74705SXin Li (cond ? a : a.sub()).foo(); 19*67e74705SXin Li } 20*67e74705SXin Li } 21