// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]Uno/Src/dflow.c
// Function: track_types
static void
track_types(DefUse *d1, leafnode *leaf)		/* Experimental */
{	symentry_t	*se;
	char	*x, *y, *k, *m;
	int	z;

	if (!type_check)
		return;

	if (d1 == NULL
	||  leaf == NULL
	||  leaf->syment == NULL)
	{	return;
	}

	se = leaf->syment;

	if (se == NULL || se->fn[0] == '/')
	{	return;
	}

	if (se->kind == TYPEDEF_ENTRY)
	{	x = se->nme->str;
	} else
	{	x = x_stmnt(se->node);
		for (z = 0; xtable[z] != NULL; z++)
		{	if (strncmp(x, xtable[z], strlen(xtable[z])) == 0)
			{	x += strlen(xtable[z]);
				while (*x == ' ') x++;
		}	}
		y = (char *) 1;
		for (k = x; y != NULL; k = ++y)
		{	y = strstr(k, se->nme->str);
			if (y != NULL)
			{	m = y+strlen(se->nme->str);
				if ((*(y-1) == ' ' || *(y-1) == '\t' || *(y-1) == '*')
				&&  (*m == ';' || *m == ' ' || *m == '\t'
				  || *m == '=' || *m == '(' || *m == ',' || *m == '*'))
				{	*y = '\0';
					break;
				}
			} else
			{
				break;
		}	}
		if (strchr(x, ';') != NULL
		||  strchr(x, '=') != NULL
		||  strchr(x, ',') != NULL)
		{	x = "?";
		}
	}

	if (se->kind != PARAM_ENTRY)
	{	d1->der_type = cache_str(x);
	}

	if (0) printf("%s:%d: [%d] <%s> -- %s (type)\n",
		se->fn, se->ln,
		se->kind,
		se->nme->str,
		x);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x30e61(%rip), %rax     # 0x4e3c8
cmpl $0x0, (%rax)
jne 0x1d571
jmp 0x1d7fb
cmpq $0x0, -0x8(%rbp)
je 0x1d58a
cmpq $0x0, -0x10(%rbp)
je 0x1d58a
movq -0x10(%rbp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x1d58f
jmp 0x1d7fb
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x1d5b2
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0x1d5b7
jmp 0x1d7fb
movq -0x18(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x1d5d5
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x1d7de
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4ec0
movq %rax, -0x20(%rbp)
movl $0x0, -0x3c(%rbp)
movslq -0x3c(%rbp), %rcx
leaq 0x30bb8(%rip), %rax     # 0x4e1b0
cmpq $0x0, (%rax,%rcx,8)
je 0x1d68f
movq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
movslq -0x3c(%rbp), %rcx
leaq 0x30b9a(%rip), %rax     # 0x4e1b0
movq (%rax,%rcx,8), %rax
movq %rax, -0x48(%rbp)
movslq -0x3c(%rbp), %rcx
leaq 0x30b87(%rip), %rax     # 0x4e1b0
movq (%rax,%rcx,8), %rdi
callq 0x30c0
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq %rax, %rdx
callq 0x3070
cmpl $0x0, %eax
jne 0x1d67f
movslq -0x3c(%rbp), %rcx
leaq 0x30b5e(%rip), %rax     # 0x4e1b0
movq (%rax,%rcx,8), %rdi
callq 0x30c0
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0x1d67d
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1d663
jmp 0x1d67f
jmp 0x1d681
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x1d5ed
movl $0x1, %eax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x1d795
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x3240
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x1d77c
movq -0x28(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x30c0
movq %rax, %rcx
movq -0x58(%rbp), %rax
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movsbl -0x1(%rax), %eax
cmpl $0x20, %eax
je 0x1d71d
movq -0x28(%rbp), %rax
movsbl -0x1(%rax), %eax
cmpl $0x9, %eax
je 0x1d71d
movq -0x28(%rbp), %rax
movsbl -0x1(%rax), %eax
cmpl $0x2a, %eax
jne 0x1d77a
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
je 0x1d771
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
je 0x1d771
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0x1d771
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
je 0x1d771
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x28, %eax
je 0x1d771
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
je 0x1d771
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
jne 0x1d77a
movq -0x28(%rbp), %rax
movb $0x0, (%rax)
jmp 0x1d795
jmp 0x1d77e
jmp 0x1d795
jmp 0x1d780
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq %rax, -0x30(%rbp)
jmp 0x1d6a0
movq -0x20(%rbp), %rdi
movl $0x3b, %esi
callq 0x30e0
cmpq $0x0, %rax
jne 0x1d7d1
movq -0x20(%rbp), %rdi
movl $0x3d, %esi
callq 0x30e0
cmpq $0x0, %rax
jne 0x1d7d1
movq -0x20(%rbp), %rdi
movl $0x2c, %esi
callq 0x30e0
cmpq $0x0, %rax
je 0x1d7dc
leaq 0x17634(%rip), %rax     # 0x34e0c
movq %rax, -0x20(%rbp)
jmp 0x1d7de
movq -0x18(%rbp), %rax
cmpl $0x8, (%rax)
je 0x1d7fb
movq -0x20(%rbp), %rdi
callq 0x1dad0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)