From 437bcafa1adcc9693a6437b410c98e17b1f78dbe Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Tue, 4 Oct 2011 07:40:07 +0000 Subject: [PATCH] * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests. From-SVN: r179493 --- gcc/ChangeLog | 4 ++++ gcc/config/sparc/sparc.c | 35 +++++++++++++++++------------------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f33228528141..886d22743c60 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2011-10-04 Eric Botcazou + + * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests. + 2011-10-04 Andreas Krebbel * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 4df9f6a8088f..5e67b4c00937 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -9716,24 +9716,23 @@ sparc_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, if (ignore) { - switch (icode) - { - case CODE_FOR_alignaddrsi_vis: - case CODE_FOR_alignaddrdi_vis: - case CODE_FOR_wrgsr_vis: - case CODE_FOR_bmasksi_vis: - case CODE_FOR_bmaskdi_vis: - case CODE_FOR_cmask8si_vis: - case CODE_FOR_cmask8di_vis: - case CODE_FOR_cmask16si_vis: - case CODE_FOR_cmask16di_vis: - case CODE_FOR_cmask32si_vis: - case CODE_FOR_cmask32di_vis: - break; - - default: - return build_zero_cst (rtype); - } + /* Note that a switch statement instead of the sequence of tests would + be incorrect as many of the CODE_FOR values could be CODE_FOR_nothing + and that would yield multiple alternatives with identical values. */ + if (icode == CODE_FOR_alignaddrsi_vis + || icode == CODE_FOR_alignaddrdi_vis + || icode == CODE_FOR_wrgsr_vis + || icode == CODE_FOR_bmasksi_vis + || icode == CODE_FOR_bmaskdi_vis + || icode == CODE_FOR_cmask8si_vis + || icode == CODE_FOR_cmask8di_vis + || icode == CODE_FOR_cmask16si_vis + || icode == CODE_FOR_cmask16di_vis + || icode == CODE_FOR_cmask32si_vis + || icode == CODE_FOR_cmask32di_vis) + ; + else + return build_zero_cst (rtype); } switch (icode) -- 2.47.3