diff mbox

[pph] Add cp_global_trees to cache in preload (issue4635077)

Message ID 20110628192324.DFF861C36CB@gchare.mtv.corp.google.com
State New
Headers show

Commit Message

Gab Charette June 28, 2011, 7:23 p.m. UTC
Add the cp_global_trees to the cache during the preload.

Those are preconstructed trees which we only need the pointers to (i.e. they should be identical in both the .cc and .h)

One exception to this is the keyed_classes tree which is generated during parsing.

We will need to merge the keyed_classes tree eventually when working with multiple pph's.

2011-06-28  Gabriel Charette  <gchare@google.com>

	* pph-streamer.c (pph_preload_common_nodes):
	Add cp_global_trees[] to cache.

	* g++.dg/pph/x1typerefs.cc: Remove xfail.


--
This patch is available for review at http://codereview.appspot.com/4635077

Comments

Diego Novillo June 28, 2011, 7:25 p.m. UTC | #1
On Tue, Jun 28, 2011 at 15:23, Gabriel Charette <gchare@google.com> wrote:

> 2011-06-28  Gabriel Charette  <gchare@google.com>
>
>        * pph-streamer.c (pph_preload_common_nodes):
>        Add cp_global_trees[] to cache.
>
>        * g++.dg/pph/x1typerefs.cc: Remove xfail.

OK.


Diego.
diff mbox

Patch

diff --git a/gcc/cp/pph-streamer.c b/gcc/cp/pph-streamer.c
index e919baf..c62864a 100644
--- a/gcc/cp/pph-streamer.c
+++ b/gcc/cp/pph-streamer.c
@@ -79,6 +79,17 @@  pph_preload_common_nodes (struct lto_streamer_cache_d *cache)
     if (c_global_trees[i])
       lto_streamer_cache_append (cache, c_global_trees[i]);
 
+  /* cp_global_trees[] can have NULL entries in it.  Skip them.  */
+  for (i = 0; i < CPTI_MAX; i++)
+    {
+      /* Also skip trees which are generated while parsing.  */
+      if (i == CPTI_KEYED_CLASSES)
+	continue;
+
+      if (cp_global_trees[i])
+	lto_streamer_cache_append (cache, cp_global_trees[i]);
+    }
+
   lto_streamer_cache_append (cache, global_namespace);
 }
 
diff --git a/gcc/testsuite/g++.dg/pph/x1typerefs.cc b/gcc/testsuite/g++.dg/pph/x1typerefs.cc
index ba7580f..6aa0e96 100644
--- a/gcc/testsuite/g++.dg/pph/x1typerefs.cc
+++ b/gcc/testsuite/g++.dg/pph/x1typerefs.cc
@@ -1,6 +1,3 @@ 
-// { dg-xfail-if "BOGUS" { "*-*-*" } { "-fpph-map=pph.map" } }
-// { dg-bogus "c1typerefs.h:11:18: error: cannot convert 'const std::type_info.' to 'const std::type_info.' in initialization" "" { xfail *-*-* } 0 }
-
 #include "x1typerefs.h"
 
 int derived::method() {