Programs might contain intentional truncation at runtime, such as when obtaining a hash value from a pointer or integer. To avoid runtime failures on these truncations, you can explicitly mask off the value:
ch = (int_val & 0xff);
Note that the +check=all option does not imply +check=truncate. To enable +check=truncate, you must explicitly specify it.
+check=truncate:explicit
This option turns on runtime checks for truncation on explicit user casts of integral values, such as (char)int_val.
+check=truncate:implicit
This option turns on runtime checks for truncation on
+check=truncate
This option turns on runtime checks for both explicit cast and implicit conversion truncation.
+check=uninit
This option checks for a use of a stack variable before it is defined. If such a use is detected, an error message is emitted and the program is aborted. The check is done by adding an internal flag variable to track the definition and use of user variables.
If the +check=bounds:pointer is on, +check=uninit will check pointer access for uninitialized memory read (UMR). To enable checking, the runtime system will initialize the heap objects and stack variables with a special pattern. If the pointer accesses an area containing the specified pattern for the specified length, then it assumes the read is UMR. To minimize UMR false positives, the user may change the special pattern and number of bytes to check by using RTC_UMR environment variable:
RTC_UMR=[INIT=0xnn][:CHECK_SIZE=sz]
where:
•INIT specifies the char type value used to initialize heap/local objects. The default pattern is 0xDE.
•CHECK_SIZE specifies the minimum number of bytes used to check for UMR. The default number is
2.
Also see the +Oinitcheck option to enable compile time warnings for variables that may be used before they are set.
+check=malloc
This option enables memory leak and heap corruption checks at runtime. It will cause the user program to abort for writes beyond boundaries of heap objects, free or realloc calls for a pointer that is not a valid heap object, and
The +check=malloc option works by intercepting all heap allocation and deallocation calls. This is done by the use of a debug malloc library, librtc.so. The option works for programs that use the system malloc or for
13