diff --git a/vlib/v/ast/comptime_valid_idents.v b/vlib/v/ast/comptime_valid_idents.v index dac7d9e9330079..8d52d51dfef192 100644 --- a/vlib/v/ast/comptime_valid_idents.v +++ b/vlib/v/ast/comptime_valid_idents.v @@ -10,7 +10,7 @@ pub const valid_comptime_if_cpu_features = ['x64', 'x32', 'little_endian', 'big_ pub const valid_comptime_if_other = ['apk', 'js', 'debug', 'prod', 'test', 'glibc', 'prealloc', 'no_bounds_checking', 'freestanding', 'threads', 'js_node', 'js_browser', 'js_freestanding', 'interpreter', 'es5', 'profile', 'wasm32', 'wasm32_emscripten', 'wasm32_wasi', 'fast_math', - 'native'] + 'native', 'autofree'] pub const valid_comptime_not_user_defined = all_valid_comptime_idents() pub const valid_comptime_compression_types = ['none', 'zlib'] diff --git a/vlib/v/checker/comptime.v b/vlib/v/checker/comptime.v index 1b4ea929bc0f48..e8ffceb5e21bb8 100644 --- a/vlib/v/checker/comptime.v +++ b/vlib/v/checker/comptime.v @@ -919,6 +919,9 @@ fn (mut c Checker) comptime_if_branch(mut cond ast.Expr, pos token.Pos) Comptime 'no_bounds_checking' { return if cname in c.pref.compile_defines_all { .eval } else { .skip } } + 'autofree' { + return if c.pref.autofree { .eval } else { .skip } + } 'freestanding' { return if c.pref.is_bare && !c.pref.output_cross_c { .eval } else { .skip } } diff --git a/vlib/v/gen/c/comptime.v b/vlib/v/gen/c/comptime.v index f3256b104296c1..ff09847e2344c4 100644 --- a/vlib/v/gen/c/comptime.v +++ b/vlib/v/gen/c/comptime.v @@ -1098,6 +1098,9 @@ fn (mut g Gen) comptime_if_to_ifdef(name string, is_comptime_option bool) !strin 'freestanding' { return '_VFREESTANDING' } + 'autofree' { + return '_VAUTOFREE' + } // architectures: 'amd64' { return '__V_amd64' diff --git a/vlib/v/gen/js/comptime.v b/vlib/v/gen/js/comptime.v index 012bfba034f853..76a32cb989fd28 100644 --- a/vlib/v/gen/js/comptime.v +++ b/vlib/v/gen/js/comptime.v @@ -286,6 +286,9 @@ fn (mut g JsGen) comptime_if_to_ifdef(name string, is_comptime_option bool) !str 'freestanding' { return '_VFREESTANDING' } + 'autofree' { + return '_VAUTOFREE' + } // architectures: 'amd64' { return '(\$process.arch == "x64")'