Skip to content

Commit c4fa719

Browse files
committed
revert last two commits; MSVC doesn't like to statically allocate flexible arrays
1 parent 6246c65 commit c4fa719

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

src/ast/ast.h

-4
Original file line numberDiff line numberDiff line change
@@ -707,8 +707,6 @@ struct app_flags {
707707
app_flags() : m_depth(1), m_ground(1), m_has_quantifiers(0), m_has_labels(0) {}
708708
};
709709

710-
namespace smt { class tmp_enode; }
711-
712710
class app : public expr {
713711
friend class ast_manager;
714712

@@ -722,10 +720,8 @@ class app : public expr {
722720
}
723721

724722
friend class tmp_app;
725-
friend class smt::tmp_enode;
726723

727724
app(func_decl * decl, unsigned num_args, expr * const * args);
728-
app() : expr(AST_APP) {}
729725
public:
730726
func_decl * get_decl() const { return m_decl; }
731727
family_id get_family_id() const { return get_decl()->get_family_id(); }

src/smt/smt_enode.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -327,8 +327,10 @@ namespace smt {
327327
}
328328

329329
tmp_enode::tmp_enode():
330+
m_app(0),
330331
m_capacity(0),
331332
m_enode_data(nullptr) {
333+
SASSERT(m_app.get_app()->get_decl() == 0);
332334
set_capacity(5);
333335
}
334336

@@ -344,7 +346,7 @@ namespace smt {
344346
m_enode_data = alloc_svect(char, sz);
345347
memset(m_enode_data, 0, sz);
346348
enode * n = get_enode();
347-
n->m_owner = &m_app;
349+
n->m_owner = m_app.get_app();
348350
n->m_root = n;
349351
n->m_next = n;
350352
n->m_class_size = 1;
@@ -356,11 +358,12 @@ namespace smt {
356358
if (num_args > m_capacity)
357359
set_capacity(num_args * 2);
358360
enode * r = get_enode();
359-
m_app.m_decl = f;
360-
m_app.m_num_args = num_args;
361+
m_app.set_decl(f);
362+
m_app.set_num_args(num_args);
361363
r->m_commutative = num_args == 2 && f->is_commutative();
362364
memcpy(get_enode()->m_args, args, sizeof(enode*)*num_args);
363365
return r;
364366
}
365367

366368
};
369+

src/smt/smt_enode.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ namespace smt {
456456
void unmark_enodes2(unsigned num_enodes, enode * const * enodes);
457457

458458
class tmp_enode {
459-
app m_app;
459+
tmp_app m_app;
460460
unsigned m_capacity;
461461
char * m_enode_data;
462462
enode * get_enode() { return reinterpret_cast<enode*>(m_enode_data); }

0 commit comments

Comments
 (0)