Home | History | Annotate | Download | only in CodeGenCXX
      1 // RUN: %clang_cc1 -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck %s
      2 
      3 void foo(const unsigned int) {}
      4 // CHECK: "\01?foo@@YAXI@Z"
      5 
      6 void foo(const double) {}
      7 // CHECK: "\01?foo@@YAXN@Z"
      8 
      9 void bar(const volatile double) {}
     10 // CHECK: "\01?bar@@YAXN@Z"
     11 
     12 void foo_pad(char * x) {}
     13 // CHECK: "\01?foo_pad@@YAXPAD@Z"
     14 
     15 void foo_pbd(const char * x) {}
     16 // CHECK: "\01?foo_pbd@@YAXPBD@Z"
     17 
     18 void foo_pcd(volatile char * x) {}
     19 // CHECK: "\01?foo_pcd@@YAXPCD@Z"
     20 
     21 void foo_qad(char * const x) {}
     22 // CHECK: "\01?foo_qad@@YAXQAD@Z"
     23 
     24 void foo_rad(char * volatile x) {}
     25 // CHECK: "\01?foo_rad@@YAXRAD@Z"
     26 
     27 void foo_sad(char * const volatile x) {}
     28 // CHECK: "\01?foo_sad@@YAXSAD@Z"
     29 
     30 void foo_papad(char ** x) {}
     31 // CHECK: "\01?foo_papad@@YAXPAPAD@Z"
     32 
     33 void foo_papbd(char const ** x) {}
     34 // CHECK: "\01?foo_papbd@@YAXPAPBD@Z"
     35 
     36 void foo_papcd(char volatile ** x) {}
     37 // CHECK: "\01?foo_papcd@@YAXPAPCD@Z"
     38 
     39 void foo_pbqad(char * const* x) {}
     40 // CHECK: "\01?foo_pbqad@@YAXPBQAD@Z"
     41 
     42 void foo_pcrad(char * volatile* x) {}
     43 // CHECK: "\01?foo_pcrad@@YAXPCRAD@Z"
     44 
     45 void foo_qapad(char ** const x) {}
     46 // CHECK: "\01?foo_qapad@@YAXQAPAD@Z"
     47 
     48 void foo_rapad(char ** volatile x) {}
     49 // CHECK: "\01?foo_rapad@@YAXRAPAD@Z"
     50 
     51 void foo_pbqbd(const char * const* x) {}
     52 // CHECK: "\01?foo_pbqbd@@YAXPBQBD@Z"
     53 
     54 void foo_pbqcd(volatile char * const* x) {}
     55 // CHECK: "\01?foo_pbqcd@@YAXPBQCD@Z"
     56 
     57 void foo_pcrbd(const char * volatile* x) {}
     58 // CHECK: "\01?foo_pcrbd@@YAXPCRBD@Z"
     59 
     60 void foo_pcrcd(volatile char * volatile* x) {}
     61 // CHECK: "\01?foo_pcrcd@@YAXPCRCD@Z"
     62 
     63 typedef double Vector[3];
     64 
     65 void foo(Vector*) {}
     66 // CHECK: "\01?foo@@YAXPAY02N@Z"
     67 
     68 void foo(Vector) {}
     69 // CHECK: "\01?foo@@YAXQAN@Z"
     70 
     71 void foo_const(const Vector) {}
     72 // CHECK: "\01?foo_const@@YAXQBN@Z"
     73 
     74 void foo_volatile(volatile Vector) {}
     75 // CHECK: "\01?foo_volatile@@YAXQCN@Z"
     76 
     77 void foo(Vector*, const Vector, const double) {}
     78 // CHECK: "\01?foo@@YAXPAY02NQBNN@Z"
     79