// File: /workspace/github_c_makefile_star2_O3/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 0x1347a
movq 0x8(%r14), %rdi
movl 0x10(%r14), %esi
jmp 0x13486
testq %rbx, %rbx
je 0x1349e
movq 0x28(%rbx), %rdi
movl 0x24(%rbx), %esi
callq 0x13395
testl %eax, %eax
je 0x1349e
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpq $0x0, 0x5c9b2(%rip)     # 0x6fe58
setne %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movzbl %cl, %edi
leaq 0x1c79c(%rip), %rsi     # 0x2fc57
callq 0x1341d
leaq 0x1cd53(%rip), %rsi     # 0x3021a
movq %r15, %rdi
callq 0x3190
testl %eax, %eax
je 0x135a3
testq %r14, %r14
je 0x1357b
cmpl $0x0, 0x1c(%r14)
je 0x1357b
movq 0x10(%rbx), %rdi
callq 0x5cbe
leaq 0x1c793(%rip), %rsi     # 0x2fc8e
movq %rax, %rdi
callq 0x3280
testq %rax, %rax
jne 0x1348f
movq 0x24ac1(%rip), %r12     # 0x37fd0
movq (%r12), %rdi
leaq 0x24c56(%rip), %rbp     # 0x38170
movq (%rbp), %rdx
leaq 0x24ce3(%rip), %r13     # 0x38208
movq (%r13), %rcx
movl 0x10(%r14), %r8d
movq 0x5c924(%rip), %rax     # 0x6fe58
movq (%rax), %r9
movq 0x8(%rbx), %r10
leaq 0x1c754(%rip), %rsi     # 0x2fc96
xorl %eax, %eax
pushq 0x8(%r10)
pushq %r15
callq 0x31a0
addq $0x10, %rsp
movq 0x8(%r14), %rdx
movq (%r12), %rdi
testq %rdx, %rdx
je 0x136be
movl 0x10(%r14), %ecx
leaq 0x1c749(%rip), %rsi     # 0x2fcb8
xorl %eax, %eax
callq 0x31a0
jmp 0x136d8
movq 0x24a4e(%rip), %rax     # 0x37fd0
movq (%rax), %rdi
movq 0x5c8cc(%rip), %rax     # 0x6fe58
movq (%rax), %rdx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %r8
leaq 0x1c79f(%rip), %rsi     # 0x2fd3d
jmp 0x13670
testq %rbx, %rbx
je 0x13601
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rdi
leaq 0xc81d(%rip), %rsi      # 0x1fdd4
movl $0x6, %edx
callq 0x3080
testl %eax, %eax
je 0x1348f
testq %r14, %r14
jne 0x1360a
movq 0x249fb(%rip), %r14     # 0x37fd0
movq (%r14), %rcx
leaq 0x1c68e(%rip), %rdi     # 0x2fc6d
movl $0x5, %esi
movl $0x1, %edx
callq 0x3270
movq (%r14), %rdi
movq 0x28(%rbx), %rdx
movl 0x24(%rbx), %ecx
leaq 0x1c674(%rip), %rsi     # 0x2fc73
jmp 0x13646
testq %r14, %r14
je 0x1369c
movq %r14, %rdi
callq 0x5cbe
movq 0x249b7(%rip), %r12     # 0x37fd0
movq (%r12), %rcx
leaq 0x1c649(%rip), %rdi     # 0x2fc6d
movl $0x5, %esi
movl $0x1, %edx
callq 0x3270
movq (%r12), %rdi
movq 0x8(%r14), %rdx
movl 0x10(%r14), %ecx
leaq 0x1cda3(%rip), %rsi     # 0x303e9
xorl %eax, %eax
callq 0x31a0
movq 0x2497c(%rip), %rax     # 0x37fd0
movq (%rax), %rdi
movq 0x5c7fa(%rip), %rax     # 0x6fe58
movq (%rax), %rdx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %r8
leaq 0x1c609(%rip), %rsi     # 0x2fc79
movq %r15, %rcx
xorl %eax, %eax
callq 0x31a0
movq 0x2494f(%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 0x2492d(%rip), %rax     # 0x37fd0
movq (%rax), %rcx
leaq 0x1c5c0(%rip), %rdi     # 0x2fc6d
movl $0x5, %esi
movl $0x1, %edx
callq 0x3270
jmp 0x1364d
movq (%rbp), %rdx
movq (%r13), %rcx
movl 0x10(%r14), %r8d
leaq 0x1c602(%rip), %rsi     # 0x2fcd3
xorl %eax, %eax
callq 0x31a0
cmpl $0x1b, 0x1c(%r14)
jne 0x136fe
movq %rbp, %r13
movq 0x40(%r14), %rdi
callq 0x5cbe
testq %rax, %rax
je 0x136f5
cmpb $0x0, (%rax)
jne 0x1371a
leaq 0x1c5fd(%rip), %rax     # 0x2fcf9
jmp 0x1371a
movq %rbp, %r13
movq %r14, %rdi
callq 0x5cbe
testq %rax, %rax
je 0x13713
cmpb $0x0, (%rax)
jne 0x1371a
leaq 0x1c5d7(%rip), %rax     # 0x2fcf1
movq (%r12), %rsi
movq %rax, %rdi
callq 0x3140
movl 0x24(%rbx), %ebp
cmpl %ebp, 0x10(%r14)
je 0x1367a
movq 0x28(%rbx), %r15
movq (%r12), %r14
testq %r15, %r15
je 0x13767
movq 0x10(%rbx), %rdi
callq 0x5cbe
leaq 0x1c5b0(%rip), %rsi     # 0x2fd00
movq %r14, %rdi
movq %r15, %rdx
movl %ebp, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0x31a0
jmp 0x1367a
movq (%r13), %r15
leaq 0x24a96(%rip), %rax     # 0x38208
movq (%rax), %r12
movq 0x10(%rbx), %rdi
callq 0x5cbe
leaq 0x1c598(%rip), %rsi     # 0x2fd1d
movq %r14, %rdi
movq %r15, %rdx
movq %r12, %rcx
movl %ebp, %r8d
movq %rax, %r9
xorl %eax, %eax
callq 0x31a0
jmp 0x1367a