diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-10-04 07:40:07 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-10-04 07:40:07 +0000 |
commit | 437bcafa1adcc9693a6437b410c98e17b1f78dbe (patch) | |
tree | f7529d05f44cb01bd818dc18ad82197b474634ba | |
parent | aecb6197237d88797df2334cd20c89697a54c438 (diff) | |
download | gcc-437bcafa1adcc9693a6437b410c98e17b1f78dbe.zip gcc-437bcafa1adcc9693a6437b410c98e17b1f78dbe.tar.gz gcc-437bcafa1adcc9693a6437b410c98e17b1f78dbe.tar.bz2 |
* config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
From-SVN: r179493
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 35 |
2 files changed, 21 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f332285..886d227 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2011-10-04 Eric Botcazou <ebotcazou@adacore.com> + + * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests. + 2011-10-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * 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 4df9f6a..5e67b4c 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) |