// File: /workspace/github_c_makefile_star2_O2/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 0x122d5
movq 0x8(%r14), %rdi
movl 0x10(%r14), %esi
jmp 0x122e1
testq %rbx, %rbx
je 0x122f9
movq 0x28(%rbx), %rdi
movl 0x24(%rbx), %esi
callq 0x121e1
testl %eax, %eax
je 0x122f9
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpq $0x0, 0x5cb57(%rip)     # 0x6ee58
setne %al
testq %rbx, %rbx
setne %cl
andb %al, %cl
movzbl %cl, %edi
leaq 0x1b975(%rip), %rsi     # 0x2dc8b
callq 0x1225f
leaq 0x1bf2c(%rip), %rsi     # 0x2e24e
movq %r15, %rdi
callq 0x3190
testl %eax, %eax
je 0x123fc
testq %r14, %r14
je 0x123d4
cmpl $0x0, 0x1c(%r14)
je 0x123d4
movq 0x10(%rbx), %rdi
callq 0x4ac7
leaq 0x1b96c(%rip), %rsi     # 0x2dcc2
movq %rax, %rdi
callq 0x3290
testq %rax, %rax
jne 0x122ea
movq 0x24c66(%rip), %r12     # 0x36fd0
movq (%r12), %rdi
leaq 0x24e03(%rip), %rbp     # 0x37178
movq (%rbp), %rdx
leaq 0x24e88(%rip), %r13     # 0x37208
movq (%r13), %rcx
movl 0x10(%r14), %r8d
movq 0x5cac9(%rip), %rax     # 0x6ee58
movq (%rax), %r9
movq 0x8(%rbx), %r10
leaq 0x1b92d(%rip), %rsi     # 0x2dcca
xorl %eax, %eax
pushq 0x8(%r10)
pushq %r15
callq 0x31a0
popq %rcx
popq %rdx
movq 0x8(%r14), %rdx
movq (%r12), %rdi
testq %rdx, %rdx
je 0x124e5
movl 0x10(%r14), %ecx
leaq 0x1b924(%rip), %rsi     # 0x2dcec
xorl %eax, %eax
callq 0x31a0
jmp 0x124ff
movq 0x24bf5(%rip), %rax     # 0x36fd0
movq (%rax), %rdi
movq 0x5ca73(%rip), %rax     # 0x6ee58
movq (%rax), %rdx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %r8
leaq 0x1b97a(%rip), %rsi     # 0x2dd71
jmp 0x124bb
testq %rbx, %rbx
je 0x12420
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rdi
leaq 0xb9c4(%rip), %rsi      # 0x1ddd4
pushq $0x6
popq %rdx
callq 0x3080
testl %eax, %eax
je 0x122ea
testq %r14, %r14
je 0x1245f
movq %r14, %rdi
callq 0x4ac7
movq 0x24b9c(%rip), %r12     # 0x36fd0
movq (%r12), %rcx
leaq 0x1b862(%rip), %rdi     # 0x2dca1
pushq $0x5
popq %rsi
pushq $0x1
popq %rdx
callq 0x3280
movq (%r12), %rdi
movq 0x8(%r14), %rdx
movl 0x10(%r14), %ecx
leaq 0x1bfc0(%rip), %rsi     # 0x2e41d
jmp 0x12491
movq 0x24b6a(%rip), %r14     # 0x36fd0
movq (%r14), %rcx
leaq 0x1b831(%rip), %rdi     # 0x2dca1
pushq $0x5
popq %rsi
pushq $0x1
popq %rdx
callq 0x3280
testq %rbx, %rbx
je 0x12498
movq (%r14), %rdi
movq 0x28(%rbx), %rdx
movl 0x24(%rbx), %ecx
leaq 0x1b816(%rip), %rsi     # 0x2dca7
xorl %eax, %eax
callq 0x31a0
movq 0x24b31(%rip), %rax     # 0x36fd0
movq (%rax), %rdi
movq 0x5c9af(%rip), %rax     # 0x6ee58
movq (%rax), %rdx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %r8
leaq 0x1b7f2(%rip), %rsi     # 0x2dcad
movq %r15, %rcx
xorl %eax, %eax
callq 0x31a0
movq 0x24b04(%rip), %rax     # 0x36fd0
movq (%rax), %rsi
pushq $0xa
popq %rdi
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 0x1b80f(%rip), %rsi     # 0x2dd07
xorl %eax, %eax
callq 0x31a0
cmpl $0x1b, 0x1c(%r14)
jne 0x12525
movq %rbp, %r13
movq 0x40(%r14), %rdi
callq 0x4ac7
testq %rax, %rax
je 0x1251c
cmpb $0x0, (%rax)
jne 0x12541
leaq 0x1b80a(%rip), %rax     # 0x2dd2d
jmp 0x12541
movq %rbp, %r13
movq %r14, %rdi
callq 0x4ac7
testq %rax, %rax
je 0x1253a
cmpb $0x0, (%rax)
jne 0x12541
leaq 0x1b7e4(%rip), %rax     # 0x2dd25
movq (%r12), %rsi
movq %rax, %rdi
callq 0x3140
movl 0x24(%rbx), %ebp
cmpl %ebp, 0x10(%r14)
je 0x124c5
movq 0x28(%rbx), %r15
movq (%r12), %r14
testq %r15, %r15
je 0x1258e
movq 0x10(%rbx), %rdi
callq 0x4ac7
leaq 0x1b7bd(%rip), %rsi     # 0x2dd34
movq %r14, %rdi
movq %r15, %rdx
movl %ebp, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0x31a0
jmp 0x124c5
movq (%r13), %r15
leaq 0x24c6f(%rip), %rax     # 0x37208
movq (%rax), %r12
movq 0x10(%rbx), %rdi
callq 0x4ac7
leaq 0x1b7a5(%rip), %rsi     # 0x2dd51
movq %r14, %rdi
movq %r15, %rdx
movq %r12, %rcx
movl %ebp, %r8d
movq %rax, %r9
xorl %eax, %eax
callq 0x31a0
jmp 0x124c5