From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 63018 invoked by alias); 28 Oct 2016 12:09:02 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 63006 invoked by uid 89); 28 Oct 2016 12:09:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,UNSUBSCRIBE_BODY autolearn=no version=3.3.2 spammy=indicator, hides, BODY, worried X-HELO: mail-qk0-f169.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding; bh=x6YpatfEzJjBekZEapy1S3rsjou/Rt9cis6YdirPzcI=; b=ZZx4Ui5bCZTOL8q3pdXgAhM93sRMzZospIz92DZ6WFd3O2qstVxXd3ZFaiDlvrolag fscGntOPgk4Kh3xDNGFXxe2cRUKmdBwFX0pgUeLhSzE9USH2JEeog6FWXEo5h7cn9ud9 cgi0rkg/1oiTg1odxlvELEtRkKpmYySQr3pN5W2XgiV8td+l9q54OM+LfpIUhvTMxzrQ 8ljxKEXN2PFO8QojwHiekuNC7/kBJHWdj7J+ED4L2Uob+ypE+aUStXrpQdRDS1rqasbe 8Zmmvr9Ry5rAolrNdNNDQvoNG3BQR7qNRrjlIirEn04gtB4f814Bd2davG/45GNaMFfB vnnQ== X-Gm-Message-State: ABUngvf+/6pV9cwYo30gkCLIUXLCDqFCrbFgOz9DgAXuIebNFwi9RAMsi/IRqygvvuqShnZn X-Received: by 10.55.16.147 with SMTP id 19mr1092555qkq.255.1477656539174; Fri, 28 Oct 2016 05:08:59 -0700 (PDT) Subject: Re: [PATCH] Fix -Os related -Werror failures. To: Florian Weimer , GNU C Library References: <6eac682f-26fa-6a47-9497-357206266ba1@redhat.com> <6be7dce5-bfa7-32c7-5bac-6c3b79776683@redhat.com> From: Carlos O'Donell Message-ID: Date: Fri, 28 Oct 2016 12:09:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <6be7dce5-bfa7-32c7-5bac-6c3b79776683@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-10/txt/msg00515.txt.bz2 On 10/28/2016 02:32 AM, Florian Weimer wrote: > On 10/28/2016 06:46 AM, Carlos O'Donell wrote: >> +/* With GCC 5.3 when compiling with -Os the compiler emits a warning >> + that buf[0] and buf[1] may be used uninitialized. This can only >> + happen in the case where tmpbuf[3] is used, and in that case the >> + write to the tmpbuf[1] and tmpbuf[2] was assured because >> + ucs4_to_cns11643 would have filled in those entries. The difficulty >> + is in getting the compiler to see this logic because tmpbuf[0] is >> + involved in determining the code page and is the indicator that >> + tmpbuf[2] is initialized. */ >> +DIAG_PUSH_NEEDS_COMMENT; >> +DIAG_IGNORE_NEEDS_COMMENT (5.3, "-Wmaybe-uninitialized"); > > This hides the warning for -O2 builds as well, so I don't think this is a good idea. > > Those who want to build with -Os or other special compiler flags > should just configure with --disable-werror. We can't account for > every optimization someone might want to disable in their build. I agree that we can't account for _all_ optimizations someone might want to disable in their build, but I think it is a reasonable goal to target a few key _default_ optimization including -O3, -O2, and -Os. In the case above we only limit the emitted warnings for the narrow code involved in iso-2022-cn-ext conversions. I'd be more worried if it required a widely used function with broadly disabled warnings. I agree with Arnd that this code is _overly_ complex and could be rewritten such that it's a little clearer and makes sense to the compiler at -Os. Should I try to cleanup the BODY code a bit to remove this particular diagnostic disabling? I know we've had several real uninitialized variable problems in the conversion code recently, so I'm also interested in having the compiler help us find more of these problems. -- Cheers, Carlos.