// File: /workspace/github_c_makefile_star2_O3/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 0x86ab(%rip), %rdi      # 0x108ef
movq %rcx, %rdx
xorl %eax, %eax
callq 0x7efc
testq %rax, %rax
je 0x88bc
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 0x82cf
leaq 0x10(%r14), %rbx
leaq 0x8667(%rip), %r15      # 0x10912
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x82cf
movq 0x38(%rbx), %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x7efc
movq %rax, 0x38(%rbx)
testq %rax, %rax
jne 0x82ab
callq 0x24fc
leaq -0x60(%rbp), %rdi
callq 0x8970
leaq -0xa8(%rbp), %r15
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8e53
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9eba
movq %rbx, %rdi
movq %r15, %rsi
callq 0xa0dc
movq 0x11f95(%rip), %rdi     # 0x1a2a0
leaq 0x8609(%rip), %rsi      # 0x1091b
movq %r13, %rdx
movq %r12, %r15
movq %r12, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88c1
movq 0x11f6f(%rip), %rdi     # 0x1a2a0
leaq 0xa461(%rip), %rsi      # 0x12799
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
movq -0x38(%rbp), %r12
js 0x88c6
movl $0x1, %edi
callq 0xa3ac
movq 0x11f44(%rip), %rdi     # 0x1a2a0
leaq 0x85f9(%rip), %rsi      # 0x1095c
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88cb
movl $0x1, %edi
callq 0xa3ac
movq 0x11f1d(%rip), %rdi     # 0x1a2a0
leaq 0x85f0(%rip), %rsi      # 0x1097a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88d0
movl $0x1, %edi
callq 0xa3ac
movq 0x11ef6(%rip), %rdi     # 0x1a2a0
leaq 0x85e0(%rip), %rsi      # 0x10991
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88d5
movl $0x1, %edi
callq 0xa3ac
movq 0x11ecf(%rip), %rdi     # 0x1a2a0
leaq 0x85d2(%rip), %rsi      # 0x109aa
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88da
movl $0x1, %edi
callq 0xa3ac
movq 0x11ea8(%rip), %rdi     # 0x1a2a0
leaq 0x85c7(%rip), %rsi      # 0x109c6
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88df
movl $0x1, %edi
callq 0xa3ac
movq 0x11e7e(%rip), %rdi     # 0x1a2a0
leaq 0x85af(%rip), %rsi      # 0x109d8
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88e4
movl $0x1, %edi
callq 0xa3ac
movq 0x11e57(%rip), %rdi     # 0x1a2a0
leaq 0x85a5(%rip), %rsi      # 0x109f5
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88e9
movl $0x1, %edi
callq 0xa3ac
movq 0x11e30(%rip), %rdi     # 0x1a2a0
leaq 0x858c(%rip), %rsi      # 0x10a03
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88ee
movl $0x1, %edi
callq 0xa3ac
movq 0x11e09(%rip), %rdi     # 0x1a2a0
leaq 0x857c(%rip), %rsi      # 0x10a1a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88f3
movl $0x1, %edi
callq 0xa3ac
movq 0x11de2(%rip), %rdi     # 0x1a2a0
leaq 0x856c(%rip), %rsi      # 0x10a31
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88f8
movl $0x1, %edi
callq 0xa3ac
movq 0x11dbb(%rip), %rdi     # 0x1a2a0
leaq 0x855f(%rip), %rsi      # 0x10a4b
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x88fd
movl $0x1, %edi
callq 0xa3ac
movq 0x11d94(%rip), %rdi     # 0x1a2a0
leaq 0x854e(%rip), %rsi      # 0x10a61
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8902
movl $0x1, %edi
callq 0xa3ac
movq 0x11d6d(%rip), %rdi     # 0x1a2a0
leaq 0x853c(%rip), %rsi      # 0x10a76
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8907
movl $0x1, %edi
callq 0xa3ac
movq 0x11d46(%rip), %rdi     # 0x1a2a0
leaq 0x852d(%rip), %rsi      # 0x10a8e
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x890c
movl $0x1, %edi
callq 0xa3ac
movq 0x11d1c(%rip), %rdi     # 0x1a2a0
leaq 0x8535(%rip), %rsi      # 0x10ac0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8911
movl $0x2, %edi
callq 0xa3ac
movq 0x11cf5(%rip), %rdi     # 0x1a2a0
leaq 0x851a(%rip), %rsi      # 0x10acc
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8916
movl $0x3, %edi
callq 0xa3ac
movq 0x11cce(%rip), %rdi     # 0x1a2a0
leaq 0x8507(%rip), %rsi      # 0x10ae0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x891b
movl $0x2, %edi
callq 0xa3ac
movq 0x11ca7(%rip), %rdi     # 0x1a2a0
leaq 0x8514(%rip), %rsi      # 0x10b14
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8920
movl $0x3, %edi
callq 0xa3ac
movq 0x11c80(%rip), %rdi     # 0x1a2a0
leaq 0x84f7(%rip), %rsi      # 0x10b1e
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8925
movl $0x2, %edi
callq 0xa3ac
movq 0x11c59(%rip), %rdi     # 0x1a2a0
leaq 0x87f3(%rip), %rsi      # 0x10e41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x892a
movl $0x2, %edi
callq 0xa3ac
movq 0x11c32(%rip), %rdi     # 0x1a2a0
leaq 0x84d4(%rip), %rsi      # 0x10b49
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x892f
movl $0x2, %edi
callq 0xa3ac
movq 0x11c0b(%rip), %rdi     # 0x1a2a0
leaq 0x84bb(%rip), %rsi      # 0x10b57
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8934
movl 0x8(%r14), %ebx
movl $0x2, %edi
callq 0xa3ac
movq 0x11be0(%rip), %rdi     # 0x1a2a0
movq 0x10(%r12), %rdx
cmpl $0x4, %ebx
jne 0x86e8
leaq 0x8514(%rip), %rsi      # 0x10be5
movq %r15, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
movq -0x30(%rbp), %rbx
jns 0x8706
callq 0x2728
movq 0x18(%r14), %rcx
leaq 0x84ad(%rip), %rsi      # 0x10ba0
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
movq -0x30(%rbp), %rbx
js 0x8966
movl $0x2, %edi
callq 0xa3ac
movq 0x11b89(%rip), %rdi     # 0x1a2a0
leaq 0x8520(%rip), %rsi      # 0x10c3e
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8939
movl $0x1, %edi
callq 0xa3ac
movq 0x11b62(%rip), %rdi     # 0x1a2a0
leaq 0x83cf(%rip), %rsi      # 0x10b14
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x893e
movl $0x2, %edi
callq 0xa3ac
movq 0x11b3b(%rip), %rdi     # 0x1a2a0
leaq 0x84ea(%rip), %rsi      # 0x10c56
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8943
movl $0x2, %edi
callq 0xa3ac
movq 0x11b11(%rip), %rdi     # 0x1a2a0
leaq 0x84f4(%rip), %rsi      # 0x10c8a
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8948
movl $0x2, %edi
callq 0xa3ac
movq 0x11aea(%rip), %rdi     # 0x1a2a0
leaq 0x84e5(%rip), %rsi      # 0x10ca2
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x894d
movl 0x8(%r14), %ebx
movl $0x2, %edi
callq 0xa3ac
movq 0x11abc(%rip), %rdi     # 0x1a2a0
movq 0x10(%r12), %rdx
cmpl $0x4, %ebx
jne 0x8808
leaq 0x850f(%rip), %rsi      # 0x10d04
movq %r15, %rcx
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
jns 0x8822
callq 0x2626
movq 0x18(%r14), %rcx
leaq 0x84a9(%rip), %rsi      # 0x10cbc
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x896b
movl $0x1, %edi
callq 0xa3ac
movq 0x11a6d(%rip), %rdi     # 0x1a2a0
leaq 0x8607(%rip), %rsi      # 0x10e41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8952
movl $0x1, %edi
callq 0xa3ac
movq 0x11a46(%rip), %rdi     # 0x1a2a0
leaq 0x84ff(%rip), %rsi      # 0x10d60
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8957
movq 0x11a29(%rip), %rdi     # 0x1a2a0
leaq 0x85c3(%rip), %rsi      # 0x10e41
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x895c
movq 0x11a0c(%rip), %rdi     # 0x1a2a0
leaq 0x88ec(%rip), %rsi      # 0x11187
xorl %eax, %eax
callq 0x2100
testl %eax, %eax
js 0x8961
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