Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
checkedc-v0.7.pdf | 2018-02-15 | 1.3 MB | |
README.md | 2018-02-15 | 1.2 kB | |
Version 0.7 of the Checked C specification.tar.gz | 2018-02-15 | 351.8 kB | |
Version 0.7 of the Checked C specification.zip | 2018-02-15 | 429.5 kB | |
Totals: 4 Items | 2.1 MB | 0 |
The main improvement in Version 0.7 is adding support for checked strings and checked pointers to null-terminated arrays.
The improvements and changes include:
- Add types for checked null-terminated arrays (nt_checked
) and checked pointers to null-terminated arrays (nt_array_ptr
)
- Extend typing rules to allow string and array literals to be used where expressions with checked pointer types are expected.
- Require initializers for variables with checked pointer types or struct or array types that contain checked pointers.
- Describe handling of initializer expressions involving checked pointers.
- Revise rules for implicit conversions between checked pointer types. Allow conversions to/from void pointers for now.
- Change syntax for bounds cast operators.
- Remove span type.
- Rename bounds(none)
to bounds(unknown)
.
- Describe static checking rules for return statements.
- Disallow array_ptrs
of function types.
- Various wording clean ups.
Caveats:
A non-null value at the upper bound an nt_array_ptr
allows the bounds of the nt_array_ptr
to be widened. The flow analysis for widening bounds still needs to be described in detail.