commit 63f1cf6

Devine Lu Linvega  ·  2024-08-25 17:05:15 +0000 UTC
parent fc63281
(uxnasm) Fixed issue where some unused labels did not throw a warning
1 files changed,  +3, -2
+3, -2
 1@@ -219,6 +219,7 @@ makeref(char *label, char rune, Uint16 addr, Context *ctx)
 2 	if(label[0] == '{') {
 3 		lambda_stack[lambda_ptr++] = lambda_len;
 4 		r->name = push(makelambda(lambda_len++), 0);
 5+		if(label[1]) return error_asm("Label invalid");
 6 	} else if(label[0] == '&' || label[0] == '/') {
 7 		r->name = join(scope, '/', label + 1);
 8 	} else
 9@@ -380,7 +381,7 @@ build(char *rompath)
10 	if(!(dst = fopen(rompath, "wb")))
11 		return !error_top("Output file invalid", rompath);
12 	for(i = 0; i < labels_len; i++)
13-		if(labels[i].name[0] - 'A' > 25 && !labels[i].refs)
14+		if(!labels[i].refs && (unsigned char)(labels[i].name[0] - 'A') > 25)
15 			printf("-- Unused label: %s\n", labels[i].name);
16 	fwrite(data + PAGE, length - PAGE, 1, dst);
17 	printf(
18@@ -410,7 +411,7 @@ main(int argc, char *argv[])
19 {
20 	ptr = PAGE;
21 	copy("on-reset", scope, 0);
22-	if(argc == 2 && scmp(argv[1], "-v", 2)) return !printf("Uxnasm - Uxntal Assembler, 30 May 2024.\n");
23+	if(argc == 2 && scmp(argv[1], "-v", 2)) return !printf("Uxnasm - Uxntal Assembler, 25 Aug 2024.\n");
24 	if(argc != 3) return error_top("usage", "uxnasm [-v] input.tal output.rom");
25 	if(!assemble(argv[1])) return 1;
26 	if(!resolve(argv[2])) return 1;