Attached patch makes __builtin_signbit type-generic in the middle-end (PR 36757). Error message will be issued (from gcc/c-family/c-common.c) if argument is not real (or too few, or too many). gcc_assert() is used in expand_builtin_signbit() it cases that should be unreachable (failure to expand inline).
Tested on x86_64-apple-darwin14, OK to commit? FX
gcc/ 2015-08-17 Francois-Xavier Coudert <fxcoud...@gcc.gnu.org> PR middle-end/36757 * builtins.c (expand_builtin_signbit): Add asserts to make sure we can expand BUILT_IN_SIGNBIT inline. * builtins.def (BUILT_IN_SIGNBIT): Make type-generic. * doc/extend.texi: Document the type-generic __builtin_signbit. gcc/c-family/ 2015-08-17 Francois-Xavier Coudert <fxcoud...@gcc.gnu.org> PR middle-end/36757 * c-common.c (check_builtin_function_arguments): Add check for BUILT_IN_SIGNBIT argument. gcc/testsuite/ 2015-08-17 Francois-Xavier Coudert <fxcoud...@gcc.gnu.org> PR middle-end/36757 * gcc.dg/builtins-error.c: Add checks for __builtin_signbit. * gcc.dg/tg-tests.h: Add checks for __builtin_signbit.
signbit.diff
Description: Binary data