Patchwork [pph] Rebuild compilation context from PPH images (3/6) (issue4408045)

login
register
mail settings
Submitter Diego Novillo
Date April 14, 2011, 7:41 p.m.
Message ID <20110414194109.6B025A00D@topo.tor.corp.google.com>
Download mbox | patch
Permalink /patch/91284/
State New
Headers show

Comments

Diego Novillo - April 14, 2011, 7:41 p.m.
We were not handling TYPE_DECLs properly.  They were being handled by
the first if, but the second one was an 'else if'.  Sigh.

Tested on x86_64.


Diego.

    	* pph-streamer-in.c (pph_stream_read_tree): Fix handling of
    	TYPE_DECLs.
    	* pph-streamer-out.c (pph_stream_write_tree): Likewise.



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

Patch

diff --git a/gcc/cp/ChangeLog.pph b/gcc/cp/ChangeLog.pph
index f717f85..7a92278 100644
--- a/gcc/cp/ChangeLog.pph
+++ b/gcc/cp/ChangeLog.pph
@@ -1,3 +1,9 @@ 
+2011-04-14  Diego Novillo  <dnovillo@google.com>
+
+	* pph-streamer-in.c (pph_stream_read_tree): Fix handling of
+	TYPE_DECLs.
+	* pph-streamer-out.c (pph_stream_write_tree): Likewise.
+
 2011-04-13  Diego Novillo  <dnovillo@google.com>
 
 	* name-lookup.c (pph_stream_write_binding_table): Handle
diff --git a/gcc/cp/pph-streamer-in.c b/gcc/cp/pph-streamer-in.c
index 335fab6..c98c2f4 100644
--- a/gcc/cp/pph-streamer-in.c
+++ b/gcc/cp/pph-streamer-in.c
@@ -784,7 +784,8 @@  pph_stream_read_tree (struct lto_input_block *ib ATTRIBUTE_UNUSED,
 	  if (TREE_CODE (expr) == FUNCTION_DECL)
 	    DECL_SAVED_TREE (expr) = pph_input_tree (stream);
 	}
-      else if (TREE_CODE (expr) == TYPE_DECL)
+
+      if (TREE_CODE (expr) == TYPE_DECL)
 	DECL_ORIGINAL_TYPE (expr) = pph_input_tree (stream);
     }
   else if (TREE_CODE (expr) == STATEMENT_LIST)
diff --git a/gcc/cp/pph-streamer-out.c b/gcc/cp/pph-streamer-out.c
index 16c8543..babf751 100644
--- a/gcc/cp/pph-streamer-out.c
+++ b/gcc/cp/pph-streamer-out.c
@@ -789,7 +789,8 @@  pph_stream_write_tree (struct output_block *ob, tree expr, bool ref_p)
 	  if (TREE_CODE (expr) == FUNCTION_DECL)
 	    pph_output_tree_aux (stream, DECL_SAVED_TREE (expr), ref_p);
 	}
-      else if (TREE_CODE (expr) == TYPE_DECL)
+
+      if (TREE_CODE (expr) == TYPE_DECL)
 	pph_output_tree (stream, DECL_ORIGINAL_TYPE (expr), ref_p);
     }
   else if (TREE_CODE (expr) == STATEMENT_LIST)