aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto-streamer-out.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-10-09 22:31:53 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-10-09 22:31:53 +0000
commite9e4b3a892d0d19418f23bb17bdeac33f9a8bfd2 (patch)
tree8ac7173644937212b4dfddf787410b0ecfa43674 /gcc/lto-streamer-out.c
parentd0a9804e353b33d339e20f0aa2bd458a4ff08649 (diff)
downloadgcc-e9e4b3a892d0d19418f23bb17bdeac33f9a8bfd2.zip
gcc-e9e4b3a892d0d19418f23bb17bdeac33f9a8bfd2.tar.gz
gcc-e9e4b3a892d0d19418f23bb17bdeac33f9a8bfd2.tar.bz2
re PR lto/41638 (Back-end builtins are mishandled)
2009-10-09 Richard Guenther <rguenther@suse.de> PR lto/41638 * target-def.h (TARGET_BUILTIN_DECL): Define. (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL. * target.h (struct gcc_target): Add builtin_decl target hook. * doc/tm.texi (TARGET_BUILTIN_DECL): Document. * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of target builtins. * lto-streamer-out.c (lto_output_tree_pointers): Use sorry, not gcc_unreachable. (lto_output_builtin_tree): Sorry if the target does not support streaming target builtins. * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define. (rs6000_builtin_decl): New function. * config/i386/i386.c (TARGET_BUILTIN_DECL): Define. (ix86_builtin_decl): New function. From-SVN: r152606
Diffstat (limited to 'gcc/lto-streamer-out.c')
-rw-r--r--gcc/lto-streamer-out.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 499734f..9d097f0 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -1165,16 +1165,10 @@ lto_output_tree_pointers (struct output_block *ob, tree expr, bool ref_p)
}
if (CODE_CONTAINS_STRUCT (code, TS_OPTIMIZATION))
- {
- /* FIXME lto. Not handled yet. */
- gcc_unreachable ();
- }
+ sorry ("gimple bytecode streams do not support the optimization attribute");
if (CODE_CONTAINS_STRUCT (code, TS_TARGET_OPTION))
- {
- /* FIXME lto. Not handled yet. */
- gcc_unreachable ();
- }
+ sorry ("gimple bytecode streams do not support the target attribute");
}
@@ -1234,6 +1228,11 @@ lto_output_builtin_tree (struct output_block *ob, tree expr, int ix)
{
gcc_assert (lto_stream_as_builtin_p (expr));
+ if (DECL_BUILT_IN_CLASS (expr) == BUILT_IN_MD
+ && !targetm.builtin_decl)
+ sorry ("gimple bytecode streams do not support machine specific builtin "
+ "functions on this target");
+
output_record_start (ob, LTO_builtin_decl);
output_uleb128 (ob, DECL_BUILT_IN_CLASS (expr));
output_uleb128 (ob, DECL_FUNCTION_CODE (expr));