Gives an opportunity to execute the code on bit level,
assigning symbolic values to the variables which don't have initial values.
Supports only CRC specific operations.

Example:

uint8_t crc;
uint8_t pol = 1;
crc = crc ^ pol;

during symbolic execution crc's value will be:
crc(8), crc(7), ... crc(1), crc(0) ^ 1

  gcc/

    * Makefile.in (OBJS): Add sym-exec/sym-exec-expression.o,
    sym-exec/sym-exec-state.o, sym-exec/sym-exec-condition.o.
    * configure (sym-exec): New subdir.

  gcc/sym-exec/

    * sym-exec-condition.cc: New file.
    * sym-exec-condition.h: New file.
    * sym-exec-expression-is-a-helper.h: New file.
    * sym-exec-expression.cc: New file.
    * sym-exec-expression.h: New file.
    * sym-exec-state.cc: New file.
    * sym-exec-state.h: New file.

Signed-off-by: Mariam Arutunian <mariamarutun...@gmail.com>
Author: Matevos Mehrabyan <matevosmehrab...@gmail.com>
Co-authored-by: Mariam Arutunian <mariamarutun...@gmail.com>
Mentored-by: Jeff Law <j...@ventanamicro.com>

Reply via email to