File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed
crackers_python/crackers/config Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -189,10 +189,17 @@ def serialize_state_constraints(value, _info):
189189 "size" : mem .size ,
190190 "value" : mem .value ,
191191 }
192+ register_valuations = [v for v in filtered if isinstance (v , RegisterValuation )]
193+ if register_valuations :
194+ keys = [reg .name for reg in register_valuations ]
195+ if len (keys ) > len (set (keys )):
196+ import warnings
197+
198+ warnings .warn (
199+ "Multiple register valuation constraints found for a single register; only the last will be serialized."
200+ )
192201 transformed = {
193- "register" : {
194- v .name : v .value for v in filtered if isinstance (v , RegisterValuation )
195- },
202+ "register" : {v .name : v .value for v in register_valuations },
196203 "memory" : memory_dict ,
197204 "pointer" : {
198205 v .reg : v .value
Original file line number Diff line number Diff line change 11from pydantic import BaseModel
2- from crackers .config .constraint import ConstraintConfig , CustomStateConstraint , \
3- CustomTransitionConstraint
2+ from crackers .config .constraint import (
3+ ConstraintConfig ,
4+ CustomStateConstraint ,
5+ CustomTransitionConstraint ,
6+ )
47from crackers .config .library import LibraryConfig
58from crackers .config .meta import MetaConfig
69from crackers .config .sleigh import SleighConfig
You can’t perform that action at this time.
0 commit comments