[PATCH] D133874: [clang] Changes to produce sugared converted template arguments

Mike Hommey via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 26 13:30:32 PDT 2022


glandium added a comment.

Reduced testcase:
cc1 command line: `clang-16 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -o Unified_cpp_editor_txmgr0.o -x c++-cpp-output Unified_cpp_editor_txmgr0.ii`
source file content:

  class nsCycleCollectionParticipant;
  class nsCycleCollectingAutoRefCnt;
  extern "C" void NS_CycleCollectorSuspect3(void *,
                                            nsCycleCollectionParticipant *,
                                            nsCycleCollectingAutoRefCnt *,
                                            bool *);
  class nsCycleCollectingAutoRefCnt {
  public:
    typedef void Suspect(void *, nsCycleCollectionParticipant *,
                         nsCycleCollectingAutoRefCnt *, bool *);
    template <Suspect suspect = NS_CycleCollectorSuspect3>
    void incr(int *aOwner) {
      incr<suspect>(aOwner, nullptr);
    }
    template <Suspect = NS_CycleCollectorSuspect3>
    unsigned long incr(void *, nsCycleCollectionParticipant *) {}
  };
  class TransactionItem {
    int Release();
    nsCycleCollectingAutoRefCnt mRefCnt;
  };
  int TransactionItem::Release() {
    mRefCnt.incr(this, 0);
    mRefCnt.incr(0);
  }


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D133874



More information about the cfe-commits mailing list