diff options
author | Clifford Wolf <clifford@clifford.at> | 2016-08-06 13:16:23 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2016-08-06 13:16:23 +0200 |
commit | 7f755dec75824e27dd79173a76d5819bf7fdbd27 (patch) | |
tree | 596b9c87f06e2b4b1aadb93becf1835872b1b8e7 /frontends/verilog | |
parent | 5d6765a9d20ab2a88c02d06cb58fca2bfaf39c8d (diff) | |
download | yosys-7f755dec75824e27dd79173a76d5819bf7fdbd27.tar.gz yosys-7f755dec75824e27dd79173a76d5819bf7fdbd27.tar.bz2 yosys-7f755dec75824e27dd79173a76d5819bf7fdbd27.zip |
Fixed bug in parsing real constants
Diffstat (limited to 'frontends/verilog')
-rw-r--r-- | frontends/verilog/verilog_parser.y | 8 |
1 files changed, 4 insertions, 4 deletions
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; |