Skip to content

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 07 Aug 20:43
· 32 commits to trunk since this release

Changed

  • -c=native/-m/-G: a VM-only safety/debug flag (--checked-pointers,
    --bounds-checks, -g/--debug, etc.) used to be a hard compile-time
    error under -c=native and a silent no-op under -m/-G. Both now warn
    and continue instead — these flags are genuinely inert in modes that hand
    off to the host cc or serialize plain C, not a real conflict — naming
    every ignored flag in the message. #pragma cccc config(...) keys are
    likewise silently dropped under -c=native; that now emits a
    -Wignored-features diagnostic (-Wall) at the pragma site instead of
    staying quiet (#924)

Fixed

  • -G serializer: reflection API file-scope anonymous globals built via
    CompoundLiteral/InitArray/InitStruct (reflect_new_anon_gvar()'s
    other two call sites, besides MakeStringLiteral which #925 already
    covered) no longer fall through as an undefined .L..N reference —
    rename_anon_globals() now runs under -G too, and the -G emit path
    forward-declares macro-generated globals ahead of any generated function
    body that references them
  • -c=native/-m/-G serializer: pointer arithmetic whose result type is
    an array (e.g. a reflection MakeSubscript on an array-typed anon
    global) no longer casts to the array type itself ((int [3])..., invalid
    C) — casts to pointer-to-element instead
  • tools/testing/c4.py: the c4 round-trip skip check tested for -M
    (--memory-leak-detection) instead of -m (--dump-expanded) when
    deciding whether a test's output mode was round-trip-incompatible — a test
    combining -m with the c4 suite silently mis-saved serialized C source as
    a .c4 bytecode file instead of being skipped, then failed to reload