Tags: purs3lab/HandlERR
Tags
Disallow some implicit void pointer conversions in checked scopes (co… …rrectcomputation#590) In memory-safe checked scopes, disallow implicit conversions to and from void pointer types when the non-void pointer type points to data that contains a checked pointer. Disallow these conversions at assignments, call arguments, return statements, and arms of conditional expressions. Memory-safe checked scopes are currently the default kind of checked scopes. This addresses part of Github issue correctcomputation#571. Also do some cleanup within the compiler. Rename the checked scope specifier for the default checked scope from "BoundsAndTypes" to "Memory". The original name is incorrect for the kind of safety that will be provided. Testing: - Add new tests to the Checked C repo for these cases. - Passed automated testing on Windows and Linux.
Fix compiler assert about bounds expression already existing. (correc… …tcomputation#537) The children() method for iterating over chidren of AST cast expressions was incorrectly including compiler-generated bounds expressions. Child AST nodes should be nodes that appear in the source program and additional information shouldn't be treated as child nodes. There were complex IR invariants about when a bounds expression stored within a cast expression was child AST node or not. This change fixes the bug and simplifies the AST invariants. This fixes issue correctcomputation#526. for cast expressions, there is now one entry for bounds expressions declared as part of the program. There are separate nodes for normalized bounds and inferred bounds. Testing: - Added a new regression test case for the failing case. - Passes existing Checked C and clang Checked C tests.
Update README.md Add a link to the compiler user manual. Move some other information to the wiki.