From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7164 invoked by alias); 5 Feb 2003 10:56:00 -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 7145 invoked by uid 71); 5 Feb 2003 10:56:00 -0000 Resent-Date: 5 Feb 2003 10:56:00 -0000 Resent-Message-ID: <20030205105600.7144.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, peturr02@ru.is Received: (qmail 7098 invoked by uid 48); 5 Feb 2003 10:55:35 -0000 Message-Id: <20030205105535.7097.qmail@sources.redhat.com> Date: Wed, 05 Feb 2003 10:56:00 -0000 From: peturr02@ru.is Reply-To: peturr02@ru.is To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: libstdc++/9582: ODR violation in std::allocator X-SW-Source: 2003-02/txt/msg00250.txt.bz2 List-Id: >Number: 9582 >Category: libstdc++ >Synopsis: ODR violation in std::allocator >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Feb 05 10:56:00 UTC 2003 >Closed-Date: >Last-Modified: >Originator: peturr02@ru.is >Release: gcc 3.4 from 20030205 >Organization: >Environment: Red Hat Linux 8.0 >Description: std::allocator<>::allocate calls __pool_alloc<>::allocate which uses the macro assert. The definition of assert depends on whether NDEBUG is defined before stl_alloc.h is included. If NDEBUG is defined in one source file before stl_alloc.h is included, but not in another source file, and those files are then linked together, the one-definition-rule is broken. Also, as a QoI issue, I think that the contents of standard headers (other than cassert) should not depend on the macro NDEBUG, and cassert should not be included by other standard headers. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: