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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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