1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

LexerParser: Suppress gcc -Wfree-nonheap-object warnings in generated code

This commit is contained in:
Brad King
2021-02-05 06:48:38 -05:00
parent 80a7d2b14b
commit aac80ec1ee
9 changed files with 884 additions and 876 deletions

View File

@@ -129,9 +129,10 @@ static void cmCommandArgument_yyerror(yyscan_t yyscanner, const char* message);
#endif
#if defined(__GNUC__) && __GNUC__ >= 8
# pragma GCC diagnostic ignored "-Wconversion"
# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
#line 135 "cmCommandArgumentParser.cxx"
#line 136 "cmCommandArgumentParser.cxx"
# ifndef YY_CAST
# ifdef __cplusplus
@@ -552,9 +553,9 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] =
{
0, 96, 96, 102, 105, 110, 113, 118, 121, 126,
129, 132, 135, 138, 141, 146, 149, 152, 155, 160,
163, 168, 171, 176, 179
0, 97, 97, 103, 106, 111, 114, 119, 122, 127,
130, 133, 136, 139, 142, 147, 150, 153, 156, 161,
164, 169, 172, 177, 180
};
#endif
@@ -1427,192 +1428,192 @@ yyreduce:
switch (yyn)
{
case 2: /* Start: GoalWithOptionalBackSlash */
#line 96 "cmCommandArgumentParser.y"
#line 97 "cmCommandArgumentParser.y"
{
(yyval.str) = 0;
yyGetParser->SetResult((yyvsp[0].str));
}
#line 1436 "cmCommandArgumentParser.cxx"
#line 1437 "cmCommandArgumentParser.cxx"
break;
case 3: /* GoalWithOptionalBackSlash: Goal */
#line 102 "cmCommandArgumentParser.y"
#line 103 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1444 "cmCommandArgumentParser.cxx"
#line 1445 "cmCommandArgumentParser.cxx"
break;
case 4: /* GoalWithOptionalBackSlash: Goal "\\" */
#line 105 "cmCommandArgumentParser.y"
#line 106 "cmCommandArgumentParser.y"
{
(yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str));
}
#line 1452 "cmCommandArgumentParser.cxx"
#line 1453 "cmCommandArgumentParser.cxx"
break;
case 5: /* Goal: %empty */
#line 110 "cmCommandArgumentParser.y"
#line 111 "cmCommandArgumentParser.y"
{
(yyval.str) = 0;
}
#line 1460 "cmCommandArgumentParser.cxx"
#line 1461 "cmCommandArgumentParser.cxx"
break;
case 6: /* Goal: String Goal */
#line 113 "cmCommandArgumentParser.y"
#line 114 "cmCommandArgumentParser.y"
{
(yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str));
}
#line 1468 "cmCommandArgumentParser.cxx"
#line 1469 "cmCommandArgumentParser.cxx"
break;
case 7: /* String: OuterText */
#line 118 "cmCommandArgumentParser.y"
#line 119 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1476 "cmCommandArgumentParser.cxx"
#line 1477 "cmCommandArgumentParser.cxx"
break;
case 8: /* String: Variable */
#line 121 "cmCommandArgumentParser.y"
#line 122 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1484 "cmCommandArgumentParser.cxx"
#line 1485 "cmCommandArgumentParser.cxx"
break;
case 9: /* OuterText: cal_NAME */
#line 126 "cmCommandArgumentParser.y"
#line 127 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1492 "cmCommandArgumentParser.cxx"
#line 1493 "cmCommandArgumentParser.cxx"
break;
case 10: /* OuterText: "@" */
#line 129 "cmCommandArgumentParser.y"
#line 130 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1500 "cmCommandArgumentParser.cxx"
#line 1501 "cmCommandArgumentParser.cxx"
break;
case 11: /* OuterText: "$" */
#line 132 "cmCommandArgumentParser.y"
#line 133 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1508 "cmCommandArgumentParser.cxx"
#line 1509 "cmCommandArgumentParser.cxx"
break;
case 12: /* OuterText: "{" */
#line 135 "cmCommandArgumentParser.y"
#line 136 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1516 "cmCommandArgumentParser.cxx"
#line 1517 "cmCommandArgumentParser.cxx"
break;
case 13: /* OuterText: "}" */
#line 138 "cmCommandArgumentParser.y"
#line 139 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1524 "cmCommandArgumentParser.cxx"
#line 1525 "cmCommandArgumentParser.cxx"
break;
case 14: /* OuterText: cal_SYMBOL */
#line 141 "cmCommandArgumentParser.y"
#line 142 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1532 "cmCommandArgumentParser.cxx"
#line 1533 "cmCommandArgumentParser.cxx"
break;
case 15: /* Variable: cal_ENVCURLY EnvVarName "}" */
#line 146 "cmCommandArgumentParser.y"
#line 147 "cmCommandArgumentParser.y"
{
(yyval.str) = yyGetParser->ExpandSpecialVariable((yyvsp[-2].str), (yyvsp[-1].str));
}
#line 1540 "cmCommandArgumentParser.cxx"
#line 1541 "cmCommandArgumentParser.cxx"
break;
case 16: /* Variable: cal_NCURLY MultipleIds "}" */
#line 149 "cmCommandArgumentParser.y"
#line 150 "cmCommandArgumentParser.y"
{
(yyval.str) = yyGetParser->ExpandSpecialVariable((yyvsp[-2].str), (yyvsp[-1].str));
}
#line 1548 "cmCommandArgumentParser.cxx"
#line 1549 "cmCommandArgumentParser.cxx"
break;
case 17: /* Variable: cal_DCURLY MultipleIds "}" */
#line 152 "cmCommandArgumentParser.y"
#line 153 "cmCommandArgumentParser.y"
{
(yyval.str) = yyGetParser->ExpandVariable((yyvsp[-1].str));
}
#line 1556 "cmCommandArgumentParser.cxx"
#line 1557 "cmCommandArgumentParser.cxx"
break;
case 18: /* Variable: cal_ATNAME */
#line 155 "cmCommandArgumentParser.y"
#line 156 "cmCommandArgumentParser.y"
{
(yyval.str) = yyGetParser->ExpandVariableForAt((yyvsp[0].str));
}
#line 1564 "cmCommandArgumentParser.cxx"
#line 1565 "cmCommandArgumentParser.cxx"
break;
case 19: /* EnvVarName: MultipleIds */
#line 160 "cmCommandArgumentParser.y"
#line 161 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1572 "cmCommandArgumentParser.cxx"
#line 1573 "cmCommandArgumentParser.cxx"
break;
case 20: /* EnvVarName: cal_SYMBOL EnvVarName */
#line 163 "cmCommandArgumentParser.y"
#line 164 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[-1].str);
}
#line 1580 "cmCommandArgumentParser.cxx"
#line 1581 "cmCommandArgumentParser.cxx"
break;
case 21: /* MultipleIds: %empty */
#line 168 "cmCommandArgumentParser.y"
#line 169 "cmCommandArgumentParser.y"
{
(yyval.str) = 0;
}
#line 1588 "cmCommandArgumentParser.cxx"
#line 1589 "cmCommandArgumentParser.cxx"
break;
case 22: /* MultipleIds: ID MultipleIds */
#line 171 "cmCommandArgumentParser.y"
#line 172 "cmCommandArgumentParser.y"
{
(yyval.str) = yyGetParser->CombineUnions((yyvsp[-1].str), (yyvsp[0].str));
}
#line 1596 "cmCommandArgumentParser.cxx"
#line 1597 "cmCommandArgumentParser.cxx"
break;
case 23: /* ID: cal_NAME */
#line 176 "cmCommandArgumentParser.y"
#line 177 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1604 "cmCommandArgumentParser.cxx"
#line 1605 "cmCommandArgumentParser.cxx"
break;
case 24: /* ID: Variable */
#line 179 "cmCommandArgumentParser.y"
#line 180 "cmCommandArgumentParser.y"
{
(yyval.str) = (yyvsp[0].str);
}
#line 1612 "cmCommandArgumentParser.cxx"
#line 1613 "cmCommandArgumentParser.cxx"
break;
#line 1616 "cmCommandArgumentParser.cxx"
#line 1617 "cmCommandArgumentParser.cxx"
default: break;
}
@@ -1837,7 +1838,7 @@ yyreturn:
return yyresult;
}
#line 184 "cmCommandArgumentParser.y"
#line 185 "cmCommandArgumentParser.y"
/* End of grammar */

View File

@@ -54,6 +54,7 @@ static void cmCommandArgument_yyerror(yyscan_t yyscanner, const char* message);
#endif
#if defined(__GNUC__) && __GNUC__ >= 8
# pragma GCC diagnostic ignored "-Wconversion"
# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
%}

File diff suppressed because it is too large Load Diff

View File

@@ -43,6 +43,7 @@ static void cmDependsJava_yyerror(yyscan_t yyscanner, const char* message);
#endif
#if defined(__GNUC__) && __GNUC__ >= 8
# pragma GCC diagnostic ignored "-Wconversion"
# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
%}

View File

@@ -112,6 +112,7 @@ static void cmExpr_yyerror(yyscan_t yyscanner, const char* message);
#endif
#if defined(__GNUC__) && __GNUC__ >= 8
# pragma GCC diagnostic ignored "-Wconversion"
# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
#if defined(__clang__) && defined(__has_warning)
# if __has_warning("-Wused-but-marked-unused")
@@ -119,7 +120,7 @@ static void cmExpr_yyerror(yyscan_t yyscanner, const char* message);
# endif
#endif
#line 123 "cmExprParser.cxx"
#line 124 "cmExprParser.cxx"
# ifndef YY_CAST
# ifdef __cplusplus
@@ -543,9 +544,9 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] =
{
0, 80, 80, 85, 88, 93, 96, 101, 104, 109,
112, 115, 120, 123, 126, 131, 134, 137, 143, 148,
151, 154, 157, 162, 165
0, 81, 81, 86, 89, 94, 97, 102, 105, 110,
113, 116, 121, 124, 127, 132, 135, 138, 144, 149,
152, 155, 158, 163, 166
};
#endif
@@ -1420,194 +1421,194 @@ yyreduce:
switch (yyn)
{
case 2: /* start: exp */
#line 80 "cmExprParser.y"
#line 81 "cmExprParser.y"
{
cmExpr_yyget_extra(yyscanner)->SetResult((yyvsp[0].Number));
}
#line 1428 "cmExprParser.cxx"
#line 1429 "cmExprParser.cxx"
break;
case 3: /* exp: bitwiseor */
#line 85 "cmExprParser.y"
#line 86 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[0].Number);
}
#line 1436 "cmExprParser.cxx"
#line 1437 "cmExprParser.cxx"
break;
case 4: /* exp: exp exp_OR bitwiseor */
#line 88 "cmExprParser.y"
#line 89 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) | (yyvsp[0].Number);
}
#line 1444 "cmExprParser.cxx"
#line 1445 "cmExprParser.cxx"
break;
case 5: /* bitwiseor: bitwisexor */
#line 93 "cmExprParser.y"
#line 94 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[0].Number);
}
#line 1452 "cmExprParser.cxx"
#line 1453 "cmExprParser.cxx"
break;
case 6: /* bitwiseor: bitwiseor exp_XOR bitwisexor */
#line 96 "cmExprParser.y"
#line 97 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) ^ (yyvsp[0].Number);
}
#line 1460 "cmExprParser.cxx"
#line 1461 "cmExprParser.cxx"
break;
case 7: /* bitwisexor: bitwiseand */
#line 101 "cmExprParser.y"
#line 102 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[0].Number);
}
#line 1468 "cmExprParser.cxx"
#line 1469 "cmExprParser.cxx"
break;
case 8: /* bitwisexor: bitwisexor exp_AND bitwiseand */
#line 104 "cmExprParser.y"
#line 105 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) & (yyvsp[0].Number);
}
#line 1476 "cmExprParser.cxx"
#line 1477 "cmExprParser.cxx"
break;
case 9: /* bitwiseand: shift */
#line 109 "cmExprParser.y"
#line 110 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[0].Number);
}
#line 1484 "cmExprParser.cxx"
#line 1485 "cmExprParser.cxx"
break;
case 10: /* bitwiseand: bitwiseand exp_SHIFTLEFT shift */
#line 112 "cmExprParser.y"
#line 113 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) << (yyvsp[0].Number);
}
#line 1492 "cmExprParser.cxx"
#line 1493 "cmExprParser.cxx"
break;
case 11: /* bitwiseand: bitwiseand exp_SHIFTRIGHT shift */
#line 115 "cmExprParser.y"
#line 116 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) >> (yyvsp[0].Number);
}
#line 1500 "cmExprParser.cxx"
#line 1501 "cmExprParser.cxx"
break;
case 12: /* shift: term */
#line 120 "cmExprParser.y"
#line 121 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[0].Number);
}
#line 1508 "cmExprParser.cxx"
#line 1509 "cmExprParser.cxx"
break;
case 13: /* shift: shift exp_PLUS term */
#line 123 "cmExprParser.y"
#line 124 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) + (yyvsp[0].Number);
}
#line 1516 "cmExprParser.cxx"
#line 1517 "cmExprParser.cxx"
break;
case 14: /* shift: shift exp_MINUS term */
#line 126 "cmExprParser.y"
#line 127 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) - (yyvsp[0].Number);
}
#line 1524 "cmExprParser.cxx"
#line 1525 "cmExprParser.cxx"
break;
case 15: /* term: unary */
#line 131 "cmExprParser.y"
#line 132 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[0].Number);
}
#line 1532 "cmExprParser.cxx"
#line 1533 "cmExprParser.cxx"
break;
case 16: /* term: term exp_TIMES unary */
#line 134 "cmExprParser.y"
#line 135 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) * (yyvsp[0].Number);
}
#line 1540 "cmExprParser.cxx"
#line 1541 "cmExprParser.cxx"
break;
case 17: /* term: term exp_DIVIDE unary */
#line 137 "cmExprParser.y"
#line 138 "cmExprParser.y"
{
if (yyvsp[0].Number == 0) {
throw std::overflow_error("divide by zero");
}
(yyval.Number) = (yyvsp[-2].Number) / (yyvsp[0].Number);
}
#line 1551 "cmExprParser.cxx"
#line 1552 "cmExprParser.cxx"
break;
case 18: /* term: term exp_MOD unary */
#line 143 "cmExprParser.y"
#line 144 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-2].Number) % (yyvsp[0].Number);
}
#line 1559 "cmExprParser.cxx"
#line 1560 "cmExprParser.cxx"
break;
case 19: /* unary: factor */
#line 148 "cmExprParser.y"
#line 149 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[0].Number);
}
#line 1567 "cmExprParser.cxx"
#line 1568 "cmExprParser.cxx"
break;
case 20: /* unary: exp_PLUS unary */
#line 151 "cmExprParser.y"
#line 152 "cmExprParser.y"
{
(yyval.Number) = + (yyvsp[0].Number);
}
#line 1575 "cmExprParser.cxx"
#line 1576 "cmExprParser.cxx"
break;
case 21: /* unary: exp_MINUS unary */
#line 154 "cmExprParser.y"
#line 155 "cmExprParser.y"
{
(yyval.Number) = - (yyvsp[0].Number);
}
#line 1583 "cmExprParser.cxx"
#line 1584 "cmExprParser.cxx"
break;
case 22: /* unary: exp_NOT unary */
#line 157 "cmExprParser.y"
#line 158 "cmExprParser.y"
{
(yyval.Number) = ~ (yyvsp[0].Number);
}
#line 1591 "cmExprParser.cxx"
#line 1592 "cmExprParser.cxx"
break;
case 23: /* factor: exp_NUMBER */
#line 162 "cmExprParser.y"
#line 163 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[0].Number);
}
#line 1599 "cmExprParser.cxx"
#line 1600 "cmExprParser.cxx"
break;
case 24: /* factor: exp_OPENPARENT exp exp_CLOSEPARENT */
#line 165 "cmExprParser.y"
#line 166 "cmExprParser.y"
{
(yyval.Number) = (yyvsp[-1].Number);
}
#line 1607 "cmExprParser.cxx"
#line 1608 "cmExprParser.cxx"
break;
#line 1611 "cmExprParser.cxx"
#line 1612 "cmExprParser.cxx"
default: break;
}
@@ -1832,7 +1833,7 @@ yyreturn:
return yyresult;
}
#line 170 "cmExprParser.y"
#line 171 "cmExprParser.y"
/* End of grammar */

