// File: /workspace/github_c_makefile_star2_O1/nimble-code[P]Uno/Src/uno_lts.c
// Function: uno_warn
void
uno_warn(char *msg, treenode *n, symentry_t *s)
{	char *str;

	if (n)
	{	if (suppress(n->hdr.fnm, n->hdr.line))
			return;
	} else if (s)
	{	if (suppress(s->fn, s->ln))
			return;
	}

	uno_assert(curgraph && s, "bad input to uno_warn");

	if (strcmp(msg, "variable never used (evaluated)") == 0)
	{
		if (s
		&& strncmp(s->nme->str, "unused", strlen("unused")) == 0)
			return;

		if (n)
			str = x_stmnt(n);
		else
			str = "(declaration)";

		fprintf(stdout, "uno: ");

		if (n)	fprintf(stdout, "%s:%d:", n->hdr.fnm, n->hdr.line);
		else if (s) fprintf(stdout, "%s:%d", s->fn, s->ln);

		fprintf(stdout, "\tin fct %s, %s '%s' ",
			curgraph->fctnm, msg, s->nme->str);

	} else if (n && n->hdr.type != TN_EMPTY)
	{	if (strstr(x_stmnt(s->node), "va_list") != NULL)
			return;

		fprintf(stdout, "uno: %s/%s:%d: in fct %s, %s '%s'",
			cur_dir, cur_file, n->hdr.line,
			curgraph->fctnm, msg, s->nme->str);

 if (n->hdr.fnm)
 {		fprintf(stdout, "\n     statement  : %s:%d: ",
			n->hdr.fnm, n->hdr.line);
 } else
 {		fprintf(stdout, "\n     statement  : %s/%s:%d: ",
			cur_dir, cur_file, n->hdr.line);

 }
		if (n->hdr.type != TN_IF)
		{	str = x_stmnt(n);
			if (!str || strlen(str) == 0)
				str = "<stmnt>";
			fprintf(stdout, "%s", str);	/* src of offending stmnt */
		} else
		{	str = x_stmnt(((if_node *)n)->cond);
			if (!str || strlen(str) == 0)
				str = "<cond>";
			fprintf(stdout, "%s", str);	/* src of offending stmnt */
		}

		if (n->hdr.line != s->ln)		/* if different from above */
		{
 if (s->fn)
 {			fprintf(stdout, "\n     declaration: %s:%d: %s",
				s->fn, s->ln, x_stmnt(s->node)); /* decl src */
 } else
 {			fprintf(stdout, "\n     declaration: %s/%s:%d: %s",
				cur_dir, cur_file, s->ln, x_stmnt(s->node)); /* decl src */
 }
		}
	} else
	{	fprintf(stdout, "uno: in fct %s, %s '%s'",
			curgraph->fctnm, msg, s->nme->str);
	}

	fprintf(stdout, "\n");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
testq %rsi, %rsi
je 0x13fe9
movq 0x8(%r14), %rdi
movl 0x10(%r14), %esi
jmp 0x13ff5
testq %rbx, %rbx
je 0x1400d
movq 0x28(%rbx), %rdi
movl 0x24(%rbx), %esi
callq 0x13ef9
testl %eax, %eax
je 0x1400d
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpq $0x0, 0x5be33(%rip)     # 0x6fe48
setne %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movzbl %cl, %edi
leaq 0x1bc50(%rip), %rsi     # 0x2fc7a
callq 0x13f8c
leaq 0x1c20a(%rip), %rsi     # 0x30240
movq %r15, %rdi
callq 0x3180
testl %eax, %eax
je 0x14112
testq %r14, %r14
je 0x140ea
cmpl $0x0, 0x1c(%r14)
je 0x140ea
movq 0x10(%rbx), %rdi
callq 0x5e8a
leaq 0x1bc47(%rip), %rsi     # 0x2fcb1
movq %rax, %rdi
callq 0x3270
testq %rax, %rax
jne 0x13ffe
movq 0x23f52(%rip), %r12     # 0x37fd0
movq (%r12), %rdi
leaq 0x240df(%rip), %rbp     # 0x38168
movq (%rbp), %rdx
leaq 0x24164(%rip), %r13     # 0x381f8
movq (%r13), %rcx
movl 0x10(%r14), %r8d
movq 0x5bda5(%rip), %rax     # 0x6fe48
movq (%rax), %r9
movq 0x8(%rbx), %r10
leaq 0x1bc08(%rip), %rsi     # 0x2fcb9
xorl %eax, %eax
pushq 0x8(%r10)
pushq %r15
callq 0x3190
addq $0x10, %rsp
movq 0x8(%r14), %rdx
movq (%r12), %rdi
testq %rdx, %rdx
je 0x14207
movl 0x10(%r14), %ecx
leaq 0x1bbfd(%rip), %rsi     # 0x2fcdb
xorl %eax, %eax
callq 0x3190
jmp 0x14221
movq 0x23edf(%rip), %rax     # 0x37fd0
movq (%rax), %rdi
movq 0x5bd4d(%rip), %rax     # 0x6fe48
movq (%rax), %rdx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %r8
leaq 0x1bc53(%rip), %rsi     # 0x2fd60
jmp 0x141db
testq %rbx, %rbx
je 0x14138
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rdi
leaq 0xbcce(%rip), %rsi      # 0x1fdf4
movl $0x6, %edx
callq 0x3080
testl %eax, %eax
je 0x13ffe
testq %r14, %r14
je 0x1417b
movq %r14, %rdi
callq 0x5e8a
movq 0x23e84(%rip), %r12     # 0x37fd0
movq (%r12), %rcx
leaq 0x1bb39(%rip), %rdi     # 0x2fc90
movl $0x5, %esi
movl $0x1, %edx
callq 0x3260
movq (%r12), %rdi
movq 0x8(%r14), %rdx
movl 0x10(%r14), %ecx
leaq 0x1c296(%rip), %rsi     # 0x3040f
jmp 0x141b1
movq 0x23e4e(%rip), %r14     # 0x37fd0
movq (%r14), %rcx
leaq 0x1bb04(%rip), %rdi     # 0x2fc90
movl $0x5, %esi
movl $0x1, %edx
callq 0x3260
testq %rbx, %rbx
je 0x141b8
movq (%r14), %rdi
movq 0x28(%rbx), %rdx
movl 0x24(%rbx), %ecx
leaq 0x1bae5(%rip), %rsi     # 0x2fc96
xorl %eax, %eax
callq 0x3190
movq 0x23e11(%rip), %rax     # 0x37fd0
movq (%rax), %rdi
movq 0x5bc7f(%rip), %rax     # 0x6fe48
movq (%rax), %rdx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %r8
leaq 0x1bac1(%rip), %rsi     # 0x2fc9c
movq %r15, %rcx
xorl %eax, %eax
callq 0x3190
movq 0x23de4(%rip), %rax     # 0x37fd0
movq (%rax), %rsi
movl $0xa, %edi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3160
movq (%rbp), %rdx
movq (%r13), %rcx
movl 0x10(%r14), %r8d
leaq 0x1badc(%rip), %rsi     # 0x2fcf6
xorl %eax, %eax
callq 0x3190
cmpl $0x1b, 0x1c(%r14)
jne 0x14247
movq %rbp, %r13
movq 0x40(%r14), %rdi
callq 0x5e8a
testq %rax, %rax
je 0x1423e
cmpb $0x0, (%rax)
jne 0x14263
leaq 0x1bad7(%rip), %rax     # 0x2fd1c
jmp 0x14263
movq %rbp, %r13
movq %r14, %rdi
callq 0x5e8a
testq %rax, %rax
je 0x1425c
cmpb $0x0, (%rax)
jne 0x14263
leaq 0x1bab1(%rip), %rax     # 0x2fd14
movq (%r12), %rsi
movq %rax, %rdi
callq 0x3140
movl 0x24(%rbx), %ebp
cmpl %ebp, 0x10(%r14)
je 0x141e5
movq 0x28(%rbx), %r15
movq (%r12), %r14
testq %r15, %r15
je 0x142b0
movq 0x10(%rbx), %rdi
callq 0x5e8a
leaq 0x1ba8a(%rip), %rsi     # 0x2fd23
movq %r14, %rdi
movq %r15, %rdx
movl %ebp, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0x3190
jmp 0x141e5
movq (%r13), %r15
leaq 0x23f3d(%rip), %rax     # 0x381f8
movq (%rax), %r12
movq 0x10(%rbx), %rdi
callq 0x5e8a
leaq 0x1ba72(%rip), %rsi     # 0x2fd40
movq %r14, %rdi
movq %r15, %rdx
movq %r12, %rcx
movl %ebp, %r8d
movq %rax, %r9
xorl %eax, %eax
callq 0x3190
jmp 0x141e5