Skip to content

[abi] mangled name for constrained template is not demangled by llvm-cxxfilt #89914

@hokein

Description

@hokein

Example:

template <typename U, typename T>
concept True = true;

template <typename K>
struct Foo {
  template <True<K> U>
  void method(U t);
};

void s() {
   Foo<int> k;
   k.method(1);
}

Clang generates mangled name _ZN3FooIiE6methodITk4TrueIT_EiEEvS3_ for the template specialization Foo<int>::method. However this mangled name can not be demangled by the official tool llvm-cxxfilt.

It looks like something wrong with the constrain True part.

PS. gcc trunk generates a different name _ZN3FooIiE6methodIiEEvT_, which can be demangled, but it doesn't contain the constraint.

Metadata

Metadata

Assignees

Labels

ABIApplication Binary Interfacelibc++abilibc++abi C++ Runtime Library. Not libc++.tools:llvm-cxxfilt

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions