1*67e74705SXin Li // RUN: %clang_cc1 %s -triple x86_64-apple-darwin10 -emit-llvm -o - -std=c++11 |FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li class x { 4*67e74705SXin Li public: int operator=(int); 5*67e74705SXin Li }; a()6*67e74705SXin Livoid a() { 7*67e74705SXin Li x a; 8*67e74705SXin Li a = 1u; 9*67e74705SXin Li } 10*67e74705SXin Li f(int i,int j)11*67e74705SXin Livoid f(int i, int j) { 12*67e74705SXin Li // CHECK: load i32 13*67e74705SXin Li // CHECK: load i32 14*67e74705SXin Li // CHECK: add nsw i32 15*67e74705SXin Li // CHECK: store i32 16*67e74705SXin Li // CHECK: store i32 17, i32 17*67e74705SXin Li // CHECK: ret 18*67e74705SXin Li (i += j) = 17; 19*67e74705SXin Li } 20*67e74705SXin Li 21*67e74705SXin Li // Taken from g++.old-deja/g++.jason/net.C 22*67e74705SXin Li namespace test1 { fn(T t)23*67e74705SXin Li template <class T> void fn (T t) { } 24*67e74705SXin Li template <class T> struct A { 25*67e74705SXin Li void (*p)(T); Atest1::A26*67e74705SXin Li A() { p = fn; } 27*67e74705SXin Li }; 28*67e74705SXin Li 29*67e74705SXin Li A<int> a; 30*67e74705SXin Li } 31*67e74705SXin Li 32*67e74705SXin Li // Ensure that we use memcpy when we would have selected a trivial assignment 33*67e74705SXin Li // operator, even for a non-trivially-copyable type. 34*67e74705SXin Li struct A { 35*67e74705SXin Li A &operator=(const A&); 36*67e74705SXin Li }; 37*67e74705SXin Li struct B { 38*67e74705SXin Li B(const B&); 39*67e74705SXin Li B &operator=(const B&) = default; 40*67e74705SXin Li int n; 41*67e74705SXin Li }; 42*67e74705SXin Li struct C { 43*67e74705SXin Li A a; 44*67e74705SXin Li B b[16]; 45*67e74705SXin Li }; b(C & a,C & b)46*67e74705SXin Livoid b(C &a, C &b) { 47*67e74705SXin Li // CHECK: define {{.*}} @_ZN1CaSERKS_( 48*67e74705SXin Li // CHECK: call {{.*}} @_ZN1AaSERKS_( 49*67e74705SXin Li // CHECK-NOT: call {{.*}} @_ZN1BaSERKS_( 50*67e74705SXin Li // CHECK: call {{.*}} @{{.*}}memcpy 51*67e74705SXin Li // CHECK-NOT: call {{.*}} @_ZN1BaSERKS_( 52*67e74705SXin Li // CHECK: } 53*67e74705SXin Li a = b; 54*67e74705SXin Li } 55