diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2020-05-28 12:14:38 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-07-10 05:16:20 -0400 |
commit | a6ddbacd3ad9e3a34f77311dbb136d977c79e607 (patch) | |
tree | c212e6326e5ebb4a37dd7e995b7b29eba0179cc5 /gcc | |
parent | c3b4ce9b912c243c0203b4d022d0b7ad7ba744ce (diff) | |
download | gcc-a6ddbacd3ad9e3a34f77311dbb136d977c79e607.zip gcc-a6ddbacd3ad9e3a34f77311dbb136d977c79e607.tar.gz gcc-a6ddbacd3ad9e3a34f77311dbb136d977c79e607.tar.bz2 |
[Ada] Cleanup excessive conditions in Check_Completion
gcc/ada/
* sem_ch3.adb (Check_Completion): Refactor chained
if-then-elsif-... statement to be more like a case
statement (note: we can't simply use case statement because of
Is_Intrinsic_Subprogram in the first condition).
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch3.adb | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index b964301..a184a87 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -11698,28 +11698,30 @@ package body Sem_Ch3 is -- A formal incomplete type (Ada 2012) does not require a completion; -- other incomplete type declarations do. - elsif Ekind (E) = E_Incomplete_Type - and then No (Underlying_Type (E)) - and then not Is_Generic_Type (E) - then - Post_Error; + elsif Ekind (E) = E_Incomplete_Type then + if No (Underlying_Type (E)) + and then not Is_Generic_Type (E) + then + Post_Error; + end if; - elsif Ekind_In (E, E_Task_Type, E_Protected_Type) - and then not Has_Completion (E) - then - Post_Error; + elsif Ekind_In (E, E_Task_Type, E_Protected_Type) then + if not Has_Completion (E) then + Post_Error; + end if; -- A single task declared in the current scope is a constant, verify -- that the body of its anonymous type is in the same scope. If the -- task is defined elsewhere, this may be a renaming declaration for -- which no completion is needed. - elsif Ekind (E) = E_Constant - and then Ekind (Etype (E)) = E_Task_Type - and then not Has_Completion (Etype (E)) - and then Scope (Etype (E)) = Current_Scope - then - Post_Error; + elsif Ekind (E) = E_Constant then + if Ekind (Etype (E)) = E_Task_Type + and then not Has_Completion (Etype (E)) + and then Scope (Etype (E)) = Current_Scope + then + Post_Error; + end if; elsif Ekind (E) = E_Record_Type then if Is_Tagged_Type (E) then |