[Bug c++/70909] Libiberty Demangler segfaults (4)

trippels at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Nov 21 18:30:00 GMT 2016


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

--- Comment #15 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Thanks for the testcase.
Marcel's patch fixes the segfault, but doesn't demangle the symbol.

markus@x4 libiberty % ./a.out
_ZSt7forwardIR17predicate_matcherIZ11any_matcherIiEDavEUlOT_E_13typed_matcherIiEEES3_RNSt16remove_referenceIS2_E4typeE
typed name
  template
    qualified name
      name 'std'
      name 'forward'
    template argument list
      reference
        template
          name 'predicate_matcher'
          template argument list
            local name
              typed name
                template
                  name 'any_matcher'
                  template argument list
                    builtin type int
                function type
                  name 'auto'
                  argument list
              lambda 0
                argument list
                  rvalue reference
                    template parameter 0
            template argument list
              template
                name 'typed_matcher'
                template argument list
                  builtin type int
  function type
    rvalue reference
      template parameter 0
    argument list
      reference
        qualified name
          template
            qualified name
              standard substitution std
              name 'remove_reference'
            template argument list
              template parameter 0
          name 'type'
Failed:
_ZSt7forwardIR17predicate_matcherIZ11any_matcherIiEDavEUlOT_E_13typed_matcherIiEEES3_RNSt16remove_referenceIS2_E4typeE

libc++abi demangler gives:
int&& std::forward<predicate_matcher<auto any_matcher<int>()::'lambda'(int&&),
typed_matcher<int> >&>(std::remove_reference<int>::type&)


More information about the Gcc-bugs mailing list