xref: /Universal-ctags/Units/parser-cxx.r/bug-github-3019.d/input-2.cpp (revision 4954e5b8b60f9a8c848cb15f824a69a4f40c354e)
1 typedef char muchar;
2 
3 struct Range {
RangeRange4   Range (int b, int e): begin(b), end(end) {}
5   int begin, end;
6 };
7 
8 class Char {
9 public:
Char(char i=0)10   Char (char i = 0): val(i), r(i, i) {}
11 
operator volatile muchar() const12   operator volatile muchar() const { return val; }
operator volatile const muchar*() const13   operator volatile const muchar*() const { return 0; }
operator volatile const muchar*const() const14   operator volatile const muchar*const() const { return 0; }
operator volatile int*() const15   operator volatile int *() const { return 0; }
operator volatile int*volatile() const16   operator volatile int *volatile() const { return 0; }
operator int*volatile() const17   operator int *volatile() const { return 0; }
operator volatile const int*() const18   operator volatile const int *() const { return 0; }
operator volatile const int*volatile() const19   operator volatile const int *volatile() const { return 0; }
operator int*volatile const() const20   operator int *volatile const() const { return 0; }
21 
operator volatile const int*()22   operator volatile const int *() volatile { return 0; }
operator volatile const int*volatile()23   operator volatile const int *volatile() volatile { return 0; }
operator int*volatile const()24   operator int *volatile const() volatile { return 0; }
25 
operator volatile struct Range*() const26   operator volatile struct Range *() const { return 0; }
operator volatile struct Range*volatile() const27   operator volatile struct Range *volatile() const { return 0; }
operator struct Range*volatile() const28   operator struct Range *volatile() const { return 0; }
29 
operator volatile const struct Range*() const30   operator volatile const struct Range *() const { return 0; }
operator volatile const struct Range*volatile() const31   operator volatile const struct Range *volatile() const { return 0; }
operator struct Range*volatile const() const32   operator struct Range *volatile const() const { return 0; }
33 
operator volatile const struct Range*()34   operator volatile const struct Range *() volatile { return 0; }
operator volatile const struct Range*volatile()35   operator volatile const struct Range *volatile() volatile { return 0; }
operator struct Range*volatile const()36   operator struct Range *volatile const() volatile { return 0; }
37 
38 private:
39   int val;
40   struct Range r;
41 };
42 
main(void)43 int main(void)
44 {
45   return Char ();
46 }
47