[clang-cl] Ignore /Wv and /Wv:17 flags
[llvm-project.git] / clang / test / CodeGenCXX / member-functions.cpp
blob9cfbd5b396dc33c65c1a44b528dd411255ed0df0
1 // RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin9 -o - %s | FileCheck %s
3 struct C {
4 void f();
5 void g(int, ...);
6 };
8 // CHECK-LABEL: define{{.*}} void @_ZN1C1fEv
9 void C::f() {
12 // CHECK-LABEL: define{{.*}} void @_Z5test1v
13 void test1() {
14 C c;
16 // CHECK: call void @_ZN1C1fEv
17 c.f();
19 // CHECK: call void (%struct.C*, i32, ...) @_ZN1C1gEiz
20 c.g(1, 2, 3);
24 struct S {
25 inline S() { }
26 inline ~S() { }
28 void f_inline1() { }
29 inline void f_inline2() { }
31 static void g() { }
32 static void f();
34 virtual void v() {}
37 // CHECK-LABEL: define{{.*}} void @_ZN1S1fEv
38 void S::f() {
41 void test2() {
42 S s;
44 s.f_inline1();
45 s.f_inline2();
47 S::g();
50 // S::S()
51 // CHECK: define linkonce_odr void @_ZN1SC1Ev{{.*}} unnamed_addr
53 // S::f_inline1()
54 // CHECK-LABEL: define linkonce_odr void @_ZN1S9f_inline1Ev
56 // S::f_inline2()
57 // CHECK-LABEL: define linkonce_odr void @_ZN1S9f_inline2Ev
59 // S::g()
60 // CHECK-LABEL: define linkonce_odr void @_ZN1S1gEv
62 // S::~S()
63 // CHECK: define linkonce_odr void @_ZN1SD1Ev{{.*}} unnamed_addr
65 struct T {
66 T operator+(const T&);
69 // CHECK-LABEL: define{{.*}} void @_Z5test3v
70 void test3() {
71 T t1, t2;
73 // CHECK: call void @_ZN1TplERKS_
74 T result = t1 + t2;
77 // S::S()
78 // CHECK: define linkonce_odr void @_ZN1SC2Ev{{.*}} unnamed_addr
80 // S::v()
81 // CHECK: define linkonce_odr void @_ZN1S1vEv{{.*}}unnamed_addr
83 // S::~S()
84 // CHECK: define linkonce_odr void @_ZN1SD2Ev{{.*}} unnamed_addr