From 215aeb67558529411b5b0d1d500e25f17ca9c71d Mon Sep 17 00:00:00 2001 From: Vincent Celier Date: Tue, 5 Aug 2008 11:14:03 +0200 Subject: [PATCH] 2008-08-05 Vincent Celier * prj-proc.adb: (Process_Declarative_Items): Skip associative array attribute when index is reserved word "others". From-SVN: r138681 --- gcc/ada/prj-proc.adb | 72 +++++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/gcc/ada/prj-proc.adb b/gcc/ada/prj-proc.adb index 134f85b..24d42e4 100644 --- a/gcc/ada/prj-proc.adb +++ b/gcc/ada/prj-proc.adb @@ -1891,51 +1891,53 @@ package body Prj.Proc is -- Associative array attribute else - -- Get the string index - - Get_Name_String - (Associative_Array_Index_Of - (Current_Item, From_Project_Node_Tree)); - - -- Put in lower case, if necessary - declare - Lower : Boolean; + Index_Name : Name_Id := + Associative_Array_Index_Of + (Current_Item, From_Project_Node_Tree); + Lower : Boolean; + The_Array : Array_Id; + + The_Array_Element : Array_Element_Id := + No_Array_Element; begin - Lower := - Case_Insensitive - (Current_Item, From_Project_Node_Tree); + if Index_Name /= All_Other_Names then + -- Get the string index - -- In multi-language mode (gprbuild), the index is - -- always case insensitive if it does not include - -- any dot. + Get_Name_String + (Associative_Array_Index_Of + (Current_Item, From_Project_Node_Tree)); - if Get_Mode = Multi_Language and then not Lower then - for J in 1 .. Name_Len loop - if Name_Buffer (J) = '.' then - Lower := False; - exit; - end if; - end loop; - end if; + -- Put in lower case, if necessary - if Lower then - GNAT.Case_Util.To_Lower - (Name_Buffer (1 .. Name_Len)); - end if; - end; + Lower := + Case_Insensitive + (Current_Item, From_Project_Node_Tree); - declare - The_Array : Array_Id; + -- In multi-language mode (gprbuild), the index + -- is always case insensitive if it does not + -- include any dot. - The_Array_Element : Array_Element_Id := - No_Array_Element; + if Get_Mode = Multi_Language + and then not Lower + then + for J in 1 .. Name_Len loop + if Name_Buffer (J) = '.' then + Lower := False; + exit; + end if; + end loop; + end if; - Index_Name : constant Name_Id := Name_Find; - -- The name id of the index + if Lower then + GNAT.Case_Util.To_Lower + (Name_Buffer (1 .. Name_Len)); + end if; + + Index_Name := Name_Find; + end if; - begin -- Look for the array in the appropriate list if Pkg /= No_Package then -- 2.7.4