https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90953

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Test-case:

$ cat jit.ii
namespace std {
union [[gnu::may_alias]] _Any_data{};
enum _Manager_operation { __get_type_info };
template <typename> class A;
class B {
  typedef bool (*_Manager_type)(_Any_data, const _Any_data &,
                                _Manager_operation);
  _Any_data _M_functor;
  _Manager_type _M_manager;
};
template <typename _Res, typename... _ArgTypes>
class A<_Res(_ArgTypes...)> : B {
  const type_info &target_type() const noexcept;
};
template <typename _Res, typename... _ArgTypes>
const type_info &A<_Res(_ArgTypes...)>::target_type() const noexcept {
  _Any_data __typeinfo_result;
  _M_manager(__typeinfo_result, _M_functor, __get_type_info);
}
} // namespace std

Reply via email to