vhdlpp: Minor correction for casting to integer.

This commit is contained in:
Maciej Suminski 2015-01-27 11:00:32 +01:00
parent 48265ecd9b
commit 51ce9f1a60
2 changed files with 3 additions and 8 deletions

View File

@ -501,7 +501,7 @@ class ExpInteger : public Expression {
void write_to_stream(std::ostream&fd); void write_to_stream(std::ostream&fd);
int emit(ostream&out, Entity*ent, ScopeBase*scope); int emit(ostream&out, Entity*ent, ScopeBase*scope);
int emit_package(std::ostream&out); int emit_package(std::ostream&out);
bool is_primary(void) const; bool is_primary(void) const { return true; }
bool evaluate(ScopeBase*scope, int64_t&val) const; bool evaluate(ScopeBase*scope, int64_t&val) const;
void dump(ostream&out, int indent = 0) const; void dump(ostream&out, int indent = 0) const;
virtual ostream& dump_inline(ostream&out) const; virtual ostream& dump_inline(ostream&out) const;

View File

@ -562,9 +562,9 @@ int ExpFunc::emit(ostream&out, Entity*ent, ScopeBase*scope)
out << ")"; out << ")";
} else if (name_ == "integer" && argv_.size() == 1) { } else if (name_ == "integer" && argv_.size() == 1) {
// Simply skip the function name, SystemVerilog takes care of out << "$signed(";
// rounding real numbers
errors += argv_[0]->emit(out, ent, scope); errors += argv_[0]->emit(out, ent, scope);
out << ")";
} else if (name_ == "std_logic_vector" && argv_.size() == 1) { } else if (name_ == "std_logic_vector" && argv_.size() == 1) {
// Special case: The std_logic_vector function casts its // Special case: The std_logic_vector function casts its
@ -635,11 +635,6 @@ int ExpInteger::emit_package(ostream&out)
return 0; return 0;
} }
bool ExpInteger::is_primary(void) const
{
return true;
}
int ExpReal::emit(ostream&out, Entity*, ScopeBase*) int ExpReal::emit(ostream&out, Entity*, ScopeBase*)
{ {
out << value_; out << value_;