aboutsummaryrefslogtreecommitdiff
path: root/gcc/symb-execute-all-paths.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/symb-execute-all-paths.h')
-rw-r--r--gcc/symb-execute-all-paths.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/symb-execute-all-paths.h b/gcc/symb-execute-all-paths.h
index 7177a3f..4d07498 100644
--- a/gcc/symb-execute-all-paths.h
+++ b/gcc/symb-execute-all-paths.h
@@ -94,7 +94,11 @@ class crc_symb_execution {
to calculate the polynomial. */
bool execute_crc_loop (loop *, gphi *, gphi *, bool);
+ /* Returns true if the state matches the LFSR, otherwise - false. */
+ bool state_matches_lfsr (const vec<value*> &, const vec<value*> &);
+
public:
+
/* Symbolically execute the function and keep final states. */
bool execute_function (function *);
@@ -102,6 +106,9 @@ class crc_symb_execution {
with concrete values. */
vec<value*> * extract_poly_and_create_lfsr (loop *, gphi *, gphi *, bool);
+ /* Returns true if all states match the LFSR, otherwise - false. */
+ bool states_match_lfsr (vec<value*> *lfsr);
+
crc_symb_execution ()
{
/* Reserve memory for the vectors of states. */