tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
authorRichard Biener <rguenther@suse.de>
Fri, 21 Apr 2017 08:58:39 +0000 (08:58 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 21 Apr 2017 08:58:39 +0000 (08:58 +0000)
2017-04-21  Richard Biener  <rguenther@suse.de>

* tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
(build_distinct_type_copy): Likewise.
(build_variant_type_copy): Likewise.
* tree.c (build_qualified_type): Pass down mem-stat info.
(build_distinct_type_copy): Likewise.
(build_variant_type_copy): Likewise.

cp/
* cp-tree.h (copy_decl): Annotate with CXX_MEM_STAT_INFO.
(copy_type): Likewise.
* lex.c (copy_decl): Pass down mem-stat info.
(copy_type): Likewise.

From-SVN: r247053

gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/lex.c
gcc/tree.c
gcc/tree.h

index c30b09b1061209ba001af138c963027f476dcd66..370d0b4d1b1cc8160605ce49083eb2d15e8b2dba 100644 (file)
@@ -1,3 +1,12 @@
+2017-04-21  Richard Biener  <rguenther@suse.de>
+
+       * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
+       (build_distinct_type_copy): Likewise.
+       (build_variant_type_copy): Likewise.
+       * tree.c (build_qualified_type): Pass down mem-stat info.
+       (build_distinct_type_copy): Likewise.
+       (build_variant_type_copy): Likewise.
+
 2017-04-21  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/80237
index 5e14c411b71959b7f71e41daf53bb7b1dff6ff62..dad7a0a2520f31c06c004a94241522816428d60b 100644 (file)
@@ -1,3 +1,10 @@
+2017-04-21  Richard Biener  <rguenther@suse.de>
+
+       * cp-tree.h (copy_decl): Annotate with CXX_MEM_STAT_INFO.
+       (copy_type): Likewise.
+       * lex.c (copy_decl): Pass down mem-stat info.
+       (copy_type): Likewise.
+
 2017-04-20  Jonathan Wakely  <jwakely@redhat.com>
 
        PR c++/80473
index 67dfea2c65bba684cbb519167ec5e08524050369..1d53e69b24101366e09a40a5b1983e069785e977 100644 (file)
@@ -6081,8 +6081,8 @@ extern tree unqualified_fn_lookup_error           (cp_expr);
 extern tree build_lang_decl                    (enum tree_code, tree, tree);
 extern tree build_lang_decl_loc                        (location_t, enum tree_code, tree, tree);
 extern void retrofit_lang_decl                 (tree);
-extern tree copy_decl                          (tree);
-extern tree copy_type                          (tree);
+extern tree copy_decl                          (tree CXX_MEM_STAT_INFO);
+extern tree copy_type                          (tree CXX_MEM_STAT_INFO);
 extern tree cxx_make_type                      (enum tree_code);
 extern tree make_class_type                    (enum tree_code);
 extern bool cxx_init                           (void);
index ad6318656ad96cae454f8476d9a93e08b1beb23b..0f8a269dce4dc8aa707e837fc9ab01fe43bba002 100644 (file)
@@ -607,11 +607,11 @@ cxx_dup_lang_specific_decl (tree node)
 /* Copy DECL, including any language-specific parts.  */
 
 tree
-copy_decl (tree decl)
+copy_decl (tree decl MEM_STAT_DECL)
 {
   tree copy;
 
-  copy = copy_node (decl);
+  copy = copy_node_stat (decl PASS_MEM_STAT);
   cxx_dup_lang_specific_decl (copy);
   return copy;
 }
@@ -645,11 +645,11 @@ copy_lang_type (tree node)
 /* Copy TYPE, including any language-specific parts.  */
 
 tree
-copy_type (tree type)
+copy_type (tree type MEM_STAT_DECL)
 {
   tree copy;
 
-  copy = copy_node (type);
+  copy = copy_node_stat (type PASS_MEM_STAT);
   copy_lang_type (copy);
   return copy;
 }
index 72dbba4daadb425ded706330d8147e4941a65e80..f6516d15ff07c10deac410451d6190312f8cedaf 100644 (file)
@@ -6622,7 +6622,7 @@ get_qualified_type (tree type, int type_quals)
    exist.  This function never returns NULL_TREE.  */
 
 tree
-build_qualified_type (tree type, int type_quals)
+build_qualified_type (tree type, int type_quals MEM_STAT_DECL)
 {
   tree t;
 
@@ -6632,7 +6632,7 @@ build_qualified_type (tree type, int type_quals)
   /* If not, build it.  */
   if (!t)
     {
-      t = build_variant_type_copy (type);
+      t = build_variant_type_copy (type PASS_MEM_STAT);
       set_type_quals (t, type_quals);
 
       if (((type_quals & TYPE_QUAL_ATOMIC) == TYPE_QUAL_ATOMIC))
@@ -6695,9 +6695,9 @@ build_aligned_type (tree type, unsigned int align)
    TYPE_CANONICAL points to itself. */
 
 tree
-build_distinct_type_copy (tree type)
+build_distinct_type_copy (tree type MEM_STAT_DECL)
 {
-  tree t = copy_node (type);
+  tree t = copy_node_stat (type PASS_MEM_STAT);
 
   TYPE_POINTER_TO (t) = 0;
   TYPE_REFERENCE_TO (t) = 0;
@@ -6733,11 +6733,11 @@ build_distinct_type_copy (tree type)
    require structural equality checks). */
 
 tree
-build_variant_type_copy (tree type)
+build_variant_type_copy (tree type MEM_STAT_DECL)
 {
   tree t, m = TYPE_MAIN_VARIANT (type);
 
-  t = build_distinct_type_copy (type);
+  t = build_distinct_type_copy (type PASS_MEM_STAT);
 
   /* Since we're building a variant, assume that it is a non-semantic
      variant. This also propagates TYPE_STRUCTURAL_EQUALITY_P. */
index b136f5cce6b4fd8d9cedeee5ff4057d8d0c53090..599d34fb3a59f387f6e1fd4669233322d720091e 100644 (file)
@@ -4265,7 +4265,7 @@ extern tree get_qualified_type (tree, int);
 /* Like get_qualified_type, but creates the type if it does not
    exist.  This function never returns NULL_TREE.  */
 
-extern tree build_qualified_type (tree, int);
+extern tree build_qualified_type (tree, int CXX_MEM_STAT_INFO);
 
 /* Create a variant of type T with alignment ALIGN.  */
 
@@ -4283,8 +4283,8 @@ extern tree build_aligned_type (tree, unsigned int);
 
 /* Make a copy of a type node.  */
 
-extern tree build_distinct_type_copy (tree);
-extern tree build_variant_type_copy (tree);
+extern tree build_distinct_type_copy (tree CXX_MEM_STAT_INFO);
+extern tree build_variant_type_copy (tree CXX_MEM_STAT_INFO);
 
 /* Given a hashcode and a ..._TYPE node (for which the hashcode was made),
    return a canonicalized ..._TYPE node, so that duplicates are not made.