From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15248 invoked by alias); 6 May 2002 11:26:07 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 15165 invoked by uid 71); 6 May 2002 11:26:05 -0000 Resent-Date: 6 May 2002 11:26:05 -0000 Resent-Message-ID: <20020506112605.15164.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Bruno Haible Received:(qmail 14734 invoked from network); 6 May 2002 11:25:46 -0000 Received: from unknown (HELO sceaux.ilog.fr) (193.55.64.10) by sources.redhat.com with SMTP; 6 May 2002 11:25:46 -0000 Received: from ftp.ilog.fr (ftp.ilog.fr [193.55.64.11]) by sceaux.ilog.fr (8.11.6/8.11.6) with SMTP id g46BNGB26680 for ; Mon, 6 May 2002 13:23:17 +0200 (MET DST) Received: from laposte.ilog.fr ([193.55.64.67]) by ftp.ilog.fr (NAVGW 2.5.1.16) with SMTP id M2002050613254330989 for ; Mon, 06 May 2002 13:25:43 +0200 Received: from honolulu.ilog.fr ([172.17.4.133]) by laposte.ilog.fr (8.11.6/8.11.5) with ESMTP id g46BPg211539; Mon, 6 May 2002 13:25:42 +0200 (MET DST) Received: (from haible@localhost) by honolulu.ilog.fr (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id NAA28026; Mon, 6 May 2002 13:23:27 +0200 Message-Id:<15574.26543.201662.809490@honolulu.ilog.fr> Date: Mon, 06 May 2002 04:26:00 -0000 From: Bruno Haible To: gcc-gnats@gcc.gnu.org Subject: debug/6577: debug info of static const variables leads to undefined references X-SW-Source: 2002-05/txt/msg00146.txt.bz2 List-Id: >Number: 6577 >Category: debug >Synopsis: debug info of static const variables leads to undefined references >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Mon May 06 04:26:05 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Bruno Haible >Release: 3.1 20020423 (prerelease) >Organization: GNU hackers >Environment: System: Linux linuix 2.4.18-4GB #1 Wed Mar 27 13:57:05 UTC 2002 i686 unknown Architecture: i686 host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: i686-pc-linux-gnu configured with: ../configure --prefix=/packages/gnu-snapshot --enable-shared --enable-version-specific-runtime-libs --enable-nls >Description: For C++ variables with attributes 'static const' which can be optimized away, the debug info that is generated leads to undefined references. >How-To-Repeat: $ cat <<\EOF > foo.cc struct cl_class {}; extern cl_class cl_class_fixnum; extern cl_class cl_class_bignum; static const void* const cl_I_classes_dummy[] = { &cl_I_classes_dummy, &cl_class_fixnum }; int main () {} EOF $ g++ -O2 foo.cc ; OK, no error $ g++ -O2 -g foo.cc /usr/bin/ld: Dwarf Error: Invalid or unhandled FORM value: 14. /usr/bin/ld: Dwarf Error: Invalid or unhandled FORM value: 14. /usr/bin/ld: Dwarf Error: Invalid or unhandled FORM value: 14. /tmp/cco4BRgH.o::7: undefined reference to `cl_I_classes_dummy' /tmp/cco4BRgH.o::7: undefined reference to `cl_class_fixnum' collect2: ld returned 1 exit status >Fix: Omit the debug info for variables which are optimized away. >Release-Note: >Audit-Trail: >Unformatted: