Patchwork C++ PATCH for c++/49117 (error message regression on conversion failure)

login
register
mail settings
Submitter Jakub Jelinek
Date June 18, 2011, 1:01 p.m.
Message ID <20110618130116.GS17079@tyan-ft48-01.lab.bos.redhat.com>
Download mbox | patch
Permalink /patch/100919/
State New
Headers show

Comments

Jakub Jelinek - June 18, 2011, 1:01 p.m.
On Tue, Jun 14, 2011 at 01:38:41PM -0400, Jason Merrill wrote:
> commit 16136651e85c19a1e8338a0bd1b2b1a453413c23
> Author: Jason Merrill <jason@redhat.com>
> Date:   Tue Jun 14 09:43:25 2011 -0400
> 
>     	* error.c (type_to_string): Print typedef-stripped version too.
> 
> diff --git a/gcc/cp/error.c b/gcc/cp/error.c
> index 96796c2..22470dc 100644
> --- a/gcc/cp/error.c
> +++ b/gcc/cp/error.c
> @@ -2632,6 +2632,15 @@ type_to_string (tree typ, int verbose)
>  
>    reinit_cxx_pp ();
>    dump_type (typ, flags);
> +  if (typ && TYPE_P (typ) && typ != TYPE_CANONICAL (typ)
> +      && !uses_template_parms (typ))
> +    {
> +      tree aka = strip_typedefs (typ);
> +      pp_string (cxx_pp, " {aka");
> +      pp_cxx_whitespace (cxx_pp);
> +      dump_type (aka, flags);
> +      pp_character (cxx_pp, '}');
> +    }
>    return pp_formatted_text (cxx_pp);
>  }
>  

This caused
FAIL: obj-c++.dg/invalid-type-1.mm -fgnu-runtime  (test for errors, line 21)
FAIL: obj-c++.dg/invalid-type-1.mm -fgnu-runtime  (test for errors, line 24)
FAIL: obj-c++.dg/invalid-type-1.mm -fgnu-runtime (test for excess errors)
failures, fixed thusly, committed as obvious to trunk and 4.6:

2011-06-18  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/49432
	* obj-c++.dg/invalid-type-1.mm: Adjust for new error wording.



	Jakub

Patch

--- gcc/testsuite/obj-c++.dg/invalid-type-1.mm.jj	2010-11-15 18:53:29.000000000 +0100
+++ gcc/testsuite/obj-c++.dg/invalid-type-1.mm	2011-06-18 14:52:57.873566940 +0200
@@ -18,8 +18,8 @@  id <MyProtocol> object; /* This is fine.
 
 AClass <MyProtocol> *object1; /* This is fine.  */
 
-Integer <MyProtocol> *object2; /* { dg-error ".Integer. is not a template" } */
+Integer <MyProtocol> *object2; /* { dg-error ".Integer {aka int}. is not a template" } */
 /* { dg-error ".MyProtocol. was not declared in this scope" "" { target *-*-* } 21 } */
 
-Integer <NonExistingProtocol> *object3; /* { dg-error ".Integer. is not a template" } */
+Integer <NonExistingProtocol> *object3; /* { dg-error ".Integer {aka int}. is not a template" } */
 /* { dg-error ".NonExistingProtocol. was not declared in this scope" "" { target *-*-* } 24 } */