Skip to content

arm64ec incorrect mangling instantiating C++ template #115231

Closed
@efriedma-quic

Description

@efriedma-quic
template <typename X> struct Wrapper {
  int GetValue(void) const;
};
struct A {
  int GetValue(void) const;
};
template<typename X> int Wrapper<X>::GetValue(void) const { return 3; }
template class Wrapper<A>;

clang produces ?GetValue@$$h?$Wrapper@UA@@@@QEBAHXZ, MSVC produces ?GetValue@?$Wrapper@UA@@@@$$hQEBAHXZ. I guess the algorithm in llvm::getArm64ECMangledFunctionName is wrong.

CC @mstorsjo @cjacek @dpaoliello @steplong

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions