xref: /llvm-project/clang/test/CodeGenCXX/mangle-ms-auto-templates-nullptr.cpp (revision 43b88851cefe68645aa59b1fccc8390a8a31f469)
1 // RUN: %clang_cc1 -std=c++17 -fms-compatibility-version=19.20 -emit-llvm %s -o - -fms-extensions -fdelayed-template-parsing -triple=x86_64-pc-windows-msvc | FileCheck --check-prefix=AFTER %s
2 // RUN: %clang_cc1 -std=c++17 -fms-compatibility-version=19.14 -emit-llvm %s -o - -fms-extensions -fdelayed-template-parsing -triple=x86_64-pc-windows-msvc | FileCheck --check-prefix=BEFORE %s
3 
4 template <auto a>
5 class AutoParmTemplate {
6 public:
7     AutoParmTemplate() {}
8 };
9 
10 template <auto a>
11 auto AutoFunc() {
12     return a;
13 }
14 
15 void template_mangling() {
16 
17   AutoParmTemplate<nullptr> auto_nullptr;
18   // AFTER: call {{.*}} @"??0?$AutoParmTemplate@$M$$T0A@@@QEAA@XZ"
19   // BEFORE: call {{.*}} @"??0?$AutoParmTemplate@$0A@@@QEAA@XZ"
20 
21   AutoFunc<nullptr>();
22   // AFTER: call {{.*}} @"??$AutoFunc@$M$$T0A@@@YA?A_PXZ"
23   // BEFORE: call {{.*}} @"??$AutoFunc@$0A@@@YA?A?<auto>@@XZ"
24 }
25