mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-07-05 22:50:23 +00:00
Fixes incorrect detection of unused _UNSIGNED and fixed length vars.
This commit is contained in:
parent
d194cc8039
commit
639b7549d7
|
@ -112,7 +112,7 @@ DIM SHARED ConsoleMode, No_C_Compile_Mode, Cloud, NoIDEMode
|
||||||
DIM SHARED VerboseMode AS _BYTE, CMDLineFile AS STRING
|
DIM SHARED VerboseMode AS _BYTE, CMDLineFile AS STRING
|
||||||
|
|
||||||
DIM SHARED totalUnusedVariables AS LONG, usedVariableList$, bypassNextVariable AS _BYTE
|
DIM SHARED totalUnusedVariables AS LONG, usedVariableList$, bypassNextVariable AS _BYTE
|
||||||
DIM SHARED warning$(100), totalWarnings AS LONG
|
DIM SHARED totalWarnings AS LONG
|
||||||
DIM SHARED ExeIconSet AS LONG
|
DIM SHARED ExeIconSet AS LONG
|
||||||
DIM SHARED VersionInfoSet AS _BYTE
|
DIM SHARED VersionInfoSet AS _BYTE
|
||||||
|
|
||||||
|
@ -1434,6 +1434,7 @@ UserDefineCount = 6
|
||||||
usedVariableList$ = ""
|
usedVariableList$ = ""
|
||||||
totalUnusedVariables = 0
|
totalUnusedVariables = 0
|
||||||
totalWarnings = 0
|
totalWarnings = 0
|
||||||
|
REDIM SHARED warning$(100)
|
||||||
uniquenumbern = 0
|
uniquenumbern = 0
|
||||||
|
|
||||||
''create a type for storing memory blocks
|
''create a type for storing memory blocks
|
||||||
|
@ -11634,7 +11635,7 @@ OPEN compilelog$ FOR OUTPUT AS #1: CLOSE #1 'Clear log
|
||||||
|
|
||||||
'OPEN "unusedVariableList.txt" FOR OUTPUT AS #1: CLOSE #1
|
'OPEN "unusedVariableList.txt" FOR OUTPUT AS #1: CLOSE #1
|
||||||
'OPEN "unusedVariableList.txt" FOR BINARY AS #1
|
'OPEN "unusedVariableList.txt" FOR BINARY AS #1
|
||||||
'PUT #1, 1, usedVariableList$
|
'PUT #1, 1, warning$(1)
|
||||||
'CLOSE #1
|
'CLOSE #1
|
||||||
|
|
||||||
IF idemode THEN GOTO ideret5
|
IF idemode THEN GOTO ideret5
|
||||||
|
@ -17788,24 +17789,24 @@ FUNCTION findid& (n2$)
|
||||||
IF t = 0 THEN
|
IF t = 0 THEN
|
||||||
t = id.arraytype
|
t = id.arraytype
|
||||||
IF t AND ISUDT THEN
|
IF t AND ISUDT THEN
|
||||||
manageVariableList "", scope$ + "ARRAY_UDT_" + RTRIM$(id.n), 2
|
manageVariableList "", scope$ + "ARRAY_UDT_" + RTRIM$(id.n), 1
|
||||||
ELSE
|
ELSE
|
||||||
n$ = id2fulltypename$
|
n$ = id2shorttypename$
|
||||||
IF LEFT$(n$, 1) = "_" THEN
|
IF LEFT$(n$, 1) = "_" THEN
|
||||||
manageVariableList "", scope$ + "ARRAY" + n$ + "_" + RTRIM$(id.n), 2
|
manageVariableList "", scope$ + "ARRAY" + n$ + "_" + RTRIM$(id.n), 2
|
||||||
ELSE
|
ELSE
|
||||||
manageVariableList "", scope$ + "ARRAY_" + n$ + "_" + RTRIM$(id.n), 2
|
manageVariableList "", scope$ + "ARRAY_" + n$ + "_" + RTRIM$(id.n), 3
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
ELSE
|
ELSE
|
||||||
IF t AND ISUDT THEN
|
IF t AND ISUDT THEN
|
||||||
manageVariableList "", scope$ + "UDT_" + RTRIM$(id.n), 2
|
manageVariableList "", scope$ + "UDT_" + RTRIM$(id.n), 4
|
||||||
ELSE
|
ELSE
|
||||||
n$ = id2fulltypename$
|
n$ = id2shorttypename$
|
||||||
IF LEFT$(n$, 1) = "_" THEN
|
IF LEFT$(n$, 1) = "_" THEN
|
||||||
manageVariableList "", scope$ + MID$(n$, 2) + "_" + RTRIM$(id.n), 2
|
manageVariableList "", scope$ + MID$(n$, 2) + "_" + RTRIM$(id.n), 5
|
||||||
ELSE
|
ELSE
|
||||||
manageVariableList "", scope$ + n$ + "_" + RTRIM$(id.n), 2
|
manageVariableList "", scope$ + n$ + "_" + RTRIM$(id.n), 6
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
@ -21419,7 +21420,7 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
'print "setUDTrefer:"+r$,e$
|
'print "setUDTrefer:"+r$,e$
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
manageVariableList "", scope$ + n$, 1
|
manageVariableList "", scope$ + n$, 7
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -21454,7 +21455,7 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
PRINT #12, cleanupstringprocessingcall$ + "0);"
|
PRINT #12, cleanupstringprocessingcall$ + "0);"
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
manageVariableList "", r$, 1
|
manageVariableList "", r$, 8
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -21530,7 +21531,7 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
manageVariableList "", r$, 1
|
manageVariableList "", r$, 9
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -21562,7 +21563,7 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
IF arrayprocessinghappened THEN arrayprocessinghappened = 0
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
manageVariableList "", r$, 1
|
manageVariableList "", r$, 10
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -21591,7 +21592,7 @@ SUB setrefer (a2$, typ2 AS LONG, e2$, method AS LONG)
|
||||||
tlayout$ = tl$
|
tlayout$ = tl$
|
||||||
|
|
||||||
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
IF LEFT$(r$, 1) = "*" THEN r$ = MID$(r$, 2)
|
||||||
manageVariableList "", r$, 1
|
manageVariableList "", r$, 11
|
||||||
|
|
||||||
EXIT SUB
|
EXIT SUB
|
||||||
END IF 'variable
|
END IF 'variable
|
||||||
|
@ -23243,6 +23244,45 @@ FUNCTION id2fulltypename$
|
||||||
id2fulltypename$ = a$
|
id2fulltypename$ = a$
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
|
FUNCTION id2shorttypename$
|
||||||
|
t = id.t
|
||||||
|
IF t = 0 THEN t = id.arraytype
|
||||||
|
size = id.tsize
|
||||||
|
bits = t AND 511
|
||||||
|
IF t AND ISUDT THEN
|
||||||
|
a$ = RTRIM$(udtxcname(t AND 511))
|
||||||
|
id2shorttypename$ = a$: EXIT FUNCTION
|
||||||
|
END IF
|
||||||
|
IF t AND ISSTRING THEN
|
||||||
|
IF t AND ISFIXEDLENGTH THEN a$ = "STRING" + str2(size) ELSE a$ = "STRING"
|
||||||
|
id2shorttypename$ = a$: EXIT FUNCTION
|
||||||
|
END IF
|
||||||
|
IF t AND ISOFFSETINBITS THEN
|
||||||
|
IF t AND ISUNSIGNED THEN a$ = "_U" ELSE a$ = "_"
|
||||||
|
IF bits > 1 THEN a$ = a$ + "BIT" + str2(bits) ELSE a$ = a$ + "BIT1"
|
||||||
|
id2shorttypename$ = a$: EXIT FUNCTION
|
||||||
|
END IF
|
||||||
|
IF t AND ISFLOAT THEN
|
||||||
|
IF bits = 32 THEN a$ = "SINGLE"
|
||||||
|
IF bits = 64 THEN a$ = "DOUBLE"
|
||||||
|
IF bits = 256 THEN a$ = "_FLOAT"
|
||||||
|
ELSE 'integer-based
|
||||||
|
IF bits = 8 THEN
|
||||||
|
IF (t AND ISUNSIGNED) THEN a$ = "_UBYTE" ELSE a$ = "_BYTE"
|
||||||
|
END IF
|
||||||
|
IF bits = 16 THEN
|
||||||
|
IF (t AND ISUNSIGNED) THEN a$ = "UINTEGER" ELSE a$ = "INTEGER"
|
||||||
|
END IF
|
||||||
|
IF bits = 32 THEN
|
||||||
|
IF (t AND ISUNSIGNED) THEN a$ = "ULONG" ELSE a$ = "LONG"
|
||||||
|
END IF
|
||||||
|
IF bits = 64 THEN
|
||||||
|
IF (t AND ISUNSIGNED) THEN a$ = "_UINTEGER64" ELSE a$ = "_INTEGER64"
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
id2shorttypename$ = a$
|
||||||
|
END FUNCTION
|
||||||
|
|
||||||
FUNCTION symbol2fulltypename$ (s2$)
|
FUNCTION symbol2fulltypename$ (s2$)
|
||||||
'note: accepts both symbols and type names
|
'note: accepts both symbols and type names
|
||||||
s$ = s2$
|
s$ = s2$
|
||||||
|
@ -24908,16 +24948,17 @@ SUB manageVariableList (name$, __cname$, action AS _BYTE)
|
||||||
usedVariableList$ = usedVariableList$ + CHR$(1) + MKL$(linenumber) + CHR$(2)
|
usedVariableList$ = usedVariableList$ + CHR$(1) + MKL$(linenumber) + CHR$(2)
|
||||||
usedVariableList$ = usedVariableList$ + s$ + name$ + CHR$(10)
|
usedVariableList$ = usedVariableList$ + s$ + name$ + CHR$(10)
|
||||||
totalUnusedVariables = totalUnusedVariables + 1
|
totalUnusedVariables = totalUnusedVariables + 1
|
||||||
'usedVariableList$ = usedVariableList$ + "Adding " + cname$ + " at line" + STR$(linenumber) + CHR$(10)
|
'warning$(1) = warning$(1) + "Adding " + cname$ + " at line" + STR$(linenumber) + CHR$(10)
|
||||||
END IF
|
END IF
|
||||||
CASE ELSE 'find and remove
|
CASE ELSE 'find and remove
|
||||||
|
|
||||||
s$ = CHR$(3) + MKI$(LEN(cname$)) + cname$ + CHR$(5)
|
s$ = CHR$(3) + MKI$(LEN(cname$)) + cname$ + CHR$(5)
|
||||||
findItem = INSTR(usedVariableList$, s$)
|
findItem = INSTR(usedVariableList$, s$)
|
||||||
IF findItem THEN
|
IF findItem THEN
|
||||||
ASC(usedVariableList$, findItem) = 4
|
ASC(usedVariableList$, findItem) = 4
|
||||||
totalUnusedVariables = totalUnusedVariables - 1
|
totalUnusedVariables = totalUnusedVariables - 1
|
||||||
END IF
|
END IF
|
||||||
'usedVariableList$ = usedVariableList$ + STR$(action) + " Searching " + cname$ + " at line" + STR$(linenumber) + CHR$(10)
|
'warning$(1) = warning$(1) + "Action:" + STR$(action) + " Searching " + cname$ + " at line" + STR$(linenumber) + CHR$(10)
|
||||||
END SELECT
|
END SELECT
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue