From: Piotr Trojanek <troja...@adacore.com> Code cleanup; semantics is unaffected.
gcc/ada/ * exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to Unqual_Conv; consequently, change object from variable to constant; replace an IF statement with an AND THEN expression. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_ch4.adb | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index 48692c06f01..438cd45ef0e 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -6492,34 +6492,16 @@ package body Exp_Ch4 is ---------------------------- function Is_OK_Object_Reference (Nod : Node_Id) return Boolean is - Obj_Ref : Node_Id; + Obj_Ref : constant Node_Id := Original_Node (Nod); + -- The original operand begin - -- Inspect the original operand - - Obj_Ref := Original_Node (Nod); - -- The object reference must be a source construct, otherwise the -- codefix suggestion may refer to nonexistent code from a user -- perspective. - if Comes_From_Source (Obj_Ref) then - loop - if Nkind (Obj_Ref) in - N_Type_Conversion | - N_Unchecked_Type_Conversion | - N_Qualified_Expression - then - Obj_Ref := Expression (Obj_Ref); - else - exit; - end if; - end loop; - - return Is_Object_Reference (Obj_Ref); - end if; - - return False; + return Comes_From_Source (Obj_Ref) + and then Is_Object_Reference (Unqual_Conv (Obj_Ref)); end Is_OK_Object_Reference; -- Start of processing for Substitute_Valid_Test -- 2.40.0