For the complete documentation index, see llms.txt. This page is also available as Markdown.

High-value warnings

GPC3004 — unreachable code

Remove code after unconditional return/flow termination or correct the branch.


GPC3005 / GPC3006 — removed function/combo

The item is unreachable. Confirm this is intentional rather than a missing call.


GPC3009 — parameter shadows global

Rename the parameter. Inside the function, the parameter wins.


GPC3012..GPC3017 — const array fits narrower type

Use the suggested narrower signed/unsigned width when it preserves intended values.


GPC6014 — assignment in condition

if(mode = 2) { }  // assignment
if(mode == 2) { } // comparison

GPC6015 / GPC6016 — division/modulus becomes zero

Review integer truncation and operand order.


GPC6017 — shift out of range

Live bit positions are 0..31.


GPC6018 — switch fallthrough

Add break or clearly document intentional fallthrough.


GPC6019..GPC6023 — unused/dead data

Remove genuinely unused runtime state, const data, or arguments. Unused const data still costs bytes.


GPC6030 — index call evaluated twice

Store a function result before indexing:


GPC6035 — possible stack overflow

Split giant nested expressions into intermediate globals, shorten deep call chains, and remove recursion. Globals and peak call/expression stack share the 1,024-slot VM ceiling; do not treat the 1,020 variable limit and 1,024 stack limit as independent pools.


GPC6036 — recursion

The compiler cannot prove worst-case stack depth. Prefer an iterative state machine.


GPC9002 — old sensitivity arguments

Use sensitivity(identifier, midpoint, sensitivity) only.

Last updated