Commit da3237d1 by Steven Bosscher

varasm.c (assemble_external): #if 0 out the new assert from the previous commit...

	* varasm.c (assemble_external): #if 0 out the new assert from the 
	previous commit, it breaks the Java and Go front ends.

From-SVN: r185825
parent bbee5843
2012-03-26 Steven Bosscher <steven@gcc.gnu.org> 2012-03-26 Steven Bosscher <steven@gcc.gnu.org>
* varasm.c (assemble_external): #if 0 out the new assert from the
previous commit, it breaks the Java and Go front ends.
2012-03-26 Steven Bosscher <steven@gcc.gnu.org>
* toplev.c (check_global_declaration_1): Do not call assemble_external. * toplev.c (check_global_declaration_1): Do not call assemble_external.
* expr.c (emit_block_move_libcall_fn): Likewise. * expr.c (emit_block_move_libcall_fn): Likewise.
(clear_storage_libcall_fn): Likewise. (clear_storage_libcall_fn): Likewise.
......
...@@ -2170,6 +2170,10 @@ assemble_external (tree decl ATTRIBUTE_UNUSED) ...@@ -2170,6 +2170,10 @@ assemble_external (tree decl ATTRIBUTE_UNUSED)
If it's not, we should not be calling this function. */ If it's not, we should not be calling this function. */
gcc_assert (asm_out_file); gcc_assert (asm_out_file);
/* In a perfect world, the following condition would be true.
Sadly, the Java and Go front ends emit assembly *from the front end*,
bypassing the call graph. See PR52739. Fix before GCC 4.8. */
#if 0
/* This function should only be called if we are expanding, or have /* This function should only be called if we are expanding, or have
expanded, to RTL. expanded, to RTL.
Ideally, only final.c would be calling this function, but it is Ideally, only final.c would be calling this function, but it is
...@@ -2177,6 +2181,7 @@ assemble_external (tree decl ATTRIBUTE_UNUSED) ...@@ -2177,6 +2181,7 @@ assemble_external (tree decl ATTRIBUTE_UNUSED)
for further discussion. */ for further discussion. */
gcc_assert (cgraph_state == CGRAPH_STATE_EXPANSION gcc_assert (cgraph_state == CGRAPH_STATE_EXPANSION
|| cgraph_state == CGRAPH_STATE_FINISHED); || cgraph_state == CGRAPH_STATE_FINISHED);
#endif
if (!DECL_P (decl) || !DECL_EXTERNAL (decl) || !TREE_PUBLIC (decl)) if (!DECL_P (decl) || !DECL_EXTERNAL (decl) || !TREE_PUBLIC (decl))
return; return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment