aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandra Loosemore <sandra@codesourcery.com>2009-05-15 10:20:55 -0400
committerSandra Loosemore <sandra@gcc.gnu.org>2009-05-15 10:20:55 -0400
commit1bd74ad9803518db3978dade5031dab2a481cc3a (patch)
treea4e17d6e5cc9b040396bbab73e36efd218a6a7be
parentdc34db56f182d392612a054dcd43497b79b31449 (diff)
downloadgcc-1bd74ad9803518db3978dade5031dab2a481cc3a.zip
gcc-1bd74ad9803518db3978dade5031dab2a481cc3a.tar.gz
gcc-1bd74ad9803518db3978dade5031dab2a481cc3a.tar.bz2
optabs.c (prepare_float_lib_cmp): Test that the comparison...
2009-05-15 Sandra Loosemore <sandra@codesourcery.com> gcc/ * optabs.c (prepare_float_lib_cmp): Test that the comparison, swapped, and reversed optabs exist before trying to use them. From-SVN: r147578
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/optabs.c9
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b96b06b..d036aa9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,7 +1,11 @@
+2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
+
+ * optabs.c (prepare_float_lib_cmp): Test that the comparison,
+ swapped, and reversed optabs exist before trying to use them.
+
2009-05-15 Paul Brook <paul@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com>
- gcc/
* config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
loads. Allow PRE_DEC.
(output_move_neon): Handle PRE_DEC.
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 9c8cb86..3a13ead 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -4322,10 +4322,12 @@ prepare_float_lib_cmp (rtx x, rtx y, enum rtx_code comparison,
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))
{
- if ((libfunc = optab_libfunc (code_to_optab[comparison], mode)))
+ if (code_to_optab[comparison]
+ && (libfunc = optab_libfunc (code_to_optab[comparison], mode)))
break;
- if ((libfunc = optab_libfunc (code_to_optab[swapped] , mode)))
+ if (code_to_optab[swapped]
+ && (libfunc = optab_libfunc (code_to_optab[swapped], mode)))
{
rtx tmp;
tmp = x; x = y; y = tmp;
@@ -4333,7 +4335,8 @@ prepare_float_lib_cmp (rtx x, rtx y, enum rtx_code comparison,
break;
}
- if ((libfunc = optab_libfunc (code_to_optab[reversed], mode))
+ if (code_to_optab[reversed]
+ && (libfunc = optab_libfunc (code_to_optab[reversed], mode))
&& FLOAT_LIB_COMPARE_RETURNS_BOOL (mode, reversed))
{
comparison = reversed;