[clang] [Clang] [AST] Fix placeholder return type name mangling for MSVC 1920+ / VS2019+ (PR #102848)

Max Winkler via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 12 20:03:08 PDT 2024


================
@@ -2494,6 +2506,58 @@ void MicrosoftCXXNameMangler::mangleAddressSpaceType(QualType T,
   mangleArtificialTagType(TagTypeKind::Struct, ASMangling, {"__clang"});
 }
 
+void MicrosoftCXXNameMangler::mangleAutoReturnType(QualType T,
+                                                   SourceRange Range,
+                                                   QualifierMangleMode QMM) {
+  assert(getASTContext().getLangOpts().isCompatibleWithMSVC(
----------------
MaxEW707 wrote:

The assert is here because the VS2017 path still takes the incorrect manglings path. I want to ensure any potential changing of the code doesn't call this function when mangling for VS2017 or earlier.

That happens here, https://github.com/llvm/llvm-project/pull/102848/files#diff-f5b0f26263c3f9e2967ea9e3911d88ce9c4b3e990cbbab10627429435305bb96R2997, where we check if we are VS2019 otherwise do the incorrect mangling.

https://github.com/llvm/llvm-project/pull/102848


More information about the cfe-commits mailing list