reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130
  131
  132
  133
  134
  135
  136
  137
  138
  139
  140
  141
  142
  143
  144
  145
  146
  147
  148
  149
  150
  151
  152
  153
  154
  155
  156
  157
  158
  159
  160
  161
  162
  163
  164
  165
  166
  167
  168
  169
  170
  171
  172
  173
  174
  175
  176
  177
  178
  179
  180
  181
  182
; These tests are based on clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp

; RUN: llvm-undname < %s | FileCheck %s

; CHECK-NOT: Invalid mangled name

?a1@@YAXXZ
; CHECK: void __cdecl a1(void)

?a2@@YAHXZ
; CHECK: int __cdecl a2(void)

?a3@@YA?BHXZ
; CHECK: int const __cdecl a3(void)

?a4@@YA?CHXZ
; CHECK: int volatile __cdecl a4(void)

?a5@@YA?DHXZ
; CHECK: int const volatile __cdecl a5(void)

?a6@@YAMXZ
; CHECK: float __cdecl a6(void)

?b1@@YAPAHXZ
; CHECK: int * __cdecl b1(void)

?b2@@YAPBDXZ
; CHECK: char const * __cdecl b2(void)

?b3@@YAPAMXZ
; CHECK: float * __cdecl b3(void)

?b4@@YAPBMXZ
; CHECK: float const * __cdecl b4(void)

?b5@@YAPCMXZ
; CHECK: float volatile * __cdecl b5(void)

?b6@@YAPDMXZ
; CHECK: float const volatile * __cdecl b6(void)

?b7@@YAAAMXZ
; CHECK: float & __cdecl b7(void)

?b8@@YAABMXZ
; CHECK: float const & __cdecl b8(void)

?b9@@YAACMXZ
; CHECK: float volatile & __cdecl b9(void)

?b10@@YAADMXZ
; CHECK: float const volatile & __cdecl b10(void)

?b11@@YAPAPBDXZ
; CHECK: char const ** __cdecl b11(void)

?c1@@YA?AVA@@XZ
; CHECK: class A __cdecl c1(void)

?c2@@YA?BVA@@XZ
; CHECK: class A const __cdecl c2(void)

?c3@@YA?CVA@@XZ
; CHECK: class A volatile __cdecl c3(void)

?c4@@YA?DVA@@XZ
; CHECK: class A const volatile __cdecl c4(void)

?c5@@YAPBVA@@XZ
; CHECK: class A const * __cdecl c5(void)

?c6@@YAPCVA@@XZ
; CHECK: class A volatile * __cdecl c6(void)

?c7@@YAPDVA@@XZ
; CHECK: class A const volatile * __cdecl c7(void)

?c8@@YAAAVA@@XZ
; CHECK: class A & __cdecl c8(void)

?c9@@YAABVA@@XZ
; CHECK: class A const & __cdecl c9(void)

?c10@@YAACVA@@XZ
; CHECK: class A volatile & __cdecl c10(void)

?c11@@YAADVA@@XZ
; CHECK: class A const volatile & __cdecl c11(void)

?d1@@YA?AV?$B@H@@XZ
; CHECK: class B<int> __cdecl d1(void)

?d2@@YA?AV?$B@PBD@@XZ
; CHECK: class B<char const *> __cdecl d2(void)

?d3@@YA?AV?$B@VA@@@@XZ
; CHECK: class B<class A> __cdecl d3(void)

?d4@@YAPAV?$B@VA@@@@XZ
; CHECK: class B<class A> * __cdecl d4(void)

?d5@@YAPBV?$B@VA@@@@XZ
; CHECK: class B<class A> const * __cdecl d5(void)

?d6@@YAPCV?$B@VA@@@@XZ
; CHECK: class B<class A> volatile * __cdecl d6(void)

?d7@@YAPDV?$B@VA@@@@XZ
; CHECK: class B<class A> const volatile * __cdecl d7(void)

?d8@@YAAAV?$B@VA@@@@XZ
; CHECK: class B<class A> & __cdecl d8(void)

?d9@@YAABV?$B@VA@@@@XZ
; CHECK: class B<class A> const & __cdecl d9(void)

?d10@@YAACV?$B@VA@@@@XZ
; CHECK: class B<class A> volatile & __cdecl d10(void)

?d11@@YAADV?$B@VA@@@@XZ
; CHECK: class B<class A> const volatile & __cdecl d11(void)

?e1@@YA?AW4Enum@@XZ
; CHECK: Enum __cdecl e1(void)

?e2@@YA?BW4Enum@@XZ
; CHECK: Enum const __cdecl e2(void)

?e3@@YAPAW4Enum@@XZ
; CHECK: Enum * __cdecl e3(void)

?e4@@YAAAW4Enum@@XZ
; CHECK: Enum & __cdecl e4(void)

?f1@@YA?AUS@@XZ
; CHECK: struct S __cdecl f1(void)

?f2@@YA?BUS@@XZ
; CHECK: struct S const __cdecl f2(void)

?f3@@YAPAUS@@XZ
; CHECK: struct S * __cdecl f3(void)

?f4@@YAPBUS@@XZ
; CHECK: struct S const * __cdecl f4(void)

?f5@@YAPDUS@@XZ
; CHECK: struct S const volatile * __cdecl f5(void)

?f6@@YAAAUS@@XZ
; CHECK: struct S & __cdecl f6(void)

?f7@@YAQAUS@@XZ
; CHECK: struct S *const __cdecl f7(void)

?f8@@YAPQS@@HXZ
; CHECK: int S::* __cdecl f8(void)

?f9@@YAQQS@@HXZ
; CHECK: int S::*const __cdecl f9(void)

?f10@@YAPIQS@@HXZ
; CHECK: int S::*__restrict __cdecl f10(void)

?f11@@YAQIQS@@HXZ
; CHECK: int S::*const __restrict __cdecl f11(void)

?g1@@YAP6AHH@ZXZ
; CHECK: int (__cdecl * __cdecl g1(void))(int)

?g2@@YAQ6AHH@ZXZ
; CHECK: int (__cdecl *const __cdecl g2(void))(int)

?g3@@YAPAP6AHH@ZXZ
; CHECK: int (__cdecl ** __cdecl g3(void))(int)

?g4@@YAPBQ6AHH@ZXZ
; CHECK: int (__cdecl *const * __cdecl g4(void))(int)

?h1@@YAAIAHXZ
; CHECK: int &__restrict __cdecl h1(void)