[PATCH] D131858: [clang] Track the templated entity in type substitution.

Steven Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 12 09:53:55 PST 2022


steven_wu added a comment.

> Can you tell if this has been fixed by https://github.com/llvm/llvm-project/commit/303f20a2cab4554a10ec225fd853709146f8c51c ?

I can still reproduce this with latest commit. It is not fixed. At least it can easily reproduce on Darwin platform with bootstrap (stage 2 with module enabled).

Looking at the debugger output:

  (lldb) p lvaluePath->getType().dump()
  FunctionProtoType 0x1424badb0 'void (const unsigned long long &, llvm::raw_ostream &, StringRef)' imported cdecl
  |-BuiltinType 0x12886e870 'void'
  |-LValueReferenceType 0x1424bad80 'const unsigned long long &' imported
  | `-QualType 0x1424bad21 'const unsigned long long' const
  |   `-SubstTemplateTypeParmType 0x1424bad20 'unsigned long long' sugar imported typename depth 0 index 0 T
  |     |-ClassTemplateSpecialization 0x1424bab70 'format_provider'
  |     `-BuiltinType 0x12886e9f0 'unsigned long long'
  |-LValueReferenceType 0x13926fd00 'llvm::raw_ostream &' imported
  | `-ElaboratedType 0x13926fcd0 'llvm::raw_ostream' sugar imported
  |   `-RecordType 0x128c396a0 'class llvm::raw_ostream' imported
  |     `-CXXRecord 0x128c39758 'raw_ostream'
  `-ElaboratedType 0x128bf6c20 'StringRef' sugar imported
    `-RecordType 0x128bf6c00 'class llvm::StringRef' imported
      `-CXXRecord 0x128c02570 'StringRef'
  
  (lldb) p elemTy.dump()
  FunctionProtoType 0x1392702d0 'void (const unsigned long long &, llvm::raw_ostream &, StringRef)' cdecl
  |-BuiltinType 0x12886e870 'void'
  |-LValueReferenceType 0x139270140 'const unsigned long long &'
  | `-QualType 0x139270111 'const unsigned long long' const
  |   `-SubstTemplateTypeParmType 0x139270110 'unsigned long long' sugar typename depth 0 index 0 T
  |     |-ClassTemplateSpecialization 0x13924aed8 'format_provider'
  |     `-BuiltinType 0x12886e9f0 'unsigned long long'
  |-LValueReferenceType 0x13926fd00 'llvm::raw_ostream &' imported
  | `-ElaboratedType 0x13926fcd0 'llvm::raw_ostream' sugar imported
  |   `-RecordType 0x128c396a0 'class llvm::raw_ostream' imported
  |     `-CXXRecord 0x128c39758 'raw_ostream'
  `-ElaboratedType 0x128bf6c20 'StringRef' sugar imported
    `-RecordType 0x128bf6c00 'class llvm::StringRef' imported
      `-CXXRecord 0x128c02570 'StringRef'


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D131858



More information about the cfe-commits mailing list