summaryrefslogtreecommitdiff
path: root/src/printer/smt2/smt2_printer.cpp
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2019-05-30 11:05:42 -0700
committerGitHub <noreply@github.com>2019-05-30 11:05:42 -0700
commitbe2a85f84fec4e926704f4788c55ec2ba805de39 (patch)
tree355f1fdbb6ab858409a324d035fb4faaab4c6b54 /src/printer/smt2/smt2_printer.cpp
parent60173f62a82b4d71f2fbac51880d44d883ae5109 (diff)
Quote symbol when printing empty symbol name (#3025)
When printing an empty symbol name, which can appear in an SMT2 file as `||`, we were printing the empty string instead of quoting the symbol. This commit fixes the issue and adds a regression test.
Diffstat (limited to 'src/printer/smt2/smt2_printer.cpp')
-rw-r--r--src/printer/smt2/smt2_printer.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/printer/smt2/smt2_printer.cpp b/src/printer/smt2/smt2_printer.cpp
index 380004d02..66d36fe4c 100644
--- a/src/printer/smt2/smt2_printer.cpp
+++ b/src/printer/smt2/smt2_printer.cpp
@@ -91,7 +91,11 @@ void Smt2Printer::toStream(
static std::string maybeQuoteSymbol(const std::string& s) {
// this is the set of SMT-LIBv2 permitted characters in "simple" (non-quoted) symbols
- if(s.find_first_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@$%^&*_-+=<>.?/") != string::npos) {
+ if (s.find_first_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
+ "0123456789~!@$%^&*_-+=<>.?/")
+ != string::npos
+ || s.empty())
+ {
// need to quote it
stringstream ss;
ss << '|' << s << '|';
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback