From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9247 invoked by alias); 10 Oct 2002 20:33:07 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 9240 invoked from network); 10 Oct 2002 20:33:06 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 10 Oct 2002 20:33:06 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id g9AKD9X17022 for ; Thu, 10 Oct 2002 16:13:09 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g9AKX5f11616; Thu, 10 Oct 2002 16:33:05 -0400 Received: from localhost.localdomain (vpn50-65.rdu.redhat.com [172.16.50.65]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g9AKX4a23211; Thu, 10 Oct 2002 16:33:05 -0400 Received: (from kev@localhost) by localhost.localdomain (8.11.6/8.11.6) id g9AKWxw16309; Thu, 10 Oct 2002 13:32:59 -0700 Date: Thu, 10 Oct 2002 13:33:00 -0000 From: Kevin Buettner Message-Id: <1021010203259.ZM16308@localhost.localdomain> To: fnasser@redhat.com, gdb-patches@sources.redhat.com Subject: [PATCH RFA] New constvars.exp tests MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-10/txt/msg00221.txt.bz2 I am about to submit a patch which causes ptype to print a struct with qualifiers correctly. E.g, for the "crass" test, gdb currently exhibits the following behavior: (gdb) ptype crass type = struct crass { char * constptr; } This is incorrect because gdb failed to print a space in between "const" and "ptr". Unfortunately, if you don't use Dwarf 2, you'll simply end up seeing type = struct crass { char *ptr; } ...which is also wrong, but not unexpected (hence the xfail). For the "crisp" test, gdb currently does the following: (gdb) ptype crisp type = struct crisp { char * const*ptr; } Here is what I regard to be the correct behavior for these commands: (gdb) ptype crass type = struct crass { char * const ptr; } (gdb) ptype crisp type = struct crisp { char * const *ptr; } Okay? * gdb.base/constvars.c (struct crass, struct crisp): New structs. * gdb.base/constvars.exp (ptype crass, ptype crisp): New tests. Index: testsuite/gdb.base/constvars.c =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/constvars.c,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 constvars.c --- testsuite/gdb.base/constvars.c 16 Apr 1999 01:34:30 -0000 1.1.1.1 +++ testsuite/gdb.base/constvars.c 10 Oct 2002 20:12:12 -0000 @@ -166,6 +166,11 @@ main (void) const volatile char * const volatile vagary = &victor; const volatile unsigned char * const volatile vendor = &vicar; + + /* various structs with const members */ + + struct crass { char * const ptr; } crass; + struct crisp { char * const *ptr; } crisp; /* misc. references */ /* Index: testsuite/gdb.base/constvars.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/constvars.exp,v retrieving revision 1.7 diff -u -p -r1.7 constvars.exp --- testsuite/gdb.base/constvars.exp 19 Dec 2001 21:08:45 -0000 1.7 +++ testsuite/gdb.base/constvars.exp 10 Oct 2002 20:12:12 -0000 @@ -278,6 +278,11 @@ proc do_constvar_tests {} { gdb_test "print *locust" " = 70" local_compiler_xfail_check gdb_test "ptype locust" "type = double \\* const" + + local_compiler_xfail_check + gdb_test "ptype crass" "type = struct crass \{\[\r\n\]+\[\ \t\]+char \\* const ptr;\[\r\n\]+\}" + local_compiler_xfail_check + gdb_test "ptype crisp" "type = struct crisp \{\[\r\n\]+\[\ \t\]+char \\* const \\*ptr;\[\r\n\]+\}" } do_constvar_tests