On Tue, Aug 22, 2017 at 9:47 PM, Daniel Santos <daniel.san...@pobox.com> wrote:
>> Please add UNKNOWN_ABI to the enum and initialize -mabi in i386.opt to
>> UNKNOWN_ABI.
>
> It would seem to me that UNSPECIFIED_ABI would be a better value name.
>
> Also, I don't really understand what opts_set and opts are, except that I had
> guessed opts_set is what the user asked for (or didn't ask for) and opts is
> what we're going to actually use.  Am I close?

Yes. opts_set is a flag that user specified an option at the command line.

However, I fail to see what is the problem. If nothing was specified,
then opts->x_ix86_abi is set to DEFAULT_ABI. Probably we don't need
Init(SYSV_ABI) in mabi= declaration at all.

Uros.

> I'm re-running tests, so if they pass is this OK?
>
> Thanks,
> Daniel
> ---
>  gcc/config/i386/i386-opts.h | 5 +++--
>  gcc/config/i386/i386.c      | 3 +--
>  gcc/config/i386/i386.opt    | 2 +-
>  3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/gcc/config/i386/i386-opts.h b/gcc/config/i386/i386-opts.h
> index 542cd0f3d67..a1d1552a3c6 100644
> --- a/gcc/config/i386/i386-opts.h
> +++ b/gcc/config/i386/i386-opts.h
> @@ -44,8 +44,9 @@ last_alg
>  /* Available call abi.  */
>  enum calling_abi
>  {
> -  SYSV_ABI = 0,
> -  MS_ABI = 1
> +  UNSPECIFIED_ABI = 0,
> +  SYSV_ABI = 1,
> +  MS_ABI = 2
>  };
>
>  enum fpmath_unit
> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
> index 650bcbc65ae..c08ad55fcd9 100644
> --- a/gcc/config/i386/i386.c
> +++ b/gcc/config/i386/i386.c
> @@ -5681,12 +5681,11 @@ ix86_option_override_internal (bool main_args_p,
>      opts->x_ix86_pmode = TARGET_LP64_P (opts->x_ix86_isa_flags)
>                          ? PMODE_DI : PMODE_SI;
>
> -  if (!opts_set->x_ix86_abi)
> +  if (opts_set->x_ix86_abi == UNSPECIFIED_ABI)
>      opts->x_ix86_abi = DEFAULT_ABI;
>
>    if (opts->x_ix86_abi == MS_ABI && TARGET_X32_P (opts->x_ix86_isa_flags))
>      error ("-mabi=ms not supported with X32 ABI");
> -  gcc_assert (opts->x_ix86_abi == SYSV_ABI || opts->x_ix86_abi == MS_ABI);
>
>    /* For targets using ms ABI enable ms-extensions, if not
>       explicit turned off.  For non-ms ABI we turn off this
> diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
> index cd564315f04..f7b9f9707f7 100644
> --- a/gcc/config/i386/i386.opt
> +++ b/gcc/config/i386/i386.opt
> @@ -525,7 +525,7 @@ Target Report Mask(IAMCU)
>  Generate code that conforms to Intel MCU psABI.
>
>  mabi=
> -Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
> +Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) 
> Init(UNSPECIFIED_ABI)
>  Generate code that conforms to the given ABI.
>
>  Enum
> --
> 2.13.3
>

Reply via email to