[all-commits] [llvm/llvm-project] b86ebe: [clang] mangle placeholder for deduced type as a t...
Matheus Izvekov via All-commits
all-commits at lists.llvm.org
Tue Aug 27 21:08:55 PDT 2024
Branch: refs/heads/users/mizvekov/clang-fix-GH106182
Home: https://github.com/llvm/llvm-project
Commit: b86ebec082a82da967528819e9df7bd16c502b34
https://github.com/llvm/llvm-project/commit/b86ebec082a82da967528819e9df7bd16c502b34
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2024-08-28 (Wed, 28 Aug 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/ItaniumMangle.cpp
A clang/test/CodeGenCXX/GH106182.cpp
Log Message:
-----------
[clang] mangle placeholder for deduced type as a template-prefix
As agreed on https://github.com/itanium-cxx-abi/cxx-abi/issues/109
these placeholders should be mangled as a `template-prefix` production.
```
<template-prefix> ::= <template unqualified-name> # global template
::= <prefix> <template unqualified-name> # nested template
::= <template-param> # template template parameter
::= <substitution>
```
Previous to this patch, the template template parameter case was not
handled, and template template parameters were incorrectly being handled
as unqualified-names.
Before #95202, DeducedTemplateType was not canonicalized correctly,
so that template template parameter declarations were retained
uncanonicalized.
After #95202 patch, we correctly canonicalize them, but now this leads
to handling these TTPs as anonymous entities, where the implementation
correctly doesn't expect an anonymous declaration of this kind,
leading to a crash.
Fixes #106182.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list