On Fri, May 17, 2013 at 09:00:21PM -0700, Sriraman Tallam wrote:
> --- common/config/i386/i386-common.c  (revision 198950)
> +++ common/config/i386/i386-common.c  (working copy)
> @@ -438,6 +440,18 @@ ix86_handle_option (struct gcc_options *opts,
>       }
>        return true;
>  
> +    case OPT_mlzcnt:
> +      if (value)
> +     {
> +       opts->x_ix86_isa_flags |= OPTION_MASK_ISA_LZCNT_SET;
> +       opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_LZCNT_SET;
> +     }
> +      else
> +     {
> +       opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_LZCNT_UNSET;
> +       opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_LZCNT_UNSET;
> +     }
> +
>      case OPT_mtbm:
>        if (value)
>       {

This change broke PR target/57688, because the -mlzcnt case falls thru
into the -mtbm case, so if you have -mlzcnt, but not -mtbm, it will enable
-mtbm anyway.

Fixed thusly, committed as obvious.

2013-06-23  Jakub Jelinek  <ja...@redhat.com>

        PR target/57688
        * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
        add missing return true.

--- gcc/common/config/i386/i386-common.c.jj     2013-06-23 20:43:34.000000000 
+0200
+++ gcc/common/config/i386/i386-common.c        2013-06-23 21:00:17.056390879 
+0200
@@ -451,6 +451,7 @@ ix86_handle_option (struct gcc_options *
          opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_LZCNT_UNSET;
          opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_LZCNT_UNSET;
        }
+      return true;
 
     case OPT_mtbm:
       if (value)


        Jakub

Reply via email to