// File: /workspace/github_c_makefile_star2_O2/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 0x91a3(%rip), %rdi      # 0xb8ef
movq %rcx, %rdx
xorl %eax, %eax
callq 0x22bc
testq %rax, %rax
je 0x27c4
andq $0x0, -0x60(%rbp)
pushq $0x1
popq %rdx
movl %edx, -0x58(%rbp)
movq %rax, -0x30(%rbp)
movq %rax, -0x50(%rbp)
leaq -0xa8(%rbp), %rax
movq %rax, -0x48(%rbp)
andl $0x0, -0x40(%rbp)
pushq $0x9
popq %rcx
movq %rax, %rdi
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
andq $0x0, (%rax)
movl %edx, 0x40(%rax)
movq %r15, %r14
cmpl $0x4, 0x8(%r15)
jne 0x27e5
leaq 0x10(%r14), %rbx
leaq 0x916d(%rip), %r15      # 0xb912
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x27e5
movq 0x38(%rbx), %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x22bc
movq %rax, 0x38(%rbx)
testq %rax, %rax
jne 0x27a5
movq 0xe825(%rip), %rax      # 0x10ff0
movq (%rax), %rcx
leaq 0x9128(%rip), %rdi      # 0xb8fd
pushq $0x14
popq %rsi
pushq $0x1
popq %rdx
callq 0x2190
jmp 0x2d9f
leaq -0x60(%rbp), %rdi
callq 0x2da7
leaq -0xa8(%rbp), %r15
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x31b3
movq %rbx, %rdi
movq %r15, %rsi
callq 0x409a
movq %rbx, %rdi
movq %r15, %rsi
callq 0x42cc
xorl %edi, %edi
callq 0x4593
movq 0xea78(%rip), %rdi      # 0x112a0
leaq 0x90ec(%rip), %rsi      # 0xb91b
movq %r13, %rdx
movq %r12, %r15
movq %r12, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
xorl %edi, %edi
callq 0x4593
movq 0xea4b(%rip), %rdi      # 0x112a0
leaq 0xaf3d(%rip), %rsi      # 0xd799
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
movq -0x38(%rbp), %r12
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xea22(%rip), %rdi      # 0x112a0
leaq 0x90d7(%rip), %rsi      # 0xb95c
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe9fd(%rip), %rdi      # 0x112a0
leaq 0x90d0(%rip), %rsi      # 0xb97a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe9d8(%rip), %rdi      # 0x112a0
leaq 0x90c2(%rip), %rsi      # 0xb991
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe9b3(%rip), %rdi      # 0x112a0
leaq 0x90b6(%rip), %rsi      # 0xb9aa
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe98e(%rip), %rdi      # 0x112a0
leaq 0x90ad(%rip), %rsi      # 0xb9c6
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe966(%rip), %rdi      # 0x112a0
leaq 0x9097(%rip), %rsi      # 0xb9d8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe941(%rip), %rdi      # 0x112a0
leaq 0x908f(%rip), %rsi      # 0xb9f5
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe91c(%rip), %rdi      # 0x112a0
leaq 0x9078(%rip), %rsi      # 0xba03
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe8f7(%rip), %rdi      # 0x112a0
leaq 0x906a(%rip), %rsi      # 0xba1a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe8d2(%rip), %rdi      # 0x112a0
leaq 0x905c(%rip), %rsi      # 0xba31
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe8ad(%rip), %rdi      # 0x112a0
leaq 0x9051(%rip), %rsi      # 0xba4b
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe888(%rip), %rdi      # 0x112a0
leaq 0x9042(%rip), %rsi      # 0xba61
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe863(%rip), %rdi      # 0x112a0
leaq 0x9032(%rip), %rsi      # 0xba76
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe83e(%rip), %rdi      # 0x112a0
leaq 0x9025(%rip), %rsi      # 0xba8e
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe816(%rip), %rdi      # 0x112a0
leaq 0x902f(%rip), %rsi      # 0xbac0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe7f1(%rip), %rdi      # 0x112a0
leaq 0x9016(%rip), %rsi      # 0xbacc
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x3
popq %rdi
callq 0x4593
movq 0xe7cc(%rip), %rdi      # 0x112a0
leaq 0x9005(%rip), %rsi      # 0xbae0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe7a7(%rip), %rdi      # 0x112a0
leaq 0x9014(%rip), %rsi      # 0xbb14
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x3
popq %rdi
callq 0x4593
movq 0xe782(%rip), %rdi      # 0x112a0
leaq 0x8ff9(%rip), %rsi      # 0xbb1e
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe75d(%rip), %rdi      # 0x112a0
leaq 0x92f7(%rip), %rsi      # 0xbe41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe738(%rip), %rdi      # 0x112a0
leaq 0x8fda(%rip), %rsi      # 0xbb49
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe713(%rip), %rdi      # 0x112a0
leaq 0x8fc3(%rip), %rsi      # 0xbb57
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
movl 0x8(%r14), %ebx
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe6ea(%rip), %rdi      # 0x112a0
movq 0x10(%r12), %rdx
cmpl $0x4, %ebx
jne 0x2bcc
leaq 0x901e(%rip), %rsi      # 0xbbe5
movq %r15, %rcx
jmp 0x2bd7
movq 0x18(%r14), %rcx
leaq 0x8fc9(%rip), %rsi      # 0xbba0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
movq -0x30(%rbp), %rbx
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe6a7(%rip), %rdi      # 0x112a0
leaq 0x903e(%rip), %rsi      # 0xbc3e
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe682(%rip), %rdi      # 0x112a0
leaq 0x8eef(%rip), %rsi      # 0xbb14
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe65d(%rip), %rdi      # 0x112a0
leaq 0x900c(%rip), %rsi      # 0xbc56
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe635(%rip), %rdi      # 0x112a0
leaq 0x9018(%rip), %rsi      # 0xbc8a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe610(%rip), %rdi      # 0x112a0
leaq 0x900b(%rip), %rsi      # 0xbca2
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
movl 0x8(%r14), %ebx
pushq $0x2
popq %rdi
callq 0x4593
movq 0xe5e4(%rip), %rdi      # 0x112a0
movq 0x10(%r12), %rdx
cmpl $0x4, %ebx
jne 0x2cd2
leaq 0x9037(%rip), %rsi      # 0xbd04
movq %r15, %rcx
jmp 0x2cdd
movq 0x18(%r14), %rcx
leaq 0x8fdf(%rip), %rsi      # 0xbcbc
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe5a5(%rip), %rdi      # 0x112a0
leaq 0x913f(%rip), %rsi      # 0xbe41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
pushq $0x1
popq %rdi
callq 0x4593
movq 0xe584(%rip), %rdi      # 0x112a0
leaq 0x903d(%rip), %rsi      # 0xbd60
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
xorl %edi, %edi
callq 0x4593
movq 0xe564(%rip), %rdi      # 0x112a0
leaq 0x90fe(%rip), %rsi      # 0xbe41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
xorl %edi, %edi
callq 0x4593
movq 0xe544(%rip), %rdi      # 0x112a0
leaq 0x9424(%rip), %rsi      # 0xc187
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x2d80
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xe269(%rip), %rax      # 0x10ff0
movq (%rax), %rdi
leaq 0x8ba7(%rip), %rsi      # 0xb938
leaq 0x8bb8(%rip), %rdx      # 0xb950
xorl %eax, %eax
callq 0x2100
pushq $0x1
popq %rdi
callq 0x2180