[all-commits] [llvm/llvm-project] c35416: [demangler] Add support for C++20 modules

Nathan Sidwell via All-commits all-commits at lists.llvm.org
Tue Mar 22 09:43:10 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c354167ae217f90399bff9a644fffb3e9a6b4334
      https://github.com/llvm/llvm-project/commit/c354167ae217f90399bff9a644fffb3e9a6b4334
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2022-03-22 (Tue, 22 Mar 2022)

  Changed paths:
    M libcxxabi/src/demangle/ItaniumDemangle.h
    M libcxxabi/test/test_demangle.pass.cpp
    M llvm/include/llvm/Demangle/ItaniumDemangle.h
    M llvm/lib/Demangle/ItaniumDemangle.cpp

  Log Message:
  -----------
  [demangler] Add support for C++20 modules

Add support for module name demangling.  We have two new demangler
nodes -- ModuleName and ModuleEntity. The former represents a module
name in a hierarchical fashion. The latter is the combination of a
(name) node and a module name. Because module names and entity
identities use the same substitution encoding, we have to adjust the
flow of how substitutions are handled, and examine the substituted
node to know how to deal with it.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D119933




More information about the All-commits mailing list