// File: /workspace/github_c_makefile_star2_O1/OstCollector[P]config2c/config2c.c
// Function: make_test_default_memb
void make_test_default_memb(const struct node_type_def_list *list, long id,
		const struct node_member_list *memb, long im)
{
	struct node_type_def_list mlist;
	struct node_member_list mmemb;
	const char *struct_name;
	struct node_alter_list *alter;

	struct_name = make_message("_test_%ld_%ld", id, im);
	if (!struct_name) {
		fprintf(stderr, "insufficient memory\n");
		exit(EXIT_FAILURE);
	}

	mlist.next = NULL;
	mlist.type = NODE_TYPE_DEF_STRUCT;
	mlist.struct_def.name = struct_name;
	mlist.struct_def.members = &mmemb;
	mlist.struct_def.exported = 0;

	mmemb = *memb;
	mmemb.next = NULL;
	mmemb.visible = 1;

	if (memb->type == NODE_MEMBER_DEF_UNNAMED_UNION) {
		for (alter = memb->alters; alter; alter = alter->next) {
			alter->enum_val = make_message("_test_%s",
					alter->enum_val);
			if (!alter->enum_val) {
				fprintf(stderr, "insufficient memory\n");
				exit(EXIT_FAILURE);
			}
		}
	}

	decl_def_list(&mlist);
	parse_struct(struct_name, &mmemb);
	free_struct(struct_name, &mmemb);
	dump_struct(struct_name, &mmemb);

	osi(0, "void test_default_%ld_%ld()\n", id, im);
	osi(0, "{\n");
	osi(1, "struct pass_to_conv context;\n");
	osi(1, "struct mem_pool pool;\n");
	osi(1, "struct node_value node;\n");
	osi(1, "struct dump_context dummy;\n");
	osi(1, "struct %s value;\n", struct_name);
	osi(1, "const char *err_msg = NULL;\n");
	osi(1, "int ret = 0;\n");
	osi(1, "mem_pool_init(&pool);\n");
	osi(1, "context.pool = &pool;\n");
	osi(1, "node.type = VAL_MEMBERS;\n");
	osi(1, "node.members = NULL;\n");
	osi(1, "node.parent = NULL;\n");
	osi(1, "node.name_copy = NULL;\n");
	osi(1, "ret = parse__struct_%s(&context, &value, &node);\n",
			struct_name);
	osi(1, "if (ret) {\n");
	osi(2, "if (context.msg) {\n");
	osi(3, "err_msg = make_msg_loc(context.node, context.msg);\n");
	osi(2, "} else {\n"); /* if msg */
	osi(3, "err_msg = make_msg_loc(context.node, \"\");\n");
	osi(2, "}\n"); /* else msg */
	osi(2, "errno = ret;\n");
	osi(2, "fprintf(stderr, \"error: %%d(%%m), %%s\\n\", ret, "
			"err_msg ? err_msg : \"\");\n");
	if (memb->type != NODE_MEMBER_DEF_UNNAMED_UNION) {
		osi(2, "fprintf(stderr, \"failed to parse default value of "
				"struct %s.%s\\n\");\n", 
				list->struct_def.name, memb->in_name);
	} else {
		osi(2, "fprintf(stderr, \"failed to parse default value of "
				"struct %s.%ld-th field (a union)\\n\");\n",
				list->struct_def.name, im);
	}
	osi(2, "free((char *)err_msg);\n");
	osi(1, "} else {\n"); /* if ret */
	osi(2, "dump__struct_%s(put_func_impl, &dummy, 0, &value);\n", struct_name);
	osi(2, "fprintf(stderr, \"\\n\");\n");
	osi(2, "free__struct_%s(&value);\n", struct_name);
	if (memb->type != NODE_MEMBER_DEF_UNNAMED_UNION) {
		osi(2, "fprintf(stderr, \"successed to parse default value of "
				"struct %s.%s\\n\");\n", 
				list->struct_def.name, memb->in_name);
	} else {
		osi(2, "fprintf(stderr, \"successed to parse default value of "
				"struct %s.%ld-th field (a union)\\n\");\n",
				list->struct_def.name, im);
	}
	osi(1, "}\n"); /* else ret */
	osi(1, "mem_pool_destroy(&pool);\n");
	osi(0, "}\n"); /* func body */
	osi(0, "\n");
	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rcx, %r12
movq %rdx, %r15
movq %rsi, %r13
movq %rdi, -0x38(%rbp)
leaq 0x878b(%rip), %rdi      # 0x108ef
movq %rcx, %rdx
xorl %eax, %eax
callq 0x7e1c
testq %rax, %rax
je 0x87dc
xorl %edx, %edx
movq %rdx, -0x60(%rbp)
movl $0x1, %r8d
movl %r8d, -0x58(%rbp)
movq %rax, -0x30(%rbp)
movq %rax, -0x50(%rbp)
leaq -0xa8(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x0, -0x40(%rbp)
movl $0x9, %ecx
movq %rax, %rdi
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %rdx, (%rax)
movl %r8d, 0x40(%rax)
movq %r15, %r14
cmpl $0x4, 0x8(%r15)
jne 0x81ef
leaq 0x10(%r14), %rbx
leaq 0x8747(%rip), %r15      # 0x10912
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x81ef
movq 0x38(%rbx), %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x7e1c
movq %rax, 0x38(%rbx)
testq %rax, %rax
jne 0x81cb
callq 0x24fc
leaq -0x60(%rbp), %rdi
callq 0x8890
leaq -0xa8(%rbp), %r15
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8d73
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9dd6
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9ff8
movq 0x12075(%rip), %rdi     # 0x1a2a0
leaq 0x86e9(%rip), %rsi      # 0x1091b
movq %r13, %rdx
movq %r12, %r15
movq %r12, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x87e1
movq 0x1204f(%rip), %rdi     # 0x1a2a0
leaq 0xa541(%rip), %rsi      # 0x12799
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
movq -0x38(%rbp), %r12
js 0x87e6
movl $0x1, %edi
callq 0xa2c8
movq 0x12024(%rip), %rdi     # 0x1a2a0
leaq 0x86d9(%rip), %rsi      # 0x1095c
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x87eb
movl $0x1, %edi
callq 0xa2c8
movq 0x11ffd(%rip), %rdi     # 0x1a2a0
leaq 0x86d0(%rip), %rsi      # 0x1097a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x87f0
movl $0x1, %edi
callq 0xa2c8
movq 0x11fd6(%rip), %rdi     # 0x1a2a0
leaq 0x86c0(%rip), %rsi      # 0x10991
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x87f5
movl $0x1, %edi
callq 0xa2c8
movq 0x11faf(%rip), %rdi     # 0x1a2a0
leaq 0x86b2(%rip), %rsi      # 0x109aa
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x87fa
movl $0x1, %edi
callq 0xa2c8
movq 0x11f88(%rip), %rdi     # 0x1a2a0
leaq 0x86a7(%rip), %rsi      # 0x109c6
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x87ff
movl $0x1, %edi
callq 0xa2c8
movq 0x11f5e(%rip), %rdi     # 0x1a2a0
leaq 0x868f(%rip), %rsi      # 0x109d8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8804
movl $0x1, %edi
callq 0xa2c8
movq 0x11f37(%rip), %rdi     # 0x1a2a0
leaq 0x8685(%rip), %rsi      # 0x109f5
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8809
movl $0x1, %edi
callq 0xa2c8
movq 0x11f10(%rip), %rdi     # 0x1a2a0
leaq 0x866c(%rip), %rsi      # 0x10a03
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x880e
movl $0x1, %edi
callq 0xa2c8
movq 0x11ee9(%rip), %rdi     # 0x1a2a0
leaq 0x865c(%rip), %rsi      # 0x10a1a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8813
movl $0x1, %edi
callq 0xa2c8
movq 0x11ec2(%rip), %rdi     # 0x1a2a0
leaq 0x864c(%rip), %rsi      # 0x10a31
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8818
movl $0x1, %edi
callq 0xa2c8
movq 0x11e9b(%rip), %rdi     # 0x1a2a0
leaq 0x863f(%rip), %rsi      # 0x10a4b
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x881d
movl $0x1, %edi
callq 0xa2c8
movq 0x11e74(%rip), %rdi     # 0x1a2a0
leaq 0x862e(%rip), %rsi      # 0x10a61
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8822
movl $0x1, %edi
callq 0xa2c8
movq 0x11e4d(%rip), %rdi     # 0x1a2a0
leaq 0x861c(%rip), %rsi      # 0x10a76
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8827
movl $0x1, %edi
callq 0xa2c8
movq 0x11e26(%rip), %rdi     # 0x1a2a0
leaq 0x860d(%rip), %rsi      # 0x10a8e
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x882c
movl $0x1, %edi
callq 0xa2c8
movq 0x11dfc(%rip), %rdi     # 0x1a2a0
leaq 0x8615(%rip), %rsi      # 0x10ac0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8831
movl $0x2, %edi
callq 0xa2c8
movq 0x11dd5(%rip), %rdi     # 0x1a2a0
leaq 0x85fa(%rip), %rsi      # 0x10acc
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8836
movl $0x3, %edi
callq 0xa2c8
movq 0x11dae(%rip), %rdi     # 0x1a2a0
leaq 0x85e7(%rip), %rsi      # 0x10ae0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x883b
movl $0x2, %edi
callq 0xa2c8
movq 0x11d87(%rip), %rdi     # 0x1a2a0
leaq 0x85f4(%rip), %rsi      # 0x10b14
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8840
movl $0x3, %edi
callq 0xa2c8
movq 0x11d60(%rip), %rdi     # 0x1a2a0
leaq 0x85d7(%rip), %rsi      # 0x10b1e
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8845
movl $0x2, %edi
callq 0xa2c8
movq 0x11d39(%rip), %rdi     # 0x1a2a0
leaq 0x88d3(%rip), %rsi      # 0x10e41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x884a
movl $0x2, %edi
callq 0xa2c8
movq 0x11d12(%rip), %rdi     # 0x1a2a0
leaq 0x85b4(%rip), %rsi      # 0x10b49
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x884f
movl $0x2, %edi
callq 0xa2c8
movq 0x11ceb(%rip), %rdi     # 0x1a2a0
leaq 0x859b(%rip), %rsi      # 0x10b57
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8854
movl 0x8(%r14), %ebx
movl $0x2, %edi
callq 0xa2c8
movq 0x11cc0(%rip), %rdi     # 0x1a2a0
movq 0x10(%r12), %rdx
cmpl $0x4, %ebx
jne 0x8608
leaq 0x85f4(%rip), %rsi      # 0x10be5
movq %r15, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
movq -0x30(%rbp), %rbx
jns 0x8626
callq 0x2728
movq 0x18(%r14), %rcx
leaq 0x858d(%rip), %rsi      # 0x10ba0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
movq -0x30(%rbp), %rbx
js 0x8886
movl $0x2, %edi
callq 0xa2c8
movq 0x11c69(%rip), %rdi     # 0x1a2a0
leaq 0x8600(%rip), %rsi      # 0x10c3e
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8859
movl $0x1, %edi
callq 0xa2c8
movq 0x11c42(%rip), %rdi     # 0x1a2a0
leaq 0x84af(%rip), %rsi      # 0x10b14
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x885e
movl $0x2, %edi
callq 0xa2c8
movq 0x11c1b(%rip), %rdi     # 0x1a2a0
leaq 0x85ca(%rip), %rsi      # 0x10c56
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8863
movl $0x2, %edi
callq 0xa2c8
movq 0x11bf1(%rip), %rdi     # 0x1a2a0
leaq 0x85d4(%rip), %rsi      # 0x10c8a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8868
movl $0x2, %edi
callq 0xa2c8
movq 0x11bca(%rip), %rdi     # 0x1a2a0
leaq 0x85c5(%rip), %rsi      # 0x10ca2
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x886d
movl 0x8(%r14), %ebx
movl $0x2, %edi
callq 0xa2c8
movq 0x11b9c(%rip), %rdi     # 0x1a2a0
movq 0x10(%r12), %rdx
cmpl $0x4, %ebx
jne 0x8728
leaq 0x85ef(%rip), %rsi      # 0x10d04
movq %r15, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
jns 0x8742
callq 0x2626
movq 0x18(%r14), %rcx
leaq 0x8589(%rip), %rsi      # 0x10cbc
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x888b
movl $0x1, %edi
callq 0xa2c8
movq 0x11b4d(%rip), %rdi     # 0x1a2a0
leaq 0x86e7(%rip), %rsi      # 0x10e41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8872
movl $0x1, %edi
callq 0xa2c8
movq 0x11b26(%rip), %rdi     # 0x1a2a0
leaq 0x85df(%rip), %rsi      # 0x10d60
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8877
movq 0x11b09(%rip), %rdi     # 0x1a2a0
leaq 0x86a3(%rip), %rsi      # 0x10e41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x887c
movq 0x11aec(%rip), %rdi     # 0x1a2a0
leaq 0x89cc(%rip), %rsi      # 0x11187
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8881
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x2b5b
callq 0x2b30
callq 0x2b05
callq 0x2ada
callq 0x2aaf
callq 0x2a84
callq 0x2a59
callq 0x2a2e
callq 0x2a03
callq 0x29d8
callq 0x29ad
callq 0x2982
callq 0x2957
callq 0x292c
callq 0x2901
callq 0x28d6
callq 0x28ab
callq 0x2880
callq 0x2855
callq 0x282a
callq 0x27ff
callq 0x27d4
callq 0x27a9
callq 0x277e
callq 0x2753
callq 0x26fd
callq 0x26d2
callq 0x26a7
callq 0x267c
callq 0x2651
callq 0x25fb
callq 0x25d0
callq 0x25a5
callq 0x257a
callq 0x2524
callq 0x254f