One of my gripes with synthesis engines is that they do this and report
it in warnings. When writing software I want my code to be error and
warning free. But even if I code to the bit level, there are constructs
added by the synthesis engine that are part of some macro which are
optimized away. An example is counters. The macros used in synthesis
have carries out. If they aren't used the tool reports that as an
output to be optimized away in a warning. So I end up with a list of
warnings I have to verify against before releasing any iteration of the
design for testing. What a PITA. I suppose if I wanted to spend some
time with it I could write a script that processed the report for any
mismatches in the warnings.
Maybe this is overkill, but that is the way I code in C (not that I do
that anymore) and it has proven valuable at times.
--
Rick C