Use cell name for btor bad state props when it is a public name
authorClifford Wolf <clifford@clifford.at>
Thu, 14 Nov 2019 10:57:38 +0000 (11:57 +0100)
committerClifford Wolf <clifford@clifford.at>
Thu, 14 Nov 2019 10:57:38 +0000 (11:57 +0100)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
backends/btor/btor.cc

index 2babd454c3d1d4d0013a3685d0cbbafe6149507f..c1da4b1272bb97e0aa051e9d8dbd9e43f9bcd040 100644 (file)
@@ -1070,15 +1070,11 @@ struct BtorWorker
                                        bad_properties.push_back(nid_en_and_not_a);
                                } else {
                                        int nid = next_nid++;
-
-                                       string infostr =
-                                               cell->attributes.count("\\src")
-                                               ? cell->attributes.at("\\src")
-                                               .decode_string()
-                                               .c_str()
-                                               : log_id(cell);
-
-                                       std::replace(infostr.begin(), infostr.end(), ' ', '_');
+                                       string infostr = log_id(cell);
+                                       if (infostr[0] == '$' && cell->attributes.count("\\src")) {
+                                               infostr = cell->attributes.at("\\src").decode_string().c_str();
+                                               std::replace(infostr.begin(), infostr.end(), ' ', '_');
+                                       }
                                        btorf("%d bad %d %s\n", nid, nid_en_and_not_a, infostr.c_str());
                                }