From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28373 invoked by alias); 8 May 2007 20:22:31 -0000 Received: (qmail 28364 invoked by uid 22791); 8 May 2007 20:22:30 -0000 X-Spam-Check-By: sourceware.org Received: from palrel10.hp.com (HELO palrel10.hp.com) (156.153.255.245) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 08 May 2007 20:22:27 +0000 Received: from smtp2.cup.hp.com (smtp2.cup.hp.com [15.4.32.118]) by palrel10.hp.com (Postfix) with ESMTP id 3430F3453A for ; Tue, 8 May 2007 13:22:26 -0700 (PDT) Received: from hpadl693.cup.hp.com (hpadl693.cup.hp.com [15.244.96.238]) by smtp2.cup.hp.com (Postfix) with ESMTP id 28CCA30E602; Tue, 8 May 2007 20:14:23 +0000 (UTC) Received: (from cdb@localhost) by hpadl693.cup.hp.com (8.9.3 (PHNE_29774)/8.7.3 TIS Messaging 5.0) id NAA04796; Tue, 8 May 2007 13:22:25 -0700 (PDT) Date: Tue, 08 May 2007 20:22:00 -0000 From: Carl Burch Message-Id: <200705082022.NAA04796@hpadl693.cup.hp.com> To: gdb@sourceware.org Subject: DWARF-2 expression error in location list entries Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2007-05/txt/msg00031.txt.bz2 In dwarf2expr.c function execute_stack_op() there are two occurrences of error() calls asserting : if (op_ptr != op_end && *op_ptr != DW_OP_piece) error (_("DWARF-2 expression error: DW_OP_reg operations must be " "used either alone or in conjuction with DW_OP_piece.")); A couple of us have looked for that first restriction in the DWARF3 standard and not found it. I also went back to the DWARF2 standard literally cited by the message and failed to find it there as well. Can anyone point out where to read the restriction these error() calls refer to? The expression we have in mind to add is to describe Fortran reference parameters in location list entries like : { 0x4022720--0x4022724: DW_OP_regx 32 DW_OP_deref } Yes, we know that Gnu Fortran describes reference params in terms of passing the underlying pointers by value instead of the original Fortran types by reference, thereby avoiding this problem. This is a case where we're trying to be better instead of de facto standard. - Carl Burch HP WDB Team P.S. If anyone edits this file soon, you might want to fix the spelling of "conjuction" in the message.