opt_dff: fix sequence point copy paste bug
authorAustin Seipp <aseipp@pobox.com>
Tue, 4 Jan 2022 16:49:54 +0000 (10:49 -0600)
committerMarcelina Kościelnicka <mwk@0x04.net>
Tue, 4 Jan 2022 17:18:08 +0000 (18:18 +0100)
Newer GCCs emit the following warning for opt_dff:

    passes/opt/opt_dff.cc:560:17: warning: operation on ‘ff.Yosys::FfData::has_clk’ may be undefined [-Wsequence-point]
      560 |      ff.has_clk = ff.has_ce = ff.has_clk = false;
          |      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Which is correct: the order of whether the read or write of has_clk
occurs first is undefined since there is no sequence point between them.

This is almost certainly just a typo/copy paste error and objectively
wrong, so just fix it.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
passes/opt/opt_dff.cc

index 38faba15ab5ba9d12a3aad224a2d6d7b1164f53b..98b66dee388231a09dda9dd2f97cb411d8db794e 100644 (file)
@@ -557,7 +557,7 @@ struct OptDffWorker
                                        // The D input path is effectively useless, so remove it (this will be a const-input D latch, SR latch, or a const driver).
                                        log("Handling D = Q on %s (%s) from module %s (removing D path).\n",
                                                        log_id(cell), log_id(cell->type), log_id(module));
-                                       ff.has_clk = ff.has_ce = ff.has_clk = false;
+                                       ff.has_clk = ff.has_ce = false;
                                        changed = true;
                                }
                        }