https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117350
--- Comment #18 from ak at gcc dot gnu.org --- Okay I looked into need_assembler_name_p. For __ct function_decl it bails out due to 784 /* If DECL already has its assembler name set, it does not need a 785 new one. */ 786 if (!HAS_DECL_ASSEMBLER_NAME_P (decl) 787 || DECL_ASSEMBLER_NAME_SET_P (decl)) 788 return false; <function_decl 0x7fc0883d3000 __ct type <method_type 0x7fc0883d0930 type <void_type 0x7fc088227f18 void asm_written type_6 VOID align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fc088227f18 pointer_to_this <pointer_type 0x7fc08822e000>> QI size <integer_cst 0x7fc088220330 constant 8> unit-size <integer_cst 0x7fc088220348 constant 1> align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7fc0883d0930 method basetype <record_type 0x7fc0883d03f0 tuple> arg-types <tree_list 0x7fc0883cd6e0 value <pointer_type 0x7fc0883d0888> chain <tree_list 0x7fc0883cd690 value <integer_type 0x7fc0882275e8 int> chain <tree_list 0x7fc0883cd668 value <integer_type 0x7fc0882275e8 int> chain <tree_list 0x7fc08821bd98 value <void_type 0x7fc088227f18 void>>>>> pointer_to_this <pointer_type 0x7fc0883d57e0>> used public abstract external QI ../gu.cc:3:3 align:16 warn_if_not_align:0 context <record_type 0x7fc0883d03f0 tuple> abstract_origin <function_decl 0x7fc0883d3000 __ct > full-name "tuple<_T1, _T2>::tuple(_T1, _T2) [with _T1 = int; _T2 = int]" template-info <template_info 0x7fc0883cd708 tree_1 template <template_decl 0x7fc096050400 __ct type <method_type 0x7fc0883b8738> VOID ../gu.cc:3:3 align:1 warn_if_not_align:0 context <record_type 0x7fc0883b82a0 tuple> result <function_decl 0x7fc0883b7e00 __ct > parms <tree_list 0x7fc0883b2f50 purpose <integer_cst 0x7fc088220348 1> value <tree_vec 0x7fc0883b2f28 type <template_decl 0x7fc096050080 tuple> length:2 elt:0 <tree_list 0x7fc0883b2e38 value <type_decl 0x7fc088236d10 _T1>> elt:1 <tree_list 0x7fc0883b2f00 value <type_decl 0x7fc088236da8 _T2>>>> full-name "template<class _T1, class _T2> tuple<_T1, _T2>::tuple(_T1, _T2)"> args <tree_vec 0x7fc0883cd528 length:2 elt:0 <integer_type 0x7fc0882275e8 int> elt:1 <integer_type 0x7fc0882275e8 int>> pending_template> use_template=1 chain <function_decl 0x7fc0883d3200 __ct_base >> I assume that means HAS_DECL_ASSEMBLER_NAME_P returns false.