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