+++ /dev/null
-The problem here is that we have an indirect jump to a label.
-JUMP_LABEL (insn) will be NULL but we will have a reg note REG_LABEL
-for the label. This patch fixes the problem by using that reg note.
-
-PR 24069 is reproducible with a profiledbootstrap on powerpc-linux-gnu
-and PR 20606 is reproducible with a java compiling from byte-code
-with -findirect-dispatch and -fPIC both of which are hard to a testcase
-for the testsuite.
-
---- gcc/gcc/cfgbuild.c 25 Jun 2005 01:59:28 -0000 1.68
-+++ gcc/gcc/cfgbuild.c 2 Oct 2005 18:22:25 -0000
-@@ -347,8 +347,19 @@ make_edges (basic_block min, basic_block
- /* Otherwise, we have a plain conditional or unconditional jump. */
- else
- {
-- gcc_assert (JUMP_LABEL (insn));
-- make_label_edge (edge_cache, bb, JUMP_LABEL (insn), 0);
-+ rtx label = JUMP_LABEL (insn);
-+ /* For indirect jumps to a label, JUMP_LABEL will be NULL, grab
-+ the label from the REG_LABEL note which should have been setup
-+ correctly already for the indirect jump. */
-+ if (!label)
-+ {
-+ label = find_reg_note (insn, REG_LABEL, NULL_RTX);
-+ if (label)
-+ label = XEXP (label, 0);
-+ }
-+
-+ gcc_assert (label);
-+ make_label_edge (edge_cache, bb, label, 0);
- }
- }
-
+++ /dev/null
---- a/gcc/c-pragma.c 2005-07-19 20:19:12.000000000 +0000
-+++ b/gcc/c-pragma.c 2005-10-19 09:03:52.461999480 +0000
-@@ -36,6 +36,7 @@
- #include "tm_p.h"
- #include "vec.h"
- #include "target.h"
-+#include "cgraph.h"
-
- #define GCC_BAD(gmsgid) \
- do { warning (OPT_Wpragmas, gmsgid); return; } while (0)
-@@ -310,7 +311,7 @@
- alias_id = TREE_PURPOSE (t);
- id = TREE_VALUE (t);
-
-- if (TREE_VALUE (t) == NULL)
-+ if (id == NULL)
- continue;
-
- decl = build_decl (FUNCTION_DECL, alias_id, default_function_type);
-@@ -330,6 +331,7 @@
- {
- tree name, value, x, decl;
- enum cpp_ttype t;
-+ struct cgraph_varpool_node *node;
-
- value = 0;
-
-@@ -354,6 +356,15 @@
- }
- else
- pending_weaks = tree_cons (name, value, pending_weaks);
-+
-+ decl = value ? identifier_global_value (value) : NULL_TREE;
-+ if (decl && DECL_P (decl))
-+ {
-+ /* Force DECL into the assembler output no matter what. */
-+ node = cgraph_varpool_node (decl);
-+ cgraph_varpool_mark_needed_node (node);
-+ node->force_output = true;
-+ }
- }
- #else
- void