From ba01589dfd66578df327fdee30e1d802a38c81cf Mon Sep 17 00:00:00 2001 From: thk123 Date: Tue, 24 Jul 2018 13:55:25 +0100 Subject: [PATCH] Add guidelines for using irepts in the code base --- CODING_STANDARD.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CODING_STANDARD.md b/CODING_STANDARD.md index c218cdf859..c0c2cd724f 100644 --- a/CODING_STANDARD.md +++ b/CODING_STANDARD.md @@ -194,6 +194,12 @@ Formatting is enforced using clang-format. For more information about this, see which safely manages the pointer. As such, `new` should only be used in constructors, and `delete` in destructors. Never use `malloc` or `free`. +# CProver conventions +- Avoid if at all possible using irept methods like `get(ID_name)`, instead cast + to a derived type (e.g. `class_typet`) and use the wrapper method `get_name` +- Use `can_cast_type`/`can_cast_expr` instead of directly checking the `id()` + of an `irept`. + # Architecture-specific code - Avoid if possible. - Use `__LINUX__`, `__MACH__`, and `_WIN32` to distinguish the architectures.