From: Vincent Celier Date: Tue, 5 Aug 2008 09:14:03 +0000 (+0200) Subject: 2008-08-05 Vincent Celier X-Git-Tag: releases/gcc-4.4.0~3374 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=215aeb67558529411b5b0d1d500e25f17ca9c71d;p=thirdparty%2Fgcc.git 2008-08-05 Vincent Celier * prj-proc.adb: (Process_Declarative_Items): Skip associative array attribute when index is reserved word "others". From-SVN: r138681 --- diff --git a/gcc/ada/prj-proc.adb b/gcc/ada/prj-proc.adb index 134f85b8b1c4..24d42e40a279 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