View File

@@ -37,6 +37,7 @@ static void cmExpr_yyerror(yyscan_t yyscanner, const char* message);
#endif
#if defined(__GNUC__) && __GNUC__ >= 8
# pragma GCC diagnostic ignored "-Wconversion"
# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
#if defined(__clang__) && defined(__has_warning)
# if __has_warning("-Wused-but-marked-unused")

View File

@@ -130,9 +130,10 @@ static void cmFortran_yyerror(yyscan_t yyscanner, const char* message)
#endif
#if defined(__GNUC__) && __GNUC__ >= 8
# pragma GCC diagnostic ignored "-Wconversion"
# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
#line 136 "cmFortranParser.cxx"
#line 137 "cmFortranParser.cxx"
# ifndef YY_CAST
# ifdef __cplusplus
@@ -586,13 +587,13 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] =
{
0, 98, 98, 98, 101, 105, 110, 119, 125, 132,
137, 141, 146, 154, 159, 164, 169, 174, 179, 184,
189, 194, 198, 202, 206, 210, 211, 216, 216, 216,
217, 217, 218, 218, 219, 219, 220, 220, 221, 221,
222, 222, 223, 223, 224, 224, 225, 225, 228, 229,
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244
0, 99, 99, 99, 102, 106, 111, 120, 126, 133,
138, 142, 147, 155, 160, 165, 170, 175, 180, 185,
190, 195, 199, 203, 207, 211, 212, 217, 217, 217,
218, 218, 219, 219, 220, 220, 221, 221, 222, 222,
223, 223, 224, 224, 225, 225, 226, 226, 229, 230,
231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
241, 242, 243, 244, 245
};
#endif
@@ -1621,26 +1622,26 @@ yyreduce:
switch (yyn)
{
case 4: /* stmt: INTERFACE EOSTMT */
#line 101 "cmFortranParser.y"
#line 102 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_SetInInterface(parser, true);
}
#line 1630 "cmFortranParser.cxx"
#line 1631 "cmFortranParser.cxx"
break;
case 5: /* stmt: USE WORD other EOSTMT */
#line 105 "cmFortranParser.y"
#line 106 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1640 "cmFortranParser.cxx"
#line 1641 "cmFortranParser.cxx"
break;
case 6: /* stmt: MODULE WORD other EOSTMT */
#line 110 "cmFortranParser.y"
#line 111 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
if (cmsysString_strcasecmp((yyvsp[-2].string), "function") != 0 &&
@@ -1650,22 +1651,22 @@ yyreduce:
}
free((yyvsp[-2].string));
}
#line 1654 "cmFortranParser.cxx"
#line 1655 "cmFortranParser.cxx"
break;
case 7: /* stmt: SUBMODULE LPAREN WORD RPAREN WORD other EOSTMT */
#line 119 "cmFortranParser.y"
#line 120 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleSubmodule(parser, (yyvsp[-4].string), (yyvsp[-2].string));
free((yyvsp[-4].string));
free((yyvsp[-2].string));
}
#line 1665 "cmFortranParser.cxx"
#line 1666 "cmFortranParser.cxx"
break;
case 8: /* stmt: SUBMODULE LPAREN WORD COLON WORD RPAREN WORD other EOSTMT */
#line 125 "cmFortranParser.y"
#line 126 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleSubmoduleNested(parser, (yyvsp[-6].string), (yyvsp[-4].string), (yyvsp[-2].string));
@@ -1673,40 +1674,40 @@ yyreduce:
free((yyvsp[-4].string));
free((yyvsp[-2].string));
}
#line 1677 "cmFortranParser.cxx"
#line 1678 "cmFortranParser.cxx"
break;
case 9: /* stmt: INTERFACE WORD other EOSTMT */
#line 132 "cmFortranParser.y"
#line 133 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_SetInInterface(parser, true);
free((yyvsp[-2].string));
}
#line 1687 "cmFortranParser.cxx"
#line 1688 "cmFortranParser.cxx"
break;
case 10: /* stmt: END INTERFACE other EOSTMT */
#line 137 "cmFortranParser.y"
#line 138 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_SetInInterface(parser, false);
}
#line 1696 "cmFortranParser.cxx"
#line 1697 "cmFortranParser.cxx"
break;
case 11: /* stmt: USE DCOLON WORD other EOSTMT */
#line 141 "cmFortranParser.y"
#line 142 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1706 "cmFortranParser.cxx"
#line 1707 "cmFortranParser.cxx"
break;
case 12: /* stmt: USE COMMA WORD DCOLON WORD other EOSTMT */
#line 146 "cmFortranParser.y"
#line 147 "cmFortranParser.y"
{
if (cmsysString_strcasecmp((yyvsp[-4].string), "non_intrinsic") == 0) {
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
@@ -1715,139 +1716,139 @@ yyreduce:
free((yyvsp[-4].string));
free((yyvsp[-2].string));
}
#line 1719 "cmFortranParser.cxx"
#line 1720 "cmFortranParser.cxx"
break;
case 13: /* stmt: INCLUDE STRING other EOSTMT */
#line 154 "cmFortranParser.y"
#line 155 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1729 "cmFortranParser.cxx"
#line 1730 "cmFortranParser.cxx"
break;
case 14: /* stmt: CPP_LINE_DIRECTIVE STRING other EOSTMT */
#line 159 "cmFortranParser.y"
#line 160 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleLineDirective(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1739 "cmFortranParser.cxx"
#line 1740 "cmFortranParser.cxx"
break;
case 15: /* stmt: CPP_INCLUDE_ANGLE other EOSTMT */
#line 164 "cmFortranParser.y"
#line 165 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1749 "cmFortranParser.cxx"
#line 1750 "cmFortranParser.cxx"
break;
case 16: /* stmt: include STRING other EOSTMT */
#line 169 "cmFortranParser.y"
#line 170 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1759 "cmFortranParser.cxx"
#line 1760 "cmFortranParser.cxx"
break;
case 17: /* stmt: define WORD other EOSTMT */
#line 174 "cmFortranParser.y"
#line 175 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleDefine(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1769 "cmFortranParser.cxx"
#line 1770 "cmFortranParser.cxx"
break;
case 18: /* stmt: undef WORD other EOSTMT */
#line 179 "cmFortranParser.y"
#line 180 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleUndef(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1779 "cmFortranParser.cxx"
#line 1780 "cmFortranParser.cxx"
break;
case 19: /* stmt: ifdef WORD other EOSTMT */
#line 184 "cmFortranParser.y"
#line 185 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleIfdef(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1789 "cmFortranParser.cxx"
#line 1790 "cmFortranParser.cxx"
break;
case 20: /* stmt: ifndef WORD other EOSTMT */
#line 189 "cmFortranParser.y"
#line 190 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleIfndef(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1799 "cmFortranParser.cxx"
#line 1800 "cmFortranParser.cxx"
break;
case 21: /* stmt: if other EOSTMT */
#line 194 "cmFortranParser.y"
#line 195 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleIf(parser);
}
#line 1808 "cmFortranParser.cxx"
#line 1809 "cmFortranParser.cxx"
break;
case 22: /* stmt: elif other EOSTMT */
#line 198 "cmFortranParser.y"
#line 199 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleElif(parser);
}
#line 1817 "cmFortranParser.cxx"
#line 1818 "cmFortranParser.cxx"
break;
case 23: /* stmt: else other EOSTMT */
#line 202 "cmFortranParser.y"
#line 203 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleElse(parser);
}
#line 1826 "cmFortranParser.cxx"
#line 1827 "cmFortranParser.cxx"
break;
case 24: /* stmt: endif other EOSTMT */
#line 206 "cmFortranParser.y"
#line 207 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleEndif(parser);
}
#line 1835 "cmFortranParser.cxx"
#line 1836 "cmFortranParser.cxx"
break;
case 48: /* misc_code: WORD */
#line 228 "cmFortranParser.y"
#line 229 "cmFortranParser.y"
{ free ((yyvsp[0].string)); }
#line 1841 "cmFortranParser.cxx"
#line 1842 "cmFortranParser.cxx"
break;
case 55: /* misc_code: STRING */
#line 235 "cmFortranParser.y"
#line 236 "cmFortranParser.y"
{ free ((yyvsp[0].string)); }
#line 1847 "cmFortranParser.cxx"
#line 1848 "cmFortranParser.cxx"
break;
#line 1851 "cmFortranParser.cxx"
#line 1852 "cmFortranParser.cxx"
default: break;
}
@@ -2072,6 +2073,6 @@ yyreturn:
return yyresult;
}
#line 247 "cmFortranParser.y"
#line 248 "cmFortranParser.y"
/* End of grammar */

View File

@@ -55,6 +55,7 @@ static void cmFortran_yyerror(yyscan_t yyscanner, const char* message)
#endif
#if defined(__GNUC__) && __GNUC__ >= 8
# pragma GCC diagnostic ignored "-Wconversion"
# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
%}

View File

@@ -100,7 +100,7 @@ extern int cmFortran_yydebug;
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
#line 70 "cmFortranParser.y"
#line 71 "cmFortranParser.y"
char* string;