From 7f755dec75824e27dd79173a76d5819bf7fdbd27 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Sat, 6 Aug 2016 13:16:23 +0200 Subject: Fixed bug in parsing real constants --- frontends/verilog/verilog_parser.y | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'frontends/verilog/verilog_parser.y') diff --git a/frontends/verilog/verilog_parser.y b/frontends/verilog/verilog_parser.y index c2327011f..7b025db23 100644 --- a/frontends/verilog/verilog_parser.y +++ b/frontends/verilog/verilog_parser.y @@ -1378,10 +1378,10 @@ basic_expr: } | TOK_REALVAL { $$ = new AstNode(AST_REALVALUE); - char *p = strdup($1->c_str()), *q; - for (int i = 0, j = 0; !p[j]; j++) - if (p[j] != '_') - p[i++] = p[j], p[i] = 0; + char *p = (char*)malloc(GetSize(*$1) + 1), *q; + for (int i = 0, j = 0; j < GetSize(*$1); j++) + if ((*$1)[j] != '_') + p[i++] = (*$1)[j], p[i] = 0; $$->realvalue = strtod(p, &q); log_assert(*q == 0); delete $1; -- cgit v1.2.3