diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 952d8a3e4563ecfbbb1388e179ba560d9ebc4429..74eba5267d83fbdf1c78ead26b78102be5c1a2df 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-01-24  Ian Lance Taylor  <ian@airs.com>
+
+	PR middle-end/25930
+	* cgraphunit.c (cgraph_output_in_order): Don't clear
+	cgraph_asm_nodes until after asm strings have been output.
+
 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
 
         * fix-header.c (read_scan_file): Add new parameter imultilib when
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 2b7942970bf3fbe89133c76a66b8989880203abc..57fc2eaa4058981f0aef09b3af9dc3cde9470367 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -1244,7 +1244,6 @@ cgraph_output_in_order (void)
       nodes[i].kind = ORDER_ASM;
       nodes[i].u.a = pa;
     }
-  cgraph_asm_nodes = NULL;
 
   for (i = 0; i < max; ++i)
     {
@@ -1270,6 +1269,8 @@ cgraph_output_in_order (void)
 	  gcc_unreachable ();
 	}
     }
+
+  cgraph_asm_nodes = NULL;
 }
 
 /* Mark visibility of all functions.