Fix parser memory leak in cilk_simd_fn_info
authorMartin Liska <mliska@suse.cz>
Fri, 27 Nov 2015 08:37:44 +0000 (09:37 +0100)
committerMartin Liska <marxin@gcc.gnu.org>
Fri, 27 Nov 2015 08:37:44 +0000 (08:37 +0000)
* parser.c (cp_parser_late_parsing_cilk_simd_fn_info):
Release tokens.

From-SVN: r230996

gcc/cp/ChangeLog
gcc/cp/parser.c

index 1d6e252..eb4bb68 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-27  Martin Liska  <mliska@suse.cz>
+
+       * parser.c (cp_parser_late_parsing_cilk_simd_fn_info):
+       Release tokens.
+
 2015-11-26  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location
index a9c0a45..6583d4c 100644 (file)
@@ -35015,6 +35015,7 @@ cp_parser_late_parsing_cilk_simd_fn_info (cp_parser *parser, tree attrs)
       error ("%<#pragma omp declare simd%> of %<simd%> attribute cannot be "
             "used in the same function marked as a Cilk Plus SIMD-enabled "
             " function");
+      parser->cilk_simd_fn_info->tokens.release ();
       XDELETE (parser->cilk_simd_fn_info);
       parser->cilk_simd_fn_info = NULL;
       return attrs;
@@ -35052,6 +35053,7 @@ cp_parser_late_parsing_cilk_simd_fn_info (cp_parser *parser, tree attrs)
       attrs = c;
     }
   info->fndecl_seen = true;
+  parser->cilk_simd_fn_info->tokens.release ();
   XDELETE (parser->cilk_simd_fn_info);
   parser->cilk_simd_fn_info = NULL;
   return attrs;