From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26035 invoked by alias); 28 Apr 2017 09:31:40 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 25969 invoked by uid 89); 28 Apr 2017 09:31:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 28 Apr 2017 09:31:38 +0000 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 85A36AC87 for ; Fri, 28 Apr 2017 09:31:33 +0000 (UTC) Resent-From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Resent-To: GCC Patches Resent-Date: Fri, 28 Apr 2017 11:31:33 +0200 Resent-Message-ID: <09ddb073-c9cf-81bc-75a1-8e9639612d7f@suse.cz> Resent-User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Message-Id: <2a0a49504761b82ba3a21addd134365658713f28.1493371589.git.mliska@suse.cz> In-Reply-To: References: From: marxin Date: Fri, 28 Apr 2017 09:31:00 -0000 Subject: [PATCH 6/8] Fix format_gcov to not print misleading values (PR gcov-profile/53915) To: gcc-patches@gcc.gnu.org Cc: hubicka@ucw.cz, nathan@acm.org X-IsSubscribed: yes X-SW-Source: 2017-04/txt/msg01460.txt.bz2 gcc/ChangeLog: 2017-04-27 Martin Liska PR gcov-profile/53915 * gcov.c (format_gcov): Print 'NAN %' when top > bottom. --- gcc/gcov.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gcc/gcov.c b/gcc/gcov.c index 0adb4466f70..22378583c5c 100644 --- a/gcc/gcov.c +++ b/gcc/gcov.c @@ -1942,6 +1942,13 @@ format_gcov (gcov_type top, gcov_type bottom, int dp) { static char buffer[20]; + /* Handle invalid values that would result in a misleading value. */ + if (bottom != 0 && top > bottom && dp >= 0) + { + sprintf (buffer, "NAN %%"); + return buffer; + } + if (dp >= 0) { float ratio = bottom ? (float)top / bottom : 0; -- 2.12.2