[clang] Itanium mangler constructors
authorNathan Sidwell <nathan@acm.org>
Fri, 11 Feb 2022 16:20:28 +0000 (08:20 -0800)
committerNathan Sidwell <nathan@acm.org>
Wed, 16 Feb 2022 12:30:47 +0000 (04:30 -0800)
commit082f328899be9ed8a38b04a4e52be936f4875495
tree25cff26ce06c3b762315e20a04bb031303608388
parentd32b875dbc2400baf896f4b6eb12377273d6c3bc
[clang] Itanium mangler constructors

The Itanium mangler constructors use both NSDMI and explicit member
construction for default values.  This is confusing.

*) Use NSDMIs wherever possible

*) Use forwarding ctor for the nesting case with an
 llvm::raw_null_ostream (and explicitly set NullOut flag in that ctor).

*) Copy the ModuleSubstitutions.  This is a bug with no effect in the
 current mangling, but not in the newer mangling.

Reviewed By: ChuanqiXu

Differential Revision: https://reviews.llvm.org/D119550
clang/lib/AST/ItaniumMangle.cpp