[PATCH] Fix -Wunused-var-35.C (was Re: [PATCH][C++] Improve compile-time by ordering expensive checks last)

Richard Biener rguenther@suse.de
Thu Apr 25 11:48:00 GMT 2019


On Thu, 25 Apr 2019, Jakub Jelinek wrote:

> On Thu, Apr 25, 2019 at 01:09:00PM +0200, Rainer Orth wrote:
> > > 	cp/
> > > 	* call.c (null_ptr_cst_p): Order checks according to expensiveness.
> > > 	(conversion_null_warnings): Likewise.
> > > 	* typeck.c (same_type_ignoring_top_level_qualifiers_p): Return
> > > 	early if type1 == type2.
> > 
> > this patch caused
> > 
> > +XPASS: g++.dg/warn/Wunused-var-35.C  -std=gnu++98 bug (test for warnings, line 14)
> > 
> > First seen on i386-pc-solaris2.11 and sparc-sun-solaris2.11, according
> > to gcc-testresults everywhere.  Confirmed by reverting the patch locally
> > and re-testing the affected testcase.
> 
> I can reproduce that too, seems to be the
> @@ -6896,8 +6897,8 @@
>      }
>    /* Handle zero as null pointer warnings for cases other
>       than EQ_EXPR and NE_EXPR */
> -  else if (null_ptr_cst_p (expr) &&
> -	   (TYPE_PTR_OR_PTRMEM_P (totype) || NULLPTR_TYPE_P (totype)))
> +  else if ((TYPE_PTR_OR_PTRMEM_P (totype) || NULLPTR_TYPE_P (totype))
> +	   && null_ptr_cst_p (expr))
>      {
>        location_t loc = get_location_for_expr_unwinding_for_system_header (expr);
>        maybe_warn_zero_as_null_pointer_constant (expr, loc);
> hunk.  The Wunused-var-35.C patch hasn't been posted to gcc-patches, but
> judging from the corresponding PR, I'd say the right thing is below.
> 
> Regtested on x86_64-linux and i686-linux, ok for trunk?

The patch would be obvious but I wonder how the above can change 
anything...  (but I can reproduce with even only that change)

Richard.

> 2019-04-25  Jakub Jelinek  <jakub@redhat.com>
> 
> 	PR c++/44648
> 	* g++.dg/warn/Wunused-var-35.C: Remove xfail.
> 
> --- gcc/testsuite/g++.dg/warn/Wunused-var-35.C.jj	2019-02-04 09:44:31.365413407 +0100
> +++ gcc/testsuite/g++.dg/warn/Wunused-var-35.C	2019-04-25 13:24:49.717065815 +0200
> @@ -11,9 +11,8 @@ int main()
>    else
>      return 1;
>  
> -  if (const bool b2 = 1) // { dg-warning "\\\[-Wunused-variable\\\]" "bug" { xfail c++98_only } }
> +  if (const bool b2 = 1) // { dg-warning "\\\[-Wunused-variable\\\]" }
>      return 0;
>    else
>      return 1;
>  }
> -
> 
> 
> 	Jakub
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany;
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah; HRB 21284 (AG NÌrnberg)


More information about the Gcc-patches mailing list