我们中的一些人知道 C++ 对象有几个可能的构造函数,C1 和 C2。但是 GCC 消息来源说可以有构造函数的第三种变体,C3“完整的对象分配构造函数”(在函数gcc-4.8/gcc/cp/mangle.c
之前检查文件write_special_name_constructor
):
1645 /* Handle constructor productions of non-terminal <special-name>.
1646 CTOR is a constructor FUNCTION_DECL.
1647
1648 <special-name> ::= C1 # complete object constructor
1649 ::= C2 # base object constructor
1650 ::= C3 # complete object allocating constructor
1651
1652 Currently, allocating constructors are never used. <<<<<
1653
1654 We also need to provide mangled names for the maybe-in-charge
1655 constructor, so we treat it here too. mangle_decl_string will
1656 append *INTERNAL* to that, to make sure we never emit it. */
为什么可能需要 C3,但 GCC 不使用?是否有任何流行的 C++ 编译器可以生成 C3 构造函数?
C3 是否记录在任何 ABI pdf 中?