1d1dc4169SMax Winkler // 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 2d1dc4169SMax Winkler // 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 3d1dc4169SMax Winkler 4d1dc4169SMax Winkler template <auto a> 5d1dc4169SMax Winkler class AutoParmTemplate { 6d1dc4169SMax Winkler public: 7d1dc4169SMax Winkler AutoParmTemplate() {} 8d1dc4169SMax Winkler }; 9d1dc4169SMax Winkler 10d1dc4169SMax Winkler template <auto a> 11d1dc4169SMax Winkler auto AutoFunc() { 12d1dc4169SMax Winkler return a; 13d1dc4169SMax Winkler } 14d1dc4169SMax Winkler 15d1dc4169SMax Winkler void template_mangling() { 16d1dc4169SMax Winkler 17d1dc4169SMax Winkler AutoParmTemplate<nullptr> auto_nullptr; 18d1dc4169SMax Winkler // AFTER: call {{.*}} @"??0?$AutoParmTemplate@$M$$T0A@@@QEAA@XZ" 19d1dc4169SMax Winkler // BEFORE: call {{.*}} @"??0?$AutoParmTemplate@$0A@@@QEAA@XZ" 20d1dc4169SMax Winkler 21d1dc4169SMax Winkler AutoFunc<nullptr>(); 22*43b88851SMax Winkler // AFTER: call {{.*}} @"??$AutoFunc@$M$$T0A@@@YA?A_PXZ" 23d1dc4169SMax Winkler // BEFORE: call {{.*}} @"??$AutoFunc@$0A@@@YA?A?<auto>@@XZ" 24d1dc4169SMax Winkler } 25