1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm-only -triple %itanium_abi_triple -verify %s 2*67e74705SXin Li // expected-no-diagnostics 3*67e74705SXin Li 4*67e74705SXin Li struct XPTParamDescriptor {}; 5*67e74705SXin Li struct nsXPTParamInfo { 6*67e74705SXin Li nsXPTParamInfo(const XPTParamDescriptor& desc); 7*67e74705SXin Li }; a(XPTParamDescriptor * params)8*67e74705SXin Livoid a(XPTParamDescriptor *params) { 9*67e74705SXin Li const nsXPTParamInfo& paramInfo = params[0]; 10*67e74705SXin Li } 11*67e74705SXin Li 12*67e74705SXin Li // CodeGen of reference initialized const arrays. 13*67e74705SXin Li namespace PR5911 { f(const T (& a)[N])14*67e74705SXin Li template <typename T, int N> int f(const T (&a)[N]) { return N; } 15*67e74705SXin Li int iarr[] = { 1 }; test()16*67e74705SXin Li int test() { return f(iarr); } 17*67e74705SXin Li } 18*67e74705SXin Li 19*67e74705SXin Li // radar 7574896 20*67e74705SXin Li struct Foo { int foo; }; 21*67e74705SXin Li Foo& ignoreSetMutex = *(new Foo); 22*67e74705SXin Li 23*67e74705SXin Li // Binding to a bit-field that requires a temporary. 24*67e74705SXin Li struct { int bitfield : 3; } s = { 3 }; 25*67e74705SXin Li const int &s2 = s.bitfield; 26