1------------------------------------------------------------------------------ 2-- -- 3-- GNAT COMPILER COMPONENTS -- 4-- -- 5-- W A R N S W -- 6-- -- 7-- B o d y -- 8-- -- 9-- Copyright (C) 1999-2018, Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- 17-- for more details. You should have received a copy of the GNU General -- 18-- Public License distributed with GNAT; see file COPYING3. If not, go to -- 19-- http://www.gnu.org/licenses for a complete copy of the license. -- 20-- -- 21-- GNAT was originally developed by the GNAT team at New York University. -- 22-- Extensive contributions were provided by Ada Core Technologies Inc. -- 23-- -- 24------------------------------------------------------------------------------ 25 26with Err_Vars; use Err_Vars; 27with Opt; use Opt; 28with Output; use Output; 29 30package body Warnsw is 31 32 -- Local Subprograms 33 34 procedure All_Warnings (Setting : Boolean); 35 -- Sets all warnings off if Setting = False, and on if Setting = True 36 37 procedure WA_Warnings; 38 -- Turn on all warnings set by -gnatwa (also used by -gnatw.g) 39 40 ------------------ 41 -- All_Warnings -- 42 ------------------ 43 44 procedure All_Warnings (Setting : Boolean) is 45 begin 46 Address_Clause_Overlay_Warnings := Setting; 47 Check_Unreferenced := Setting; 48 Check_Unreferenced_Formals := Setting; 49 Check_Withs := Setting; 50 Constant_Condition_Warnings := Setting; 51 Elab_Warnings := Setting; 52 Implementation_Unit_Warnings := Setting; 53 Ineffective_Inline_Warnings := Setting; 54 List_Body_Required_Info := Setting; 55 List_Inherited_Aspects := Setting; 56 Warn_On_Ada_2005_Compatibility := Setting; 57 Warn_On_Ada_2012_Compatibility := Setting; 58 Warn_On_All_Unread_Out_Parameters := Setting; 59 Warn_On_Assertion_Failure := Setting; 60 Warn_On_Assumed_Low_Bound := Setting; 61 Warn_On_Atomic_Synchronization := Setting; 62 Warn_On_Bad_Fixed_Value := Setting; 63 Warn_On_Biased_Representation := Setting; 64 Warn_On_Constant := Setting; 65 Warn_On_Deleted_Code := Setting; 66 Warn_On_Dereference := Setting; 67 Warn_On_Export_Import := Setting; 68 Warn_On_Hiding := Setting; 69 Warn_On_Late_Primitives := Setting; 70 Warn_On_Modified_Unread := Setting; 71 Warn_On_No_Value_Assigned := Setting; 72 Warn_On_Non_Local_Exception := Setting; 73 Warn_On_Object_Renames_Function := Setting; 74 Warn_On_Obsolescent_Feature := Setting; 75 Warn_On_Overlap := Setting; 76 Warn_On_Overridden_Size := Setting; 77 Warn_On_Parameter_Order := Setting; 78 Warn_On_Questionable_Layout := Setting; 79 Warn_On_Questionable_Missing_Parens := Setting; 80 Warn_On_Record_Holes := Setting; 81 Warn_On_Redundant_Constructs := Setting; 82 Warn_On_Reverse_Bit_Order := Setting; 83 Warn_On_Size_Alignment := Setting; 84 Warn_On_Standard_Redefinition := Setting; 85 Warn_On_Suspicious_Contract := Setting; 86 Warn_On_Suspicious_Modulus_Value := Setting; 87 Warn_On_Unchecked_Conversion := Setting; 88 Warn_On_Unordered_Enumeration_Type := Setting; 89 Warn_On_Unrecognized_Pragma := Setting; 90 Warn_On_Unrepped_Components := Setting; 91 Warn_On_Warnings_Off := Setting; 92 end All_Warnings; 93 94 ---------------------- 95 -- Restore_Warnings -- 96 ---------------------- 97 98 procedure Restore_Warnings (W : Warning_Record) is 99 begin 100 Address_Clause_Overlay_Warnings := 101 W.Address_Clause_Overlay_Warnings; 102 Check_Unreferenced := 103 W.Check_Unreferenced; 104 Check_Unreferenced_Formals := 105 W.Check_Unreferenced_Formals; 106 Check_Withs := 107 W.Check_Withs; 108 Constant_Condition_Warnings := 109 W.Constant_Condition_Warnings; 110 Elab_Warnings := 111 W.Elab_Warnings; 112 Elab_Info_Messages := 113 W.Elab_Info_Messages; 114 Implementation_Unit_Warnings := 115 W.Implementation_Unit_Warnings; 116 Ineffective_Inline_Warnings := 117 W.Ineffective_Inline_Warnings; 118 List_Body_Required_Info := 119 W.List_Body_Required_Info; 120 List_Inherited_Aspects := 121 W.List_Inherited_Aspects; 122 No_Warn_On_Non_Local_Exception := 123 W.No_Warn_On_Non_Local_Exception; 124 Warning_Doc_Switch := 125 W.Warning_Doc_Switch; 126 Warn_On_Ada_2005_Compatibility := 127 W.Warn_On_Ada_2005_Compatibility; 128 Warn_On_Ada_2012_Compatibility := 129 W.Warn_On_Ada_2012_Compatibility; 130 Warn_On_All_Unread_Out_Parameters := 131 W.Warn_On_All_Unread_Out_Parameters; 132 Warn_On_Assertion_Failure := 133 W.Warn_On_Assertion_Failure; 134 Warn_On_Assumed_Low_Bound := 135 W.Warn_On_Assumed_Low_Bound; 136 Warn_On_Atomic_Synchronization := 137 W.Warn_On_Atomic_Synchronization; 138 Warn_On_Bad_Fixed_Value := 139 W.Warn_On_Bad_Fixed_Value; 140 Warn_On_Biased_Representation := 141 W.Warn_On_Biased_Representation; 142 Warn_On_Constant := 143 W.Warn_On_Constant; 144 Warn_On_Deleted_Code := 145 W.Warn_On_Deleted_Code; 146 Warn_On_Dereference := 147 W.Warn_On_Dereference; 148 Warn_On_Export_Import := 149 W.Warn_On_Export_Import; 150 Warn_On_Hiding := 151 W.Warn_On_Hiding; 152 Warn_On_Late_Primitives := 153 W.Warn_On_Late_Primitives; 154 Warn_On_Modified_Unread := 155 W.Warn_On_Modified_Unread; 156 Warn_On_No_Value_Assigned := 157 W.Warn_On_No_Value_Assigned; 158 Warn_On_Non_Local_Exception := 159 W.Warn_On_Non_Local_Exception; 160 Warn_On_Object_Renames_Function := 161 W.Warn_On_Object_Renames_Function; 162 Warn_On_Obsolescent_Feature := 163 W.Warn_On_Obsolescent_Feature; 164 Warn_On_Overlap := 165 W.Warn_On_Overlap; 166 Warn_On_Overridden_Size := 167 W.Warn_On_Overridden_Size; 168 Warn_On_Parameter_Order := 169 W.Warn_On_Parameter_Order; 170 Warn_On_Questionable_Layout := 171 W.Warn_On_Questionable_Layout; 172 Warn_On_Questionable_Missing_Parens := 173 W.Warn_On_Questionable_Missing_Parens; 174 Warn_On_Record_Holes := 175 W.Warn_On_Record_Holes; 176 Warn_On_Redundant_Constructs := 177 W.Warn_On_Redundant_Constructs; 178 Warn_On_Reverse_Bit_Order := 179 W.Warn_On_Reverse_Bit_Order; 180 Warn_On_Size_Alignment := 181 W.Warn_On_Size_Alignment; 182 Warn_On_Standard_Redefinition := 183 W.Warn_On_Standard_Redefinition; 184 Warn_On_Suspicious_Contract := 185 W.Warn_On_Suspicious_Contract; 186 Warn_On_Unchecked_Conversion := 187 W.Warn_On_Unchecked_Conversion; 188 Warn_On_Unordered_Enumeration_Type := 189 W.Warn_On_Unordered_Enumeration_Type; 190 Warn_On_Unrecognized_Pragma := 191 W.Warn_On_Unrecognized_Pragma; 192 Warn_On_Unrepped_Components := 193 W.Warn_On_Unrepped_Components; 194 Warn_On_Warnings_Off := 195 W.Warn_On_Warnings_Off; 196 end Restore_Warnings; 197 198 ------------------- 199 -- Save_Warnings -- 200 ------------------- 201 202 function Save_Warnings return Warning_Record is 203 W : Warning_Record; 204 205 begin 206 W.Address_Clause_Overlay_Warnings := 207 Address_Clause_Overlay_Warnings; 208 W.Check_Unreferenced := 209 Check_Unreferenced; 210 W.Check_Unreferenced_Formals := 211 Check_Unreferenced_Formals; 212 W.Check_Withs := 213 Check_Withs; 214 W.Constant_Condition_Warnings := 215 Constant_Condition_Warnings; 216 W.Elab_Info_Messages := 217 Elab_Info_Messages; 218 W.Elab_Warnings := 219 Elab_Warnings; 220 W.Implementation_Unit_Warnings := 221 Implementation_Unit_Warnings; 222 W.Ineffective_Inline_Warnings := 223 Ineffective_Inline_Warnings; 224 W.List_Body_Required_Info := 225 List_Body_Required_Info; 226 W.List_Inherited_Aspects := 227 List_Inherited_Aspects; 228 W.No_Warn_On_Non_Local_Exception := 229 No_Warn_On_Non_Local_Exception; 230 W.Warning_Doc_Switch := 231 Warning_Doc_Switch; 232 W.Warn_On_Ada_2005_Compatibility := 233 Warn_On_Ada_2005_Compatibility; 234 W.Warn_On_Ada_2012_Compatibility := 235 Warn_On_Ada_2012_Compatibility; 236 W.Warn_On_All_Unread_Out_Parameters := 237 Warn_On_All_Unread_Out_Parameters; 238 W.Warn_On_Assertion_Failure := 239 Warn_On_Assertion_Failure; 240 W.Warn_On_Assumed_Low_Bound := 241 Warn_On_Assumed_Low_Bound; 242 W.Warn_On_Atomic_Synchronization := 243 Warn_On_Atomic_Synchronization; 244 W.Warn_On_Bad_Fixed_Value := 245 Warn_On_Bad_Fixed_Value; 246 W.Warn_On_Biased_Representation := 247 Warn_On_Biased_Representation; 248 W.Warn_On_Constant := 249 Warn_On_Constant; 250 W.Warn_On_Deleted_Code := 251 Warn_On_Deleted_Code; 252 W.Warn_On_Dereference := 253 Warn_On_Dereference; 254 W.Warn_On_Export_Import := 255 Warn_On_Export_Import; 256 W.Warn_On_Hiding := 257 Warn_On_Hiding; 258 W.Warn_On_Late_Primitives := 259 Warn_On_Late_Primitives; 260 W.Warn_On_Modified_Unread := 261 Warn_On_Modified_Unread; 262 W.Warn_On_No_Value_Assigned := 263 Warn_On_No_Value_Assigned; 264 W.Warn_On_Non_Local_Exception := 265 Warn_On_Non_Local_Exception; 266 W.Warn_On_Object_Renames_Function := 267 Warn_On_Object_Renames_Function; 268 W.Warn_On_Obsolescent_Feature := 269 Warn_On_Obsolescent_Feature; 270 W.Warn_On_Overlap := 271 Warn_On_Overlap; 272 W.Warn_On_Overridden_Size := 273 Warn_On_Overridden_Size; 274 W.Warn_On_Parameter_Order := 275 Warn_On_Parameter_Order; 276 W.Warn_On_Questionable_Layout := 277 Warn_On_Questionable_Layout; 278 W.Warn_On_Questionable_Missing_Parens := 279 Warn_On_Questionable_Missing_Parens; 280 W.Warn_On_Record_Holes := 281 Warn_On_Record_Holes; 282 W.Warn_On_Redundant_Constructs := 283 Warn_On_Redundant_Constructs; 284 W.Warn_On_Reverse_Bit_Order := 285 Warn_On_Reverse_Bit_Order; 286 W.Warn_On_Size_Alignment := 287 Warn_On_Size_Alignment; 288 W.Warn_On_Standard_Redefinition := 289 Warn_On_Standard_Redefinition; 290 W.Warn_On_Suspicious_Contract := 291 Warn_On_Suspicious_Contract; 292 W.Warn_On_Unchecked_Conversion := 293 Warn_On_Unchecked_Conversion; 294 W.Warn_On_Unordered_Enumeration_Type := 295 Warn_On_Unordered_Enumeration_Type; 296 W.Warn_On_Unrecognized_Pragma := 297 Warn_On_Unrecognized_Pragma; 298 W.Warn_On_Unrepped_Components := 299 Warn_On_Unrepped_Components; 300 W.Warn_On_Warnings_Off := 301 Warn_On_Warnings_Off; 302 return W; 303 end Save_Warnings; 304 305 ---------------------------- 306 -- Set_Dot_Warning_Switch -- 307 ---------------------------- 308 309 function Set_Dot_Warning_Switch (C : Character) return Boolean is 310 begin 311 case C is 312 when 'a' => 313 Warn_On_Assertion_Failure := True; 314 315 when 'A' => 316 Warn_On_Assertion_Failure := False; 317 318 when 'b' => 319 Warn_On_Biased_Representation := True; 320 321 when 'B' => 322 Warn_On_Biased_Representation := False; 323 324 when 'c' => 325 Warn_On_Unrepped_Components := True; 326 327 when 'C' => 328 Warn_On_Unrepped_Components := False; 329 330 when 'd' => 331 Warning_Doc_Switch := True; 332 333 when 'D' => 334 Warning_Doc_Switch := False; 335 336 when 'e' => 337 All_Warnings (True); 338 339 when 'f' => 340 Warn_On_Elab_Access := True; 341 342 when 'F' => 343 Warn_On_Elab_Access := False; 344 345 when 'g' => 346 Set_GNAT_Mode_Warnings; 347 348 when 'h' => 349 Warn_On_Record_Holes := True; 350 351 when 'H' => 352 Warn_On_Record_Holes := False; 353 354 when 'i' => 355 Warn_On_Overlap := True; 356 357 when 'I' => 358 Warn_On_Overlap := False; 359 360 when 'j' => 361 Warn_On_Late_Primitives := True; 362 363 when 'J' => 364 Warn_On_Late_Primitives := False; 365 366 when 'k' => 367 Warn_On_Standard_Redefinition := True; 368 369 when 'K' => 370 Warn_On_Standard_Redefinition := False; 371 372 when 'l' => 373 List_Inherited_Aspects := True; 374 375 when 'L' => 376 List_Inherited_Aspects := False; 377 378 when 'm' => 379 Warn_On_Suspicious_Modulus_Value := True; 380 381 when 'M' => 382 Warn_On_Suspicious_Modulus_Value := False; 383 384 when 'n' => 385 Warn_On_Atomic_Synchronization := True; 386 387 when 'N' => 388 Warn_On_Atomic_Synchronization := False; 389 390 when 'o' => 391 Warn_On_All_Unread_Out_Parameters := True; 392 393 when 'O' => 394 Warn_On_All_Unread_Out_Parameters := False; 395 396 when 'p' => 397 Warn_On_Parameter_Order := True; 398 399 when 'P' => 400 Warn_On_Parameter_Order := False; 401 402 when 'q' => 403 Warn_On_Questionable_Layout := True; 404 405 when 'Q' => 406 Warn_On_Questionable_Layout := False; 407 408 when 'r' => 409 Warn_On_Object_Renames_Function := True; 410 411 when 'R' => 412 Warn_On_Object_Renames_Function := False; 413 414 when 's' => 415 Warn_On_Overridden_Size := True; 416 417 when 'S' => 418 Warn_On_Overridden_Size := False; 419 420 when 't' => 421 Warn_On_Suspicious_Contract := True; 422 423 when 'T' => 424 Warn_On_Suspicious_Contract := False; 425 426 when 'u' => 427 Warn_On_Unordered_Enumeration_Type := True; 428 429 when 'U' => 430 Warn_On_Unordered_Enumeration_Type := False; 431 432 when 'v' => 433 Warn_On_Reverse_Bit_Order := True; 434 435 when 'V' => 436 Warn_On_Reverse_Bit_Order := False; 437 438 when 'w' => 439 Warn_On_Warnings_Off := True; 440 441 when 'W' => 442 Warn_On_Warnings_Off := False; 443 444 when 'x' => 445 Warn_On_Non_Local_Exception := True; 446 447 when 'X' => 448 Warn_On_Non_Local_Exception := False; 449 No_Warn_On_Non_Local_Exception := True; 450 451 when 'y' => 452 List_Body_Required_Info := True; 453 454 when 'Y' => 455 List_Body_Required_Info := False; 456 457 when 'z' => 458 Warn_On_Size_Alignment := True; 459 460 when 'Z' => 461 Warn_On_Size_Alignment := False; 462 463 when others => 464 if Ignore_Unrecognized_VWY_Switches then 465 Write_Line ("unrecognized switch -gnatw." & C & " ignored"); 466 else 467 return False; 468 end if; 469 end case; 470 471 return True; 472 end Set_Dot_Warning_Switch; 473 474 ----------------------------------- 475 -- Set_Underscore_Warning_Switch -- 476 ----------------------------------- 477 478 function Set_Underscore_Warning_Switch (C : Character) return Boolean is 479 begin 480 case C is 481 when others => 482 if Ignore_Unrecognized_VWY_Switches then 483 Write_Line ("unrecognized switch -gnatw_" & C & " ignored"); 484 else 485 return False; 486 end if; 487 end case; 488 489 return True; 490 end Set_Underscore_Warning_Switch; 491 492 ---------------------------- 493 -- Set_GNAT_Mode_Warnings -- 494 ---------------------------- 495 496 procedure Set_GNAT_Mode_Warnings is 497 begin 498 -- Set -gnatwa warnings and no others 499 500 All_Warnings (False); 501 WA_Warnings; 502 503 -- These warnings are added to the -gnatwa set 504 505 Address_Clause_Overlay_Warnings := True; 506 Warn_On_Questionable_Layout := True; 507 Warn_On_Overridden_Size := True; 508 509 -- These warnings are removed from the -gnatwa set 510 511 Implementation_Unit_Warnings := False; 512 Warn_On_Non_Local_Exception := False; 513 No_Warn_On_Non_Local_Exception := True; 514 Warn_On_Reverse_Bit_Order := False; 515 Warn_On_Size_Alignment := False; 516 Warn_On_Unrepped_Components := False; 517 end Set_GNAT_Mode_Warnings; 518 519 ------------------------ 520 -- Set_Warning_Switch -- 521 ------------------------ 522 523 function Set_Warning_Switch (C : Character) return Boolean is 524 begin 525 case C is 526 when 'a' => 527 WA_Warnings; 528 529 when 'A' => 530 All_Warnings (False); 531 No_Warn_On_Non_Local_Exception := True; 532 533 when 'b' => 534 Warn_On_Bad_Fixed_Value := True; 535 536 when 'B' => 537 Warn_On_Bad_Fixed_Value := False; 538 539 when 'c' => 540 Constant_Condition_Warnings := True; 541 542 when 'C' => 543 Constant_Condition_Warnings := False; 544 545 when 'd' => 546 Warn_On_Dereference := True; 547 548 when 'D' => 549 Warn_On_Dereference := False; 550 551 when 'e' => 552 Warning_Mode := Treat_As_Error; 553 554 when 'E' => 555 Warning_Mode := Treat_Run_Time_Warnings_As_Errors; 556 557 when 'f' => 558 Check_Unreferenced_Formals := True; 559 560 when 'F' => 561 Check_Unreferenced_Formals := False; 562 563 when 'g' => 564 Warn_On_Unrecognized_Pragma := True; 565 566 when 'G' => 567 Warn_On_Unrecognized_Pragma := False; 568 569 when 'h' => 570 Warn_On_Hiding := True; 571 572 when 'H' => 573 Warn_On_Hiding := False; 574 575 when 'i' => 576 Implementation_Unit_Warnings := True; 577 578 when 'I' => 579 Implementation_Unit_Warnings := False; 580 581 when 'j' => 582 Warn_On_Obsolescent_Feature := True; 583 584 when 'J' => 585 Warn_On_Obsolescent_Feature := False; 586 587 when 'k' => 588 Warn_On_Constant := True; 589 590 when 'K' => 591 Warn_On_Constant := False; 592 593 when 'l' => 594 Elab_Warnings := True; 595 596 when 'L' => 597 Elab_Warnings := False; 598 599 when 'm' => 600 Warn_On_Modified_Unread := True; 601 602 when 'M' => 603 Warn_On_Modified_Unread := False; 604 605 when 'n' => 606 Warning_Mode := Normal; 607 608 when 'o' => 609 Address_Clause_Overlay_Warnings := True; 610 611 when 'O' => 612 Address_Clause_Overlay_Warnings := False; 613 614 when 'p' => 615 Ineffective_Inline_Warnings := True; 616 617 when 'P' => 618 Ineffective_Inline_Warnings := False; 619 620 when 'q' => 621 Warn_On_Questionable_Missing_Parens := True; 622 623 when 'Q' => 624 Warn_On_Questionable_Missing_Parens := False; 625 626 when 'r' => 627 Warn_On_Redundant_Constructs := True; 628 629 when 'R' => 630 Warn_On_Redundant_Constructs := False; 631 632 when 's' => 633 Warning_Mode := Suppress; 634 635 when 't' => 636 Warn_On_Deleted_Code := True; 637 638 when 'T' => 639 Warn_On_Deleted_Code := False; 640 641 when 'u' => 642 Check_Unreferenced := True; 643 Check_Withs := True; 644 Check_Unreferenced_Formals := True; 645 646 when 'U' => 647 Check_Unreferenced := False; 648 Check_Withs := False; 649 Check_Unreferenced_Formals := False; 650 651 when 'v' => 652 Warn_On_No_Value_Assigned := True; 653 654 when 'V' => 655 Warn_On_No_Value_Assigned := False; 656 657 when 'w' => 658 Warn_On_Assumed_Low_Bound := True; 659 660 when 'W' => 661 Warn_On_Assumed_Low_Bound := False; 662 663 when 'x' => 664 Warn_On_Export_Import := True; 665 666 when 'X' => 667 Warn_On_Export_Import := False; 668 669 when 'y' => 670 Warn_On_Ada_2005_Compatibility := True; 671 Warn_On_Ada_2012_Compatibility := True; 672 673 when 'Y' => 674 Warn_On_Ada_2005_Compatibility := False; 675 Warn_On_Ada_2012_Compatibility := False; 676 677 when 'z' => 678 Warn_On_Unchecked_Conversion := True; 679 680 when 'Z' => 681 Warn_On_Unchecked_Conversion := False; 682 683 when others => 684 if Ignore_Unrecognized_VWY_Switches then 685 Write_Line ("unrecognized switch -gnatw" & C & " ignored"); 686 else 687 return False; 688 end if; 689 end case; 690 691 return True; 692 end Set_Warning_Switch; 693 694 ----------------- 695 -- WA_Warnings -- 696 ----------------- 697 698 procedure WA_Warnings is 699 begin 700 Check_Unreferenced := True; -- -gnatwf/-gnatwu 701 Check_Unreferenced_Formals := True; -- -gnatwf/-gnatwu 702 Check_Withs := True; -- -gnatwu 703 Constant_Condition_Warnings := True; -- -gnatwc 704 Implementation_Unit_Warnings := True; -- -gnatwi 705 Ineffective_Inline_Warnings := True; -- -gnatwp 706 Warn_On_Ada_2005_Compatibility := True; -- -gnatwy 707 Warn_On_Ada_2012_Compatibility := True; -- -gnatwy 708 Warn_On_Assertion_Failure := True; -- -gnatw.a 709 Warn_On_Assumed_Low_Bound := True; -- -gnatww 710 Warn_On_Bad_Fixed_Value := True; -- -gnatwb 711 Warn_On_Biased_Representation := True; -- -gnatw.b 712 Warn_On_Constant := True; -- -gnatwk 713 Warn_On_Export_Import := True; -- -gnatwx 714 Warn_On_Late_Primitives := True; -- -gnatw.j 715 Warn_On_Modified_Unread := True; -- -gnatwm 716 Warn_On_No_Value_Assigned := True; -- -gnatwv 717 Warn_On_Non_Local_Exception := True; -- -gnatw.x 718 Warn_On_Object_Renames_Function := True; -- -gnatw.r 719 Warn_On_Obsolescent_Feature := True; -- -gnatwj 720 Warn_On_Overlap := True; -- -gnatw.i 721 Warn_On_Parameter_Order := True; -- -gnatw.p 722 Warn_On_Questionable_Missing_Parens := True; -- -gnatwq 723 Warn_On_Redundant_Constructs := True; -- -gnatwr 724 Warn_On_Reverse_Bit_Order := True; -- -gnatw.v 725 Warn_On_Size_Alignment := True; -- -gnatw.z 726 Warn_On_Suspicious_Contract := True; -- -gnatw.t 727 Warn_On_Suspicious_Modulus_Value := True; -- -gnatw.m 728 Warn_On_Unchecked_Conversion := True; -- -gnatwz 729 Warn_On_Unrecognized_Pragma := True; -- -gnatwg 730 Warn_On_Unrepped_Components := True; -- -gnatw.c 731 end WA_Warnings; 732 733end Warnsw; 734