From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10180 invoked by alias); 27 Mar 2011 08:12:34 -0000 Received: (qmail 10151 invoked by uid 22791); 27 Mar 2011 08:12:16 -0000 X-SWARE-Spam-Status: No, hits=-6.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 27 Mar 2011 08:12:05 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2R8Bgxd002391 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 27 Mar 2011 04:11:42 -0400 Received: from host1.jankratochvil.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p2R8Bec3023709 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 27 Mar 2011 04:11:42 -0400 Received: from host1.jankratochvil.net (localhost [127.0.0.1]) by host1.jankratochvil.net (8.14.4/8.14.4) with ESMTP id p2R8Beva001788; Sun, 27 Mar 2011 10:11:40 +0200 Received: (from jkratoch@localhost) by host1.jankratochvil.net (8.14.4/8.14.4/Submit) id p2R8BdSm001782; Sun, 27 Mar 2011 10:11:39 +0200 Date: Mon, 28 Mar 2011 08:06:00 -0000 From: Jan Kratochvil To: Joel Brobecker Cc: gdb-patches@sourceware.org Subject: [patch] ada testsuite: False FAILs with gcc debug info Message-ID: <20110327081139.GA30398@host1.jankratochvil.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-03/txt/msg01114.txt.bz2 Hi Joel, with installed and matching debug infos there flip some gdb.ada/ testsuite results PASS->FAIL: print first -$2 = 98 'b' -(gdb) PASS: gdb.ada/arrayparam.exp: print first after function call +Multiple matches for first +[0] cancel +[1] gnat.awk.field_table.first at g-dyntab.ads:146 +[2] gnat.awk.file_table.first at g-dyntab.ads:146 +[3] gnat.awk.pattern_action_table.first at g-dyntab.ads:146 +[4] gnat.cgi.cookie.cookie_table.first at g-table.ads:159 +[5] gnat.cgi.cookie.key_value_table.first at g-table.ads:159 +[6] gnat.cgi.key_value_table.first at g-table.ads:159 +[7] gnat.perfect_hash_generators.it.first at g-table.ads:159 +[8] gnat.perfect_hash_generators.wt.first at g-table.ads:159 +[9] pck.first at .../gdb/testsuite/gdb.ada/arrayparam/pck.ads:18 +> FAIL: gdb.ada/arrayparam.exp: print first after function call (timeout) It affects `first' and `last' the same way. (gdb) print String_Var (1 .. 3) = "Hel" -$1 = true -(gdb) PASS: gdb.ada/str_ref_cmp.exp: print String_Var (1 .. 3) = "Hel" +$1 = false +(gdb) FAIL: gdb.ada/str_ref_cmp.exp: print String_Var (1 .. 3) = "Hel" as even just (gdb) print "a"="a" starts giving `false' with debug info installed, the BINOP_EQUAL operator resolves to: ada__strings__maps__Oeq (Ada.Strings.Maps) as its type matches in ada_resolve_function. I do not understand the Ada scoping to fix it, filed PR for KFAIL. (gdb) print i Multiple matches for i [0] cancel -[1] pck.first.i at .../gdb/testsuite/gdb.ada/sym_print_name/pck.ads:18 -[2] pck.second.i at .../gdb/testsuite/gdb.ada/sym_print_name/pck.ads:22 -> PASS: gdb.ada/sym_print_name.exp: multiple matches for symbol i +[1] ada.numerics.complex_types.i at a-ngcoty.ads:139 +[2] ada.numerics.long_complex_types.i at a-ngcoty.ads:139 +[3] ada.numerics.long_long_complex_types.i at a-ngcoty.ads:139 +[4] ada.numerics.short_complex_types.i at a-ngcoty.ads:139 +[5] gnat.secure_hashes.md5.i at g-sehamd.adb:199 +[6] interfaces.fortran.double_precision_complex_types.i at a-ngcoty.ads:139 +[7] interfaces.fortran.i at i-fortra.ads:46 +[8] interfaces.fortran.single_precision_complex_types.i at a-ngcoty.ads:139 +[9] pck.first.i at .../gdb/testsuite/gdb.ada/sym_print_name/pck.ads:18 +[10] pck.second.i at .../gdb/testsuite/gdb.ada/sym_print_name/pck.ads:22 +> FAIL: gdb.ada/sym_print_name.exp: multiple matches for symbol i 1 -$1 = 48 -(gdb) PASS: gdb.ada/sym_print_name.exp: select first choice from multiple-choice menu +$1 = 1.0 +(gdb) FAIL: gdb.ada/sym_print_name.exp: select first choice from multiple-choice menu Tested on x86_64-fedora15-linux-gnu after `debuginfo-install gcc' (in fact many debug infos installed but this one is the culprit I guess). Thanks, Jan gdb/testsuite/ 2011-03-27 Jan Kratochvil * gdb.ada/arrayparam.exp (print first after function call): Use explicit package name. Add a comment (print lasta after function call): Rename ... (print last after function call): ... it and use explicit package name. (print length after function call): Use explicit package name. * gdb.ada/str_ref_cmp.exp (operator = works for strings): New test. * gdb.ada/sym_print_name.exp: Change `i' to `integervar'. (multiple matches for symbol i): Rename ... (multiple matches for symbol integervar): ... it. * gdb.ada/sym_print_name/foo.adb (Foo): Change `I' to `IntegerVar'. * gdb.ada/sym_print_name/pck.ads (Pck): Likewise. --- a/gdb/testsuite/gdb.ada/arrayparam.exp +++ b/gdb/testsuite/gdb.ada/arrayparam.exp @@ -42,17 +42,18 @@ gdb_test "print call_me (\"bonjour\")" \ "print call_me (\"bonjour\")" # Verify that the array was passed properly by checking the global -# variables that Call_Me sets as side-effects. +# variables that Call_Me sets as side-effects. Use the package name to avoid +# name clash with debug info of system libraries. -gdb_test "print first" \ +gdb_test "print pck.first" \ "= 98 'b'" \ "print first after function call" -gdb_test "print last" \ +gdb_test "print pck.last" \ "= 114 'r'" \ - "print lasta after function call" + "print last after function call" -gdb_test "print length" \ +gdb_test "print pck.length" \ "= 7" \ "print length after function call" --- a/gdb/testsuite/gdb.ada/str_ref_cmp.exp +++ b/gdb/testsuite/gdb.ada/str_ref_cmp.exp @@ -34,6 +34,19 @@ clean_restart ${testfile} set bp_location [gdb_get_line_number "START" ${testdir}/foo.adb] runto "foo.adb:$bp_location" +# BINOP_EQUAL incorrectly resolves with system debug info to Ada.Strings.Maps. +set test "operator = works for strings" +gdb_test_multiple {print "a" = "a"} $test { + -re " = false\r\n$gdb_prompt $" { + kfail ada/12607 $test + untested ${testdir}.exp + return 0 + } + -re " = true\r\n$gdb_prompt $" { + pass $test + } +} + # Verify that we can compare a string slice with another string. gdb_test "print String_Var (1 .. 3) = \"Hel\"" \ --- a/gdb/testsuite/gdb.ada/sym_print_name.exp +++ b/gdb/testsuite/gdb.ada/sym_print_name.exp @@ -45,14 +45,14 @@ clean_restart ${testfile} set bp_location [gdb_get_line_number "STOP" ${testdir}/foo.adb] runto "foo.adb:$bp_location" -set menu [multi_line "Multiple matches for i" \ +set menu [multi_line "Multiple matches for integervar" \ "\\\[0\\\] cancel" \ - "\\\[1\\\] pck\\.first\\.i.*" \ - "\\\[2\\\] pck\\.second\\.i.*" \ + "\\\[1\\\] pck\\.first\\.integervar.*" \ + "\\\[2\\\] pck\\.second\\.integervar.*" \ "> $" ] -set test_name "multiple matches for symbol i" -gdb_test_multiple "print i" "$test_name" \ +set test_name "multiple matches for symbol integervar" +gdb_test_multiple "print integervar" "$test_name" \ { -re "$menu" { pass "$test_name" --- a/gdb/testsuite/gdb.ada/sym_print_name/foo.adb +++ b/gdb/testsuite/gdb.ada/sym_print_name/foo.adb @@ -17,6 +17,6 @@ with Pck; use Pck; procedure Foo is begin - Do_Nothing (First.I); -- STOP - Do_Nothing (Second.I); + Do_Nothing (First.IntegerVar); -- STOP + Do_Nothing (Second.IntegerVar); end Foo; --- a/gdb/testsuite/gdb.ada/sym_print_name/pck.ads +++ b/gdb/testsuite/gdb.ada/sym_print_name/pck.ads @@ -15,11 +15,11 @@ package Pck is package First is - I : Integer := 48; + IntegerVar : Integer := 48; end First; package Second is - I : Integer := 74; + IntegerVar : Integer := 74; end Second; procedure Do_Nothing (Val : in out Integer);