diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2005-02-23 10:00:22 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2005-02-23 09:00:22 +0000 |
commit | 40205a3638f2491a454823de6d69b453b8834233 (patch) | |
tree | ef410a9d9c792ab1bd1d410658ba630c42194c44 | |
parent | 1144f8d5ca6ef0a7e563809249a374648802ed85 (diff) | |
download | gcc-40205a3638f2491a454823de6d69b453b8834233.zip gcc-40205a3638f2491a454823de6d69b453b8834233.tar.gz gcc-40205a3638f2491a454823de6d69b453b8834233.tar.bz2 |
re PR ada/19902 (ACATS cxa3004 cxb3006 fail at compile time "ambiguous expression")
PR ada/19902
* ada/acats/tests/cxa/cxa3004.a: Remove.
* ada/acats/tests/cxb/cxb30061.am: Likewise.
From-SVN: r95446
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ada/acats/tests/cxa/cxa3004.a | 235 | ||||
-rw-r--r-- | gcc/testsuite/ada/acats/tests/cxb/cxb30061.am | 404 |
3 files changed, 6 insertions, 639 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5edbd14..108bea5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2005-02-23 Eric Botcazou <ebotcazou@libertysurf.fr> + + PR ada/19902 + * ada/acats/tests/cxa/cxa3004.a: Remove. + * ada/acats/tests/cxb/cxb30061.am: Likewise. + 2005-02-22 Mark Mitchell <mark@codesourcery.com> PR c++/20073 diff --git a/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a b/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a deleted file mode 100644 index ed2023e..0000000 --- a/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a +++ /dev/null @@ -1,235 +0,0 @@ --- CXA3004.A --- --- Grant of Unlimited Rights --- --- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, --- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained --- unlimited rights in the software and documentation contained herein. --- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making --- this public release, the Government intends to confer upon all --- recipients unlimited rights equal to those held by the Government. --- These rights include rights to use, duplicate, release or disclose the --- released technical data and computer software in whole or in part, in --- any manner and for any purpose whatsoever, and to have or permit others --- to do so. --- --- DISCLAIMER --- --- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR --- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED --- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE --- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE --- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A --- PARTICULAR PURPOSE OF SAID MATERIAL. ---* --- --- OBJECTIVE: --- Check that the functions defined in package Ada.Characters.Handling --- for classification of and conversion between Wide_Character and --- Character values produce correct results when given the appropriate --- Character and String inputs. --- --- TEST DESCRIPTION: --- This test demonstrates the functions defined in package --- Ada.Characters.Handling which provide for the classification of and --- conversion between Wide_Characters and Characters, in character --- variables and strings. --- Each of the functions is provided with input values that are of the --- appropriate range. The results of the function processing are --- subsequently evaluated. --- --- APPLICABILITY CRITERIA: --- Applicable to all implementations using the Latin_1 set as the --- definition of Character. --- --- --- CHANGE HISTORY: --- 06 Dec 94 SAIC ACVC 2.0 --- 27 Dec 94 SAIC Corrected variable names. --- ---! - -with Report; -with Ada.Characters.Handling; - -procedure CXA3004 is -begin - - Report.Test ("CXA3004", "Check that the functions defined in package " & - "Ada.Characters.Handling for classification " & - "of and conversion between Wide_Character and " & - "Character values produce correct results " & - "when given the appropriate Character " & - "and String inputs"); - - Test_Block: - declare - - package ACH renames Ada.Characters.Handling; - - Char_End : Integer := 255; - WC_Start : Integer := 256; - Sub_Char : Character := '*'; - - Blank : Character := ' '; - First_Char : Character := Character'First; - Last_Char : Character := Character'Last; - F_Char : Character := 'F'; - - - First_Wide_Char : Wide_Character := Wide_Character'First; - Last_Non_Wide_Char : Wide_Character := Wide_Character'Val(Char_End); - First_Unique_Wide_Char : Wide_Character := Wide_Character'Val(WC_Start); - Last_Wide_Char : Wide_Character := Wide_Character'Last; - - A_String : String (1..3) := First_Char & 'X' & Last_Char; - A_Wide_String : Wide_String (1..3) := First_Wide_Char & - ACH.To_Wide_Character('X') & - ACH.To_Wide_Character(Last_Char); - - Unique_Wide_String : Wide_String (1..2) := First_Unique_Wide_Char & - Last_Wide_Char; - - Mixed_Wide_String : Wide_String (1..6) := ACH.To_Wide_Character('A') & - First_Wide_Char & - Last_Non_Wide_Char & - First_Unique_Wide_Char & - Last_Wide_Char & - ACH.To_Wide_Character('Z'); - - - Basic_Char : Character := 'A'; - Basic_Wide_Char : Wide_Character := 'A'; - Basic_String : String (1..6) := "ABCXYZ"; - Basic_Wide_String : Wide_String (1..6) := "ABCXYZ"; - - begin - - - -- Function Is_Character - - - if not ACH.Is_Character(First_Wide_Char) then - Report.Failed ("Incorrect result from Is_Character - 1"); - end if; - - - if ACH.Is_Character(First_Unique_Wide_Char) or - ACH.Is_Character(Last_Wide_Char) - then - Report.Failed ("Incorrect result from Is_Character - 2"); - end if; - - - -- Function Is_String - - - if not ACH.Is_String(A_Wide_String) then - Report.Failed ("Incorrect result from Is_String - 1"); - end if; - - - if ACH.Is_String(Unique_Wide_String) or - ACH.Is_String(Mixed_Wide_String) - then - Report.Failed ("Incorrect result from Is_String - 2"); - end if; - - - -- Function To_Character - - - -- Use default substitution character in call of To_Character. - - if ACH.To_Character(First_Wide_Char) /= First_Char or - ACH.To_Character(Last_Non_Wide_Char) /= Last_Char - then - Report.Failed ("Incorrect result from To_Character - 1"); - end if; - - - -- Provide a substitution character for use with To_Character. - - if ACH.To_Character(First_Unique_Wide_Char, Blank) /= Blank or - ACH.To_Character(First_Unique_Wide_Char, Sub_Char) /= Sub_Char or - ACH.To_Character(Last_Wide_Char) /= ' ' -- default - then - Report.Failed ("Incorrect result from To_Character - 2"); - end if; - - - -- Function To_String - - - if ACH.To_String(A_Wide_String) /= A_String then - Report.Failed ("Incorrect result from To_String - 1"); - end if; - - - if ACH.To_String(Unique_Wide_String, Sub_Char) /= "**" then - Report.Failed ("Incorrect result from To_String - 2"); - end if; - - - - if ACH.To_String(Mixed_Wide_String, Sub_Char) /= - ('A' & First_Char & Last_Char & "**" & 'Z') or - ACH.To_String(Mixed_Wide_String, Sub_Char) /= - (ACH.To_Character(Mixed_Wide_String(1), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(2), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(3), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(4), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(5), Sub_Char) & - ACH.To_Character(Mixed_Wide_String(6), Sub_Char)) - then - Report.Failed ("Incorrect result from To_String - 3"); - end if; - - - -- Function To_Wide_Character - - - if ACH.To_Wide_Character(Basic_Char) /= Basic_Wide_Char then - Report.Failed ("Incorrect result from To_Wide_Character"); - end if; - - - -- Function To_Wide_String - - - if not (ACH.To_Wide_String(Basic_String) = Basic_Wide_String) then - Report.Failed ("Incorrect result from To_Wide_String"); - end if; - - - -- Functions Used In Combination - - if not ACH.Is_Character (ACH.To_Wide_Character ( - ACH.To_Character(First_Wide_Char))) - then - Report.Failed ("Incorrect result from functions in combination - 1"); - end if; - - - if not ACH.Is_String(ACH.To_Wide_String(ACH.To_String(A_Wide_String))) - then - Report.Failed ("Incorrect result from functions in combination - 2"); - end if; - - - if ACH.To_String(ACH.To_Wide_Character('A') & - ACH.To_Wide_Character(F_Char) & - ACH.To_Wide_Character('Z')) /= "AFZ" - then - Report.Failed ("Incorrect result from functions in combination - 3"); - end if; - - - exception - when others => Report.Failed ("Exception raised in Test_Block"); - end Test_Block; - - - Report.Result; - -end CXA3004; diff --git a/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am b/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am deleted file mode 100644 index d31345a..0000000 --- a/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am +++ /dev/null @@ -1,404 +0,0 @@ --- CXB30061.AM --- --- Grant of Unlimited Rights --- --- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, --- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained --- unlimited rights in the software and documentation contained herein. --- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making --- this public release, the Government intends to confer upon all --- recipients unlimited rights equal to those held by the Government. --- These rights include rights to use, duplicate, release or disclose the --- released technical data and computer software in whole or in part, in --- any manner and for any purpose whatsoever, and to have or permit others --- to do so. --- --- DISCLAIMER --- --- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR --- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED --- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE --- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE --- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A --- PARTICULAR PURPOSE OF SAID MATERIAL. ---* --- --- OBJECTIVE: --- Check that the function To_C maps between the Ada type Wide_Character --- and the C type wchar_t. --- --- Check that the function To_Ada maps between the C type wchar_t and --- the Ada type Wide_Character. --- --- Check that the function Is_Nul_Terminated returns True if the --- wchar_array parameter contains wide_nul, and otherwise False. --- --- Check that the function To_C produces a correct wchar_array result, --- with lower bound of 0, and length dependent upon the Item and --- Append_Nul parameters. --- --- Check that the function To_Ada produces a correct wide_string result, --- with lower bound of 1, and length dependent upon the Item and --- Trim_Nul parameters. --- --- Check that the function To_Ada raises Terminator_Error if the --- parameter Trim_Nul is set to True, but the actual Item parameter --- does not contain the wide_nul wchar_t. --- --- TEST DESCRIPTION: --- This test uses a variety of Wide_Character, wchar_t, Wide_String, and --- wchar_array objects to test versions of the To_C, To_Ada, and --- Is_Nul_Terminated functions. --- --- This test assumes that the following characters are all included --- in the implementation defined type Interfaces.C.wchar_t: --- ' ', ',', '.', '0'..'9', 'a'..'z' and 'A'..'Z'. --- --- APPLICABILITY CRITERIA: --- This test is applicable to all implementations that provide --- package Interfaces.C. If an implementation provides --- package Interfaces.C, this test must compile, execute, and --- report "PASSED". --- --- SPECIAL REQUIREMENTS: --- The file CXB30060.C must be compiled with a C compiler. --- Implementation dialects of C may require alteration of --- the C program syntax (see individual C files). --- --- Note that the compiled C code must be bound with the compiled Ada --- code to create an executable image. An implementation must provide --- the necessary commands to accomplish this. --- --- Note that the C code included in CXB30060.C conforms --- to ANSI-C. Modifications to these files may be required for other --- C compilers. An implementation must provide the necessary --- modifications to satisfy the function requirements. --- --- TEST FILES: --- The following files comprise this test: --- --- CXB30060.C --- CXB30061.AM --- --- CHANGE HISTORY: --- 07 Sep 95 SAIC Initial prerelease version. --- 09 May 96 SAIC Incorporated reviewer comments for ACVC 2.1. --- 13 Sep 99 RLB Replaced (bogus) Unchecked_Conversions with a --- C function character generator. --- ---! - -with Report; -with Interfaces.C; -- N/A => ERROR -with Ada.Characters.Latin_1; -with Ada.Characters.Handling; -with Ada.Exceptions; -with Ada.Strings.Wide_Fixed; -with Impdef; - -procedure CXB30061 is -begin - - Report.Test ("CXB3006", "Check that the functions To_C and To_Ada " & - "produce correct results"); - - Test_Block: - declare - - use Interfaces, Interfaces.C; - use Ada.Characters, Ada.Characters.Latin_1, Ada.Characters.Handling; - use Ada.Strings.Wide_Fixed; - - First_Character, - Last_Character : Character; - TC_wchar_t, - TC_Low_wchar_t, - TC_High_wchar_t : wchar_t := wchar_t'First; - TC_Wide_String : Wide_String(1..8) := (others => Wide_Character'First); - TC_wchar_array : wchar_array(0..7) := (others => C.wide_nul); - - -- The function Char_Gen returns a character corresponding to its - -- argument. - -- Value 0 .. 9 ==> '0' .. '9' - -- Value 10 .. 19 ==> 'A' .. 'J' - -- Value 20 .. 29 ==> 'k' .. 't' - -- Value 30 ==> ' ' - -- Value 31 ==> '.' - -- Value 32 ==> ',' - - function Char_Gen (Value : in int) return wchar_t; - - -- Use the user-defined C function char_gen as a completion to the - -- function specification above. - - pragma Import (Convention => C, - Entity => Char_Gen, - External_Name => Impdef.CXB30060_External_Name); - - begin - - -- Check that the functions To_C and To_Ada map between the Ada type - -- Wide_Character and the C type wchar_t. - - if To_C(To_Wide_Character(Ada.Characters.Latin_1.NUL)) /= - Interfaces.C.wide_nul - then - Report.Failed("Incorrect result from To_C with NUL character input"); - end if; - - First_Character := Report.Ident_Char('k'); - Last_Character := Report.Ident_Char('t'); - for i in First_Character..Last_Character loop - if To_C(Item => To_Wide_Character(i)) /= - Char_Gen(Character'Pos(i) - Character'Pos('k') + 20) - then - Report.Failed("Incorrect result from To_C with lower case " & - "alphabetic wide character input"); - end if; - end loop; - - First_Character := Report.Ident_Char('A'); - Last_Character := Report.Ident_Char('J'); - for i in First_Character..Last_Character loop - if To_C(Item => To_Wide_Character(i)) /= - Char_Gen(Character'Pos(i) - Character'Pos('A') + 10) - then - Report.Failed("Incorrect result from To_C with upper case " & - "alphabetic wide character input"); - end if; - end loop; - - First_Character := Report.Ident_Char('0'); - Last_Character := Report.Ident_Char('9'); - for i in First_Character..Last_Character loop - if To_C(Item => To_Wide_Character(i)) /= - Char_Gen(Character'Pos(i) - Character'Pos('0')) - then - Report.Failed("Incorrect result from To_C with digit " & - "wide character input"); - end if; - end loop; - - if To_C(Item => To_Wide_Character(' ')) /= Char_Gen(30) - then - Report.Failed("Incorrect result from To_C with space " & - "wide character input"); - end if; - - if To_C(Item => To_Wide_Character('.')) /= Char_Gen(31) - then - Report.Failed("Incorrect result from To_C with dot " & - "wide character input"); - end if; - - if To_C(Item => To_Wide_Character(',')) /= Char_Gen(32) - then - Report.Failed("Incorrect result from To_C with comma " & - "wide character input"); - end if; - - if To_Ada(Interfaces.C.wide_nul) /= - To_Wide_Character(Ada.Characters.Latin_1.NUL) - then - Report.Failed("Incorrect result from To_Ada with wide_nul " & - "wchar_t input"); - end if; - - for Code in int range - int(Report.Ident_Int(20)) .. int(Report.Ident_Int(29)) loop - -- 'k' .. 't' - if To_Ada(Item => Char_Gen(Code)) /= - To_Wide_Character(Character'Val (Character'Pos('k') + (Code - 20))) - then - Report.Failed("Incorrect result from To_Ada with lower case " & - "alphabetic wchar_t input"); - end if; - end loop; - - for Code in int range - int(Report.Ident_Int(10)) .. int(Report.Ident_Int(19)) loop - -- 'A' .. 'J' - if To_Ada(Item => Char_Gen(Code)) /= - To_Wide_Character(Character'Val (Character'Pos('A') + (Code - 10))) - then - Report.Failed("Incorrect result from To_Ada with upper case " & - "alphabetic wchar_t input"); - end if; - end loop; - - for Code in int range - int(Report.Ident_Int(0)) .. int(Report.Ident_Int(9)) loop - -- '0' .. '9' - if To_Ada(Item => Char_Gen(Code)) /= - To_Wide_Character(Character'Val (Character'Pos('0') + (Code))) - then - Report.Failed("Incorrect result from To_Ada with digit " & - "wchar_t input"); - end if; - end loop; - - if To_Ada(Item => Char_Gen(30)) /= ' ' then - Report.Failed("Incorrect result from To_Ada with space " & - "char input"); - end if; - if To_Ada(Item => Char_Gen(31)) /= '.' then - Report.Failed("Incorrect result from To_Ada with dot " & - "char input"); - end if; - if To_Ada(Item => Char_Gen(32)) /= ',' then - Report.Failed("Incorrect result from To_Ada with comma " & - "char input"); - end if; - - -- Check that the function Is_Nul_Terminated produces correct results - -- whether or not the wchar_array argument contains the - -- Ada.Interfaces.C.wide_nul character. - - TC_Wide_String := "abcdefgh"; - if Is_Nul_Terminated(Item => To_C(TC_Wide_String, Append_Nul => False)) - then - Report.Failed("Incorrect result from Is_Nul_Terminated when no " & - "wide_nul wchar_t is present"); - end if; - - if not Is_Nul_Terminated(To_C(TC_Wide_String, Append_Nul => True)) then - Report.Failed("Incorrect result from Is_Nul_Terminated when the " & - "wide_nul wchar_t is present"); - end if; - - - - -- Now that we've tested the character/char versions of To_Ada and To_C, - -- use them to test the string versions. - - declare - i : size_t := 0; - j : integer := 1; - Incorrect_Conversion : Boolean := False; - - TC_No_wide_nul : constant wchar_array := To_C(TC_Wide_String, - False); - TC_wide_nul_Appended : constant wchar_array := To_C(TC_Wide_String, - True); - begin - - -- Check that the function To_C produces a wchar_array result with - -- lower bound of 0, and length dependent upon the Item and - -- Append_Nul parameters (if Append_Nul is True, length is - -- Item'Length + 1; if False, length is Item'Length). - - if TC_No_wide_nul'First /= 0 or TC_wide_nul_Appended'First /= 0 then - Report.Failed("Incorrect lower bound from Function To_C"); - end if; - - if TC_No_wide_nul'Length /= TC_Wide_String'Length then - Report.Failed("Incorrect length returned from Function To_C " & - "when Append_Nul => False"); - end if; - - if TC_wide_nul_Appended'Length /= TC_Wide_String'Length + 1 then - Report.Failed("Incorrect length returned from Function To_C " & - "when Append_Nul => True"); - end if; - - if not Is_Nul_Terminated(TC_wide_nul_Appended) then - Report.Failed("No wide_nul appended to the wide_string " & - "parameter during conversion to wchar_array " & - "by function To_C"); - end if; - - for TC_char in Report.Ident_Char('a')..Report.Ident_Char('h') loop - if TC_No_wide_nul(i) /= To_C(To_Wide_Character(TC_char)) or - TC_wide_nul_Appended(i) /= To_C(To_Wide_Character(TC_char)) then - -- Use single character To_C. - Incorrect_Conversion := True; - end if; - i := i + 1; - end loop; - - if Incorrect_Conversion then - Report.Failed("Incorrect result from To_C with wide_string input " & - "and wchar_array result"); - end if; - - - -- Check that the function To_Ada produces a wide_string result with - -- lower bound of 1, and length dependent upon the Item and - -- Trim_Nul parameters (if Trim_Nul is False, length is Item'Length; - -- if False, length will be the length of the slice of Item prior to - -- the first wide_nul). - - declare - TC_No_NUL_Wide_String : constant Wide_String := - To_Ada(Item => TC_wide_nul_Appended, Trim_Nul => True); - - TC_NUL_Appended_Wide_String : constant Wide_String := - To_Ada(TC_wide_nul_Appended, False); - - begin - - if TC_No_NUL_Wide_String'First /= 1 or - TC_NUL_Appended_Wide_String'First /= 1 - then - Report.Failed("Incorrect lower bound from Function To_Ada"); - end if; - - if TC_No_NUL_Wide_String'Length /= TC_Wide_String'Length then - Report.Failed("Incorrect length returned from Function " & - "To_Ada when Trim_Nul => True"); - end if; - - if TC_NUL_Appended_Wide_String'Length /= - TC_Wide_String'Length + 1 - then - Report.Failed("Incorrect length returned from Function " & - "To_Ada when Trim_Nul => False"); - end if; - - for TC_Character in Wide_Character'('a') .. Wide_Character'('h') loop - if TC_No_NUL_Wide_String(j) /= TC_Character or - TC_NUL_Appended_Wide_String(j) /= TC_Character - then - Report.Failed("Incorrect result from To_Ada with " & - "char_array input, index = " & - Integer'Image(j)); - end if; - j := j + 1; - end loop; - - end; - - - -- Check that the function To_Ada raises Terminator_Error if the - -- parameter Trim_Nul is set to True, but the actual Item parameter - -- does not contain the wide_nul wchar_t. - - begin - TC_Wide_String := To_Ada(TC_No_wide_nul, Trim_Nul => True); - Report.Failed("Terminator_Error not raised when Item " & - "parameter of To_Ada does not contain the " & - "wide_nul wchar_t, but parameter Trim_Nul " & - "=> True"); - Report.Comment - (To_String(TC_Wide_String) & " printed to defeat optimization"); - exception - when Terminator_Error => null; -- OK, expected exception. - when others => - Report.Failed("Incorrect exception raised by function " & - "To_Ada when the Item parameter does not " & - "contain the wide_nul wchar_t, but " & - "parameter Trim_Nul => True"); - end; - - end; - - exception - when The_Error : others => - Report.Failed - ("The following exception was raised in the Test_Block: " & - Ada.Exceptions.Exception_Name(The_Error)); - end Test_Block; - - Report.Result; - -end CXB30061; |