1 //===-- main.cpp ------------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 #include <stdio.h>
9 #include <stdint.h>
10 
11 namespace a {
12     class c {
13     public:
14         c();
15         ~c();
16         void func1()
17         {
18             puts (__PRETTY_FUNCTION__);
19         }
20         void func2()
21         {
22             puts (__PRETTY_FUNCTION__);
23         }
24         void func3()
25         {
26             puts (__PRETTY_FUNCTION__);
27         }
28     };
29 
30     c::c() {}
31     c::~c() {}
32 }
33 
34 namespace b {
35     class c {
36     public:
37         c();
38         ~c();
39         void func1()
40         {
41             puts (__PRETTY_FUNCTION__);
42         }
43         void func3()
44         {
45             puts (__PRETTY_FUNCTION__);
46         }
47     };
48 
49     c::c() {}
50     c::~c() {}
51 }
52 
53 namespace c {
54     class d {
55     public:
56         d () {}
57         ~d() {}
58         void func2()
59         {
60             puts (__PRETTY_FUNCTION__);
61         }
62         void func3()
63         {
64             puts (__PRETTY_FUNCTION__);
65         }
66     };
67 }
68 
69 int main (int argc, char const *argv[])
70 {
71     a::c ac;
72     b::c bc;
73     c::d cd;
74     ac.func1();
75     ac.func2();
76     ac.func3();
77     bc.func1();
78     bc.func3();
79     cd.func2();
80     cd.func3();
81     return 0;
82 }
83