diff mbox

[C++1y,1/4] Use translation-unit-global rather than parameter-list-local counter for generic type names to facilitate nested implicit function templates.

Message ID 8cc60b80eb233f0314e889da4d1861ac@imap.force9.net
State New
Headers show

Commit Message

Adam Butcher Sept. 22, 2013, 12:41 p.m. UTC
On 20.09.2013 18:46, Jason Merrill wrote:
> On 09/19/2013 02:37 PM, Adam Butcher wrote:
>> +  static int i = 0;
>
> I think this needs to be global and GTY so that it works properly 
> with PCH.
>
Didn't consider PCH.  This delta OK?
diff mbox

Patch

--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -28897,12 +28897,12 @@  c_parse_file (void)
  /* Create an identifier for a generic parameter type (a synthesized
     template parameter implied by `auto' or a concept identifier). */

+static GTY(()) int generic_parm_count;
  static tree
  make_generic_type_name ()
  {
    char buf[32];
-  static int i = 0;
-  sprintf (buf, "<auto%d>", ++i);
+  sprintf (buf, "<auto%d>", ++generic_parm_count);
    return get_identifier (buf);
  }