// File: /workspace/github_c_makefile_star2_O0/theovosse[P]llgen/llgen.c
// Function: VerifyTokenOverlap
static void VerifyTokenOverlap(ESet oTokenSet) {
	int nrTokens = 0;
	ESet tokenSet = oTokenSet;
	ESet token;

	while (tokenSet != NULL) {
        int tokenIndex = (int) ((Answer) tokenSet->element)->info;
        if (tokenIndex != -1) {
            /* Ignore overlap with endOfInput/IGNORE, since endOfInput can't
               happen, and IGNORE is skipped during parsing when the overlapping
               token is not in the expected set. */
            nrTokens++;
        }
		tokenSet = tokenSet->next;
	}
	if (nrTokens > 1) {
		fprintf(stderr, "Overlap between tokens:\n");
		for (tokenSet = oTokenSet; tokenSet != NULL; tokenSet = tokenSet->next) {
			int tokenIndex = (int) ((Answer) tokenSet->element)->info;
			Name name = TokenIndexName(tokenIndex, true);
			TREE node = InsertNodeSingle(&overlap, name, NULL, (TreeCmp) NameCmp);
			TREE nOverlap = GetInfo(node);
			fprintf(stderr, "%s:%d: token %d: %s\n", inputFileName, name->lineNr, tokenIndex, name->name);
			for (token = oTokenSet; token != NULL; token = token->next) {
				InsertNodeSingle(&nOverlap, TokenIndexName((int) ((Answer) token->element)->info, true), NULL, (TreeCmp) NameCmp);
			}
			SetInfo(node, nOverlap);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x924d
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
je 0x923f
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x921b
cmpl $0x1, -0xc(%rbp)
jle 0x9369
movq 0x16d9a(%rip), %rax     # 0x1fff8
movq (%rax), %rdi
leaq 0x10623(%rip), %rsi     # 0x1988b
movb $0x0, %al
callq 0x3140
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x9367
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x9110
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rsi
leaq 0x17b14(%rip), %rdi     # 0x20dc0
xorl %eax, %eax
movl %eax, %edx
leaq -0x5b57(%rip), %rcx     # 0x3760
callq 0xfc60
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
callq 0x103d0
movq %rax, -0x40(%rbp)
movq 0x16d24(%rip), %rax     # 0x1fff8
movq (%rax), %rdi
movq 0x16e9a(%rip), %rdx     # 0x20178
movq -0x30(%rbp), %rax
movl 0x20(%rax), %ecx
movl -0x28(%rbp), %r8d
movq -0x30(%rbp), %rax
movq (%rax), %r9
leaq 0x105ad(%rip), %rsi     # 0x198a4
movb $0x0, %al
callq 0x3140
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x9349
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movl %eax, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x9110
movq %rax, %rsi
leaq -0x40(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
leaq -0x5bd6(%rip), %rcx     # 0x3760
callq 0xfc60
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x9306
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x103b0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x9277
jmp 0x9369
addq $0x40, %rsp
popq %rbp
retq
nop