diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-07 18:13:31 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-07 18:13:31 +0300 |
commit | 736c29dbf42250e8e4d1aab7953ddb57742ba67d (patch) | |
tree | 93065dbea1eddfadd502acd5c74163301f2a32a3 | |
parent | 9e2788dc573872d3096913f041a068ba3428b882 (diff) | |
download | paranucker-736c29dbf42250e8e4d1aab7953ddb57742ba67d.tar.gz paranucker-736c29dbf42250e8e4d1aab7953ddb57742ba67d.tar.bz2 paranucker-736c29dbf42250e8e4d1aab7953ddb57742ba67d.tar.xz paranucker-736c29dbf42250e8e4d1aab7953ddb57742ba67d.zip |
Fix crash in parsing INTEGER_CST.
-rw-r--r-- | src/nodes/base/node.h | 4 | ||||
-rw-r--r-- | src/parsers/cst/integer_cst.cpp | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/nodes/base/node.h b/src/nodes/base/node.h index 0863c1b..34688ef 100644 --- a/src/nodes/base/node.h +++ b/src/nodes/base/node.h @@ -37,7 +37,8 @@ struct Node line(-1), column(-1), treeNumber(0), - indent(0) + indent(0), + noLabel(false) { } @@ -60,6 +61,7 @@ struct Node int column; int treeNumber; int indent; + bool noLabel; }; #endif // NODES_BASE_NODE_H diff --git a/src/parsers/cst/integer_cst.cpp b/src/parsers/cst/integer_cst.cpp index b5b3686..ebdfe7a 100644 --- a/src/parsers/cst/integer_cst.cpp +++ b/src/parsers/cst/integer_cst.cpp @@ -34,6 +34,11 @@ namespace Generic void parseIntegerCstNode(IntegerCstNode *node) { fillType(node); + if (!tree_fits_shwi_p(node->gccNode)) + { + node->noLabel = true; + return; + } if (tree_int_cst_sgn(node->gccNode) < 0) { node->label = "-"; |