Skip to content

Commit 823bf31

Browse files
fix #2664
Signed-off-by: Nikolaj Bjorner <[email protected]>
1 parent d0dac83 commit 823bf31

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/parsers/smt2/smt2parser.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,7 @@ namespace smt2 {
411411

412412
bool curr_id_is_underscore() const { SASSERT(curr_is_identifier()); return curr_id() == m_underscore; }
413413
bool curr_id_is_as() const { SASSERT(curr_is_identifier()); return curr_id() == m_as; }
414+
bool curr_id_is_reserved() const { return curr_id_is_underscore() || curr_id_is_as(); }
414415
bool curr_id_is_match() const { SASSERT(curr_is_identifier()); return curr_id() == m_match; }
415416
bool curr_id_is_case() const { return curr_id() == m_case; }
416417
bool curr_id_is_forall() const { SASSERT(curr_is_identifier()); return curr_id() == m_forall; }
@@ -427,10 +428,11 @@ namespace smt2 {
427428
if (!curr_is_identifier() || curr_id() != id)
428429
throw parser_exception(msg);
429430
next();
430-
}
431+
}
431432
void check_underscore_next(char const * msg) { check_id_next(m_underscore, msg); }
432433
void check_as_next(char const * msg) { check_id_next(m_as, msg); }
433434
void check_identifier(char const * msg) { if (!curr_is_identifier()) throw parser_exception(msg); }
435+
void check_nonreserved_identifier(char const * msg) { if (!curr_is_identifier() || curr_id_is_reserved()) throw parser_exception(msg); }
434436
void check_keyword(char const * msg) { if (!curr_is_keyword()) throw parser_exception(msg); }
435437
void check_string(char const * msg) { if (!curr_is_string()) throw parser_exception(msg); }
436438
void check_int(char const * msg) { if (!curr_is_int()) throw parser_exception(msg); }
@@ -2163,7 +2165,7 @@ namespace smt2 {
21632165
check_lparen_next("invalid sort declaration, parameters missing");
21642166
unsigned i = 0;
21652167
while (!curr_is_rparen()) {
2166-
check_identifier("invalid sort parameter, symbol or ')' expected");
2168+
check_nonreserved_identifier("invalid sort parameter, symbol or ')' expected");
21672169
m_sort_id2param_idx.insert(curr_id(), i);
21682170
i++;
21692171
next();
@@ -2214,7 +2216,7 @@ namespace smt2 {
22142216
SASSERT(curr_id() == m_declare_sort);
22152217
next();
22162218

2217-
check_identifier("invalid sort declaration, symbol expected");
2219+
check_nonreserved_identifier("invalid sort declaration, symbol expected");
22182220
symbol id = curr_id();
22192221
if (m_ctx.find_psort_decl(id) != nullptr)
22202222
throw parser_exception("invalid sort declaration, sort already declared/defined");
@@ -2239,7 +2241,7 @@ namespace smt2 {
22392241
SASSERT(curr_is_identifier());
22402242
SASSERT(curr_id() == m_define_sort);
22412243
next();
2242-
check_identifier("invalid sort definition, symbol expected");
2244+
check_nonreserved_identifier("invalid sort definition, symbol expected");
22432245
symbol id = curr_id();
22442246
if (m_ctx.find_psort_decl(id) != nullptr)
22452247
throw parser_exception("invalid sort definition, sort already declared/defined");
@@ -2260,7 +2262,7 @@ namespace smt2 {
22602262
SASSERT(curr_id() == (is_fun ? m_define_fun : m_model_add));
22612263
SASSERT(m_num_bindings == 0);
22622264
next();
2263-
check_identifier("invalid function/constant definition, symbol expected");
2265+
check_nonreserved_identifier("invalid function/constant definition, symbol expected");
22642266
symbol id = curr_id();
22652267
next();
22662268
unsigned sym_spos = symbol_stack().size();
@@ -2460,7 +2462,7 @@ namespace smt2 {
24602462
SASSERT(curr_is_identifier());
24612463
SASSERT(curr_id() == m_declare_fun);
24622464
next();
2463-
check_identifier("invalid function declaration, symbol expected");
2465+
check_nonreserved_identifier("invalid function declaration, symbol expected");
24642466
symbol id = curr_id();
24652467
next();
24662468
unsigned spos = sort_stack().size();
@@ -2479,7 +2481,7 @@ namespace smt2 {
24792481
SASSERT(curr_is_identifier());
24802482
SASSERT(curr_id() == m_declare_const);
24812483
next();
2482-
check_identifier("invalid constant declaration, symbol expected");
2484+
check_nonreserved_identifier("invalid constant declaration, symbol expected");
24832485
symbol id = curr_id();
24842486
next();
24852487
parse_sort("Invalid constant declaration");

src/util/mpz.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ Revision History:
4646
#define LEHMER_GCD
4747
#endif
4848

49+
4950
#if defined(_WINDOWS) && !defined(_M_ARM) && !defined(_M_ARM64)
5051
// This is needed for _tzcnt_u32 and friends.
5152
#include <immintrin.h>

0 commit comments

Comments
 (0)