You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The FunC compiler crashes with a fatal internal assertion if a tensor exceeds 254 elements. The parser and type checker currently allow tensors of arbitrary size without checks, but an internal analyzer asserts a maximum size, causing a sudden crash instead of a proper user-facing error.
fatal: Assertion failed at analyzer.cpp:46: k <= 254 && n <= 0x7fff00
Cause: split_vars() in crypto/func/analyzer.cpp enforces a tensor component limit (max 254 elements) using an internal assertion. Since no earlier check exists, larger tensors trigger this assertion, resulting in an abrupt crash.
Expected behavior:
The compiler should detect overly large tensors during parsing or type-checking, rejecting them gracefully with a clear user-facing compilation error instead of crashing.
The FunC compiler crashes with a fatal internal assertion if a tensor exceeds 254 elements. The parser and type checker currently allow tensors of arbitrary size without checks, but an internal analyzer asserts a maximum size, causing a sudden crash instead of a proper user-facing error.
Minimal Example:
Compiler crash (observed output):
Cause:
split_vars()
incrypto/func/analyzer.cpp
enforces a tensor component limit (max 254 elements) using an internal assertion. Since no earlier check exists, larger tensors trigger this assertion, resulting in an abrupt crash.Expected behavior:
The compiler should detect overly large tensors during parsing or type-checking, rejecting them gracefully with a clear user-facing compilation error instead of crashing.
LLM Fuzzing discovery (see tact-lang/tact#3123)
The text was updated successfully, but these errors were encountered: