From 5c944c6cb8a54f29a394493e48429345f2f8f08d Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 8 Jan 2014 09:06:27 +0000 Subject: re PR middle-end/59630 (ICE converting the return type of a builtin function) 2014-01-08 Richard Biener PR middle-end/59630 * gimple.h (is_gimple_builtin_call): Remove. (gimple_builtin_call_types_compatible_p): New. (gimple_call_builtin_p): New overload. * gimple.c (is_gimple_builtin_call): Remove. (validate_call): Rename to ... (gimple_builtin_call_types_compatible_p): ... this and export. Also check return types. (validate_type): New static function. (gimple_call_builtin_p): New overload and adjust. * gimple-fold.c (gimple_fold_builtin): Fold the return value. (gimple_fold_call): Likewise. Use gimple_call_builtin_p. (gimple_fold_stmt_to_constant_1): Likewise. * tsan.c (instrument_gimple): Use gimple_call_builtin_p. * gcc.dg/pr59630.c: New testcase. From-SVN: r206421 --- gcc/gimple.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/gimple.h') diff --git a/gcc/gimple.h b/gcc/gimple.h index df92863..0e80d2e 100644 --- a/gcc/gimple.h +++ b/gcc/gimple.h @@ -1253,7 +1253,8 @@ extern tree gimple_unsigned_type (tree); extern tree gimple_signed_type (tree); extern alias_set_type gimple_get_alias_set (tree); extern bool gimple_ior_addresses_taken (bitmap, gimple); -extern bool is_gimple_builtin_call (gimple stmt); +extern bool gimple_builtin_call_types_compatible_p (gimple, tree); +extern bool gimple_call_builtin_p (gimple); extern bool gimple_call_builtin_p (gimple, enum built_in_class); extern bool gimple_call_builtin_p (gimple, enum built_in_function); extern bool gimple_asm_clobbers_memory_p (const_gimple); -- cgit v1.1