[PATCH] D132900: [DWARF] Fix infinite recursion in Type Printer.

Alexander Yermolovich via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 1 18:40:40 PDT 2022


ayermolo added a comment.

OK. I think this is a minimal self contained repro:

  class codecvt_base
  {
    public:
      enum result {
        ok
      };
  };
  
  class __codecvt_abstract_base
      : public codecvt_base
  {
      public:
        result out(const wchar_t* __from) const {
  	    return result::ok;
        }
      };
  
      class codecvt
      : public __codecvt_abstract_base{};
  
      inline bool
      __str_codecvt_out()
      {
        using _Codecvt = codecvt;
        using _ConvFn = codecvt_base::result
      (_Codecvt::*)(const wchar_t*) const;
        _ConvFn __fn = &codecvt::out;
        return true;
      }
  
  bool test() {
      return __str_codecvt_out();
  }

Replacing (_Codecvt::*)(const wchar_t*) const; with (codecvt::*)(const wchar_t*) const;
Produces debug info that can be parsed by dwarfdumper.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132900/new/

https://reviews.llvm.org/D132900



More information about the llvm-commits mailing list