From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753505AbdGSMzR (ORCPT ); Wed, 19 Jul 2017 08:55:17 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:54552 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752794AbdGSMzP (ORCPT ); Wed, 19 Jul 2017 08:55:15 -0400 From: Arnd Bergmann To: x86@kernel.org, Bill Metzenthen , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" Cc: linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH 2/8] x86: math-emu: possible uninitialized variable use Date: Wed, 19 Jul 2017 14:53:00 +0200 Message-Id: <20170719125310.2487451-3-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170719125310.2487451-1-arnd@arndb.de> References: <20170719125310.2487451-1-arnd@arndb.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:q1xu2hiXnYVBVfomHT7izp2P/3nwK6ccKAX/yqTE88eCvyTnaEt FEe4Ikp9HQd2T7eE25m0a/vUkZqOpsmySsIVhLYzMydH56C3vA3iWXXXCWZ1sogX4D4BNXP MHePfZR3R9CwqYYs8ycygvMzzrAo6UWjcYfkrrYcc13No0DGphwZ5W4Q502U+CVZh6HoLjL yFjJFVtf2fT2VaUrG84cw== X-UI-Out-Filterresults: notjunk:1;V01:K0:7BmvEqTNuuA=:qgJ3f9ZnztC4BAN4WO7iMZ pLteNWz7p6H6VNGohMqGu7EvEwOmAh7XegZ0GmJblqONznfwFr3CxgQSjZC+NJDBg+k9a1whg 4doUoWNjoYaXCgsVjapATyZiGSPr4DtrYieWIKzkd3YN4KQ4tArT3wGAsH2DcPYj9b+fQr2GD bxLxNMhh6VuKTBAQZCcZLOIggHWQ6OM1KSmxEp7xmfF5nbL/mdHIfnJDmDEDZoc5ARMyT2CDw KvVYfu4CN1tJZre6YoaJ0nigk8s27sxBJMRumuF+JNk9nhhhjEsdVehgrC8sJfxJoCRzqmFEr 4EU3ImctfXFYSoHq4XHflv3A+nx0ta5v9ZrNOiM0/QZO5hoan9Yjv4HJR7poduwnLAixLSgx0 yC4RJqhK+IzAnAc0adxZk7TAAxR5mKYbdxpRdI+Jcp5M8P6bN003sZbAiT1JtM++IcLzbOTLE 4oIV0mZA42rNZoZunoP8xbgTn0ZCVsyT/NyJ+IVsopo9wW6tvnTU4r+mpSOEVyOvjbG7QnQpI 9oqIJpdfz3c0yGcWqDFRwNGAPRFUf+4KSndTtdiDaI4voyU9VUxgWkK/PFmylfCh8CKaBeWJn K79tmME515AptEVm5c7+RuTpypSnnlTitNw8lK976txmY3WkLyW0nEmI5PL9TVoAjs0RyI1ht FyvcQxkNCZCYQpu/ZA6C5avF8ruetyQoMzdHEOjxZKHaHUJ8KeCiwP3a94/nc2m1u7tZTHGYj 8r/zr1vF+cjCK6pWGK2nIK/HPMQbrFtaEmTmgf2lNPoLgyOwHUowItySL18= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When building the kernel with "make EXTRA_CFLAGS=...", this overrides the "PARANOID" preprocessor macro defined in arch/x86/math-emu/Makefile, and we run into a build warning: arch/x86/math-emu/reg_compare.c: In function ‘compare_i_st_st’: arch/x86/math-emu/reg_compare.c:254:6: error: ‘f’ may be used uninitialized in this function [-Werror=maybe-uninitialized] This fixes the implementation to work correctly even without the PARANOID flag, and also fixes the Makefile to not use the EXTRA_CFLAGS variable but instead use the ccflags-y variable in the Makefile that is meant for this purpose. Signed-off-by: Arnd Bergmann --- Originally sent on Oct. 17 2016, resending unmodified --- arch/x86/math-emu/Makefile | 4 ++-- arch/x86/math-emu/reg_compare.c | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/x86/math-emu/Makefile b/arch/x86/math-emu/Makefile index 9b0c63b60302..1b2dac174321 100644 --- a/arch/x86/math-emu/Makefile +++ b/arch/x86/math-emu/Makefile @@ -5,8 +5,8 @@ #DEBUG = -DDEBUGGING DEBUG = PARANOID = -DPARANOID -EXTRA_CFLAGS := $(PARANOID) $(DEBUG) -fno-builtin $(MATH_EMULATION) -EXTRA_AFLAGS := $(PARANOID) +ccflags-y += $(PARANOID) $(DEBUG) -fno-builtin $(MATH_EMULATION) +asflags-y += $(PARANOID) # From 'C' language sources: C_OBJS =fpu_entry.o errors.o \ diff --git a/arch/x86/math-emu/reg_compare.c b/arch/x86/math-emu/reg_compare.c index b77360fdbf4a..19b33b50adfa 100644 --- a/arch/x86/math-emu/reg_compare.c +++ b/arch/x86/math-emu/reg_compare.c @@ -168,7 +168,7 @@ static int compare(FPU_REG const *b, int tagb) /* This function requires that st(0) is not empty */ int FPU_compare_st_data(FPU_REG const *loaded_data, u_char loaded_tag) { - int f = 0, c; + int f, c; c = compare(loaded_data, loaded_tag); @@ -189,12 +189,12 @@ int FPU_compare_st_data(FPU_REG const *loaded_data, u_char loaded_tag) case COMP_No_Comp: f = SW_C3 | SW_C2 | SW_C0; break; -#ifdef PARANOID default: +#ifdef PARANOID EXCEPTION(EX_INTERNAL | 0x121); +#endif /* PARANOID */ f = SW_C3 | SW_C2 | SW_C0; break; -#endif /* PARANOID */ } setcc(f); if (c & COMP_Denormal) { @@ -205,7 +205,7 @@ int FPU_compare_st_data(FPU_REG const *loaded_data, u_char loaded_tag) static int compare_st_st(int nr) { - int f = 0, c; + int f, c; FPU_REG *st_ptr; if (!NOT_EMPTY(0) || !NOT_EMPTY(nr)) { @@ -235,12 +235,12 @@ static int compare_st_st(int nr) case COMP_No_Comp: f = SW_C3 | SW_C2 | SW_C0; break; -#ifdef PARANOID default: +#ifdef PARANOID EXCEPTION(EX_INTERNAL | 0x122); +#endif /* PARANOID */ f = SW_C3 | SW_C2 | SW_C0; break; -#endif /* PARANOID */ } setcc(f); if (c & COMP_Denormal) { @@ -283,12 +283,12 @@ static int compare_i_st_st(int nr) case COMP_No_Comp: f = X86_EFLAGS_ZF | X86_EFLAGS_PF | X86_EFLAGS_CF; break; -#ifdef PARANOID default: +#ifdef PARANOID EXCEPTION(EX_INTERNAL | 0x122); +#endif /* PARANOID */ f = 0; break; -#endif /* PARANOID */ } FPU_EFLAGS = (FPU_EFLAGS & ~(X86_EFLAGS_ZF | X86_EFLAGS_PF | X86_EFLAGS_CF)) | f; if (c & COMP_Denormal) { -- 2.9.0