xref: /llvm-project/lldb/test/API/lang/cpp/this/main.cpp (revision fdea9a4ec9b0d9585b8fe8a612686d9f44f40ddc)
1*99451b44SJordan Rupprecht #include <stdio.h>
2*99451b44SJordan Rupprecht 
3*99451b44SJordan Rupprecht template <class T> class A
4*99451b44SJordan Rupprecht {
5*99451b44SJordan Rupprecht public:
6*99451b44SJordan Rupprecht   void accessMember(T a);
7*99451b44SJordan Rupprecht   T accessMemberConst() const;
8*99451b44SJordan Rupprecht   static int accessStaticMember();
9*99451b44SJordan Rupprecht 
accessMemberInline(T a)10*99451b44SJordan Rupprecht   void accessMemberInline(T a) __attribute__ ((always_inline))
11*99451b44SJordan Rupprecht   {
12*99451b44SJordan Rupprecht     m_a = a; // breakpoint 4
13*99451b44SJordan Rupprecht   }
14*99451b44SJordan Rupprecht 
15*99451b44SJordan Rupprecht   T m_a;
16*99451b44SJordan Rupprecht   static int s_a;
17*99451b44SJordan Rupprecht };
18*99451b44SJordan Rupprecht 
19*99451b44SJordan Rupprecht template <class T> int A<T>::s_a = 5;
20*99451b44SJordan Rupprecht 
accessMember(T a)21*99451b44SJordan Rupprecht template <class T> void A<T>::accessMember(T a)
22*99451b44SJordan Rupprecht {
23*99451b44SJordan Rupprecht   m_a = a; // breakpoint 1
24*99451b44SJordan Rupprecht }
25*99451b44SJordan Rupprecht 
accessMemberConst() const26*99451b44SJordan Rupprecht template <class T> T A<T>::accessMemberConst() const
27*99451b44SJordan Rupprecht {
28*99451b44SJordan Rupprecht   return m_a; // breakpoint 2
29*99451b44SJordan Rupprecht }
30*99451b44SJordan Rupprecht 
accessStaticMember()31*99451b44SJordan Rupprecht template <class T> int A<T>::accessStaticMember()
32*99451b44SJordan Rupprecht {
33*99451b44SJordan Rupprecht   return s_a; // breakpoint 3
34*99451b44SJordan Rupprecht }
35*99451b44SJordan Rupprecht 
main()36*99451b44SJordan Rupprecht int main()
37*99451b44SJordan Rupprecht {
38*99451b44SJordan Rupprecht   A<int> my_a;
39*99451b44SJordan Rupprecht 
40*99451b44SJordan Rupprecht   my_a.accessMember(3);
41*99451b44SJordan Rupprecht   my_a.accessMemberConst();
42*99451b44SJordan Rupprecht   A<int>::accessStaticMember();
43*99451b44SJordan Rupprecht   my_a.accessMemberInline(5);
44*99451b44SJordan Rupprecht }
45