brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 2459ef1 Raw
88 lines · cpp
1// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s2 3// PR54844namespace PR5484 {5struct A { };6extern A a;7 8void f(const A & = a);9 10void g() {11  f();12}13}14 15namespace GH113324 {16struct S1 {17  friend void f(S1, int = 42) {}18};19 20void test() {21  S1 s1;22  f(s1);23}24};25 26struct A1 {27 A1();28 ~A1();29};30 31struct A2 {32 A2();33 ~A2();34};35 36struct B {37 B(const A1& = A1(), const A2& = A2());38};39 40// CHECK-LABEL: define{{.*}} void @_Z2f1v()41void f1() {42 43 // CHECK: call void @_ZN2A1C1Ev(44 // CHECK: call void @_ZN2A2C1Ev(45 // CHECK: call void @_ZN1BC1ERK2A1RK2A2(46 // CHECK: call void @_ZN2A2D1Ev47 // CHECK: call void @_ZN2A1D1Ev48 B bs[2];49}50 51struct C {52 B bs[2];53 C();54};55 56// CHECK-LABEL: define{{.*}} void @_ZN1CC2Ev(ptr {{[^,]*}} %this) unnamed_addr57// CHECK: call void @_ZN2A1C1Ev(58// CHECK: call void @_ZN2A2C1Ev(59// CHECK: call void @_ZN1BC1ERK2A1RK2A2(60// CHECK: call void @_ZN2A2D1Ev61// CHECK: call void @_ZN2A1D1Ev62 63// CHECK-LABEL: define{{.*}} void @_ZN1CC1Ev(ptr {{[^,]*}} %this) unnamed_addr64// CHECK: call void @_ZN1CC2Ev(65C::C() { }66 67// CHECK-LABEL: define{{.*}} void @_Z2f3v()68void f3() {69 // CHECK: call void @_ZN2A1C1Ev(70 // CHECK: call void @_ZN2A2C1Ev(71 // CHECK: call void @_ZN1BC1ERK2A1RK2A2(72 // CHECK: call void @_ZN2A2D1Ev73 // CHECK: call void @_ZN2A1D1Ev74 B *bs = new B[2];75 delete bs;76}77 78void f4() {79  void g4(int a, int b = 7);80  {81    void g4(int a, int b = 5);82  }83  void g4(int a = 5, int b);84 85  // CHECK: call void @_Z2g4ii(i32 noundef 5, i32 noundef 7)86  g4();87}88