brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 579e757 Raw
65 lines · cpp
1// RUN: %clang_cc1 -std=c++2b -emit-llvm -triple x86_64-linux -o - %s 2>/dev/null | FileCheck %s2 3struct S {4friend void test();5public:6    void a(this auto){}7    void b(this auto&){}8    void c(this S){}9    void c(this S, int){}10private:11    void d(this auto){}12    void e(this auto&){}13    void f(this S){}14    void f(this S, int){}15protected:16    void g(this auto){}17    void h(this auto&){}18    void i(this S){}19    void i(this S, int){}20};21 22 23void test() {24    S s;25    s.a();26    // CHECK: call void @_ZNH1S1aIS_EEvT_27    s.b();28    // CHECK: call void @_ZNH1S1bIS_EEvRT_29    s.c();30    // CHECK: call void @_ZNH1S1cES_31    s.c(0);32    // CHECK: call void @_ZNH1S1cES_i33    s.d();34    // CHECK: call void @_ZNH1S1dIS_EEvT_35    s.e();36    // CHECK: call void @_ZNH1S1eIS_EEvRT_37    s.f();38    // CHECK: call void @_ZNH1S1fES_39    s.f(0);40    // CHECK: call void @_ZNH1S1fES_i41    s.g();42    // CHECK: call void @_ZNH1S1gIS_EEvT_43    s.h();44    // CHECK: call void @_ZNH1S1hIS_EEvRT_45    s.i();46    // CHECK: call void @_ZNH1S1iES_47    s.i(0);48    // CHECK: call void @_ZNH1S1iES_i49}50 51struct StaticAndExplicit {52  static void f(StaticAndExplicit);53  void f(this StaticAndExplicit);54};55 56void test2() {57    StaticAndExplicit s;58 59    StaticAndExplicit::f(s);60    // CHECK: call void @_ZN17StaticAndExplicit1fES_61 62    s.f();63    // CHECK: call void @_ZNH17StaticAndExplicit1fES_64}65