Commit d1583032 by Joseph Myers Committed by Joseph Myers

options.texi (SeparateAlias): Document.

	* doc/options.texi (SeparateAlias): Document.
	* opt-functions.awk (switch_flags): Handle SeparateAlias.
	* opth-gen.awk: Generate enumeration names for options marked
	SeparateAlias, but not for those marked Ignore.
	* opts-common.c (generate_canonical_option): Don't output separate
	argument for options marked CL_SEPARATE_ALIAS.
	(decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
	* opts.h (CL_SEPARATE_ALIAS): New.
	(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
	CL_COMMON): Adjust definitions.
	* config/i386/darwin.opt, config/mips/sde.opt: New.
	* common.opt (fdump-final-insns): New.
	* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
	i386/darwin.opt.
	(mips*-sde-elf*): Add mips/sde.opt.
	* config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
	-mno-data-in-code and -mcode-xonly here.
	* defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
	* gcc.c (option_map): Add "j" to --dump entry.
	(translate_options): Don't translate -d to -foutput-class-dir=
	here.

java:
	* lang.opt (d): New.

testsuite:
	* gcc.dg/opts-4.c: New test.

From-SVN: r163844
parent e6bc4de9
2010-09-03 Joseph Myers <joseph@codesourcery.com>
* doc/options.texi (SeparateAlias): Document.
* opt-functions.awk (switch_flags): Handle SeparateAlias.
* opth-gen.awk: Generate enumeration names for options marked
SeparateAlias, but not for those marked Ignore.
* opts-common.c (generate_canonical_option): Don't output separate
argument for options marked CL_SEPARATE_ALIAS.
(decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
* opts.h (CL_SEPARATE_ALIAS): New.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
CL_COMMON): Adjust definitions.
* config/i386/darwin.opt, config/mips/sde.opt: New.
* common.opt (fdump-final-insns): New.
* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
i386/darwin.opt.
(mips*-sde-elf*): Add mips/sde.opt.
* config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
-mno-data-in-code and -mcode-xonly here.
* defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
* gcc.c (option_map): Add "j" to --dump entry.
(translate_options): Don't translate -d to -foutput-class-dir=
here.
2010-09-03 Sebastian Pop <sebastian.pop@amd.com>
* tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
......
......@@ -543,6 +543,9 @@ fdump-
Common Joined RejectNegative
-fdump-<type> Dump various compiler internals to a file
fdump-final-insns
Driver RejectNegative
fdump-final-insns=
Common RejectNegative Joined Var(flag_dump_final_insns)
-fdump-final-insns=filename Dump to filename the insns at the end of translation
......
......@@ -1135,12 +1135,14 @@ i[34567]86-*-darwin*)
# support.
with_cpu=${with_cpu:-generic}
tmake_file="${tmake_file} t-slibgcc-darwin i386/t-crtpc i386/t-crtfm"
extra_options="${extra_options} i386/darwin.opt"
lto_binary_reader=lto-macho
;;
x86_64-*-darwin*)
with_cpu=${with_cpu:-generic}
tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-crtpc i386/t-crtfm"
tm_file="${tm_file} ${cpu_type}/darwin64.h"
extra_options="${extra_options} i386/darwin.opt"
lto_binary_reader=lto-macho
;;
i[34567]86-*-elf*)
......@@ -1811,6 +1813,7 @@ mips*-*-openbsd*)
mips*-sde-elf*)
tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/sde.h"
tmake_file="mips/t-sde mips/t-libgcc-mips16"
extra_options="${extra_options} mips/sde.opt"
case "${with_newlib}" in
yes)
# newlib / libgloss.
......
; Darwin options for IA32 port.
;
; Copyright (C) 2010 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
mdynamic-no-pic
Target RejectNegative Ignore
/* Definitions of target machine for GNU compiler.
MIPS SDE version.
Copyright (C) 2003, 2004, 2007, 2008, 2009
Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -42,13 +42,6 @@ along with GCC; see the file COPYING3. If not see
things like LINK_SPEC easier to write. */ \
"%{!EB:%{!EL:%(endian_spec)}}", \
\
/* -mcode-xonly is a traditional alias for -mcode-readable=pcrel and \
-mno-data-in-code is a traditional alias for -mcode-readable=no. \
The latter trumps the former. */ \
"%{mno-data-in-code: -mcode-readable=no}", \
"%{!mcode-readable=no: %{mcode-xonly: -mcode-readable=pcrel}}", \
"%<mno-data-in-code %<mcode-xonly", \
\
/* Configuration-independent MIPS rules. */ \
BASE_DRIVER_SELF_SPECS
......
; MIPS SDE options.
;
; Copyright (C) 2010 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
; -mcode-xonly is a traditional alias for -mcode-readable=pcrel and
; -mno-data-in-code is a traditional alias for -mcode-readable=no.
mno-data-in-code
Target RejectNegative Alias(mcode-readable=, no)
mcode-xonly
Target RejectNegative Alias(mcode-readable=, pcrel)
......@@ -39,7 +39,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|| (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \
|| (CHAR) == 'I' || (CHAR) == 'J' || (CHAR) == 'm' \
|| (CHAR) == 'x' || (CHAR) == 'L' || (CHAR) == 'A' \
|| (CHAR) == 'B' )
|| (CHAR) == 'B' || (CHAR) == 'd')
/* This defines which multi-letter switches take arguments. */
......
......@@ -278,6 +278,13 @@ This option is ignored apart from printing any warning specified using
@code{Warn}. The option will not be seen by specs and no @samp{OPT_}
enumeration value is defined for it.
@item SeparateAlias
For an option marked with @code{Joined}, @code{Separate} and
@code{Alias}, the option only acts as an alias when passed a separate
argument; with a joined argument it acts as a normal option, with an
@samp{OPT_} enumeration value. This is for compatibility with the
Java @option{-d} option and should not be used for new options.
@item Warn(@var{message})
If this option is used, output the warning @var{message}.
@var{message} is a format string, either taking a single operand with
......
......@@ -1085,7 +1085,7 @@ static const struct option_map option_map[] =
{"--debug", "-g", "oj"},
{"--define-macro", "-D", "aj"},
{"--dependencies", "-M", 0},
{"--dump", "-d", "a"},
{"--dump", "-d", "aj"},
{"--dumpbase", "-dumpbase", "a"},
{"--dumpdir", "-dumpdir", "a"},
{"--encoding", "-fencoding=", "aj"},
......@@ -1368,16 +1368,6 @@ translate_options (int *argcp, const char *const **argvp)
if (nskip + i > argc)
nskip = argc - i;
/* Convert -d with a separate argument to
-foutput-class-dir= for Java. */
if (c == 'd' && p[1] == 0 && argv[i + 1] != NULL)
{
newv[newindex++] = concat ("-foutput-class-dir=", argv[i + 1],
NULL);
nskip = 0;
i += 2;
}
while (nskip > 0)
{
newv[newindex++] = argv[i++];
......
2010-09-03 Joseph Myers <joseph@codesourcery.com>
* lang.opt (d): New.
2010-09-03 H.J. Lu <hongjiu.lu@intel.com>
PR java/45504
......
......@@ -93,6 +93,10 @@ Java Separate Alias(fbootclasspath=)
classpath
Java Separate Alias(fclasspath=)
d
Java Separate SeparateAlias Alias(foutput-class-dir=)
; Different from language-independent -d with joined argument.
encoding
Java Separate Alias(fencoding=)
......
......@@ -81,6 +81,7 @@ function switch_flags (flags)
test_flag("Driver", flags, " | CL_DRIVER") \
test_flag("RejectDriver", flags, " | CL_REJECT_DRIVER") \
test_flag("NoDriverArg", flags, " | CL_NO_DRIVER_ARG") \
test_flag("SeparateAlias", flags, " | CL_SEPARATE_ALIAS") \
test_flag("Save", flags, " | CL_SAVE") \
test_flag("Joined", flags, " | CL_JOINED") \
test_flag("JoinedOrMissing", flags, " | CL_JOINED | CL_MISSING_OK") \
......
......@@ -334,7 +334,9 @@ for (i = 0; i < n_opts; i++) {
enum_string = enum " = " enum_value ","
# Aliases do not get enumeration names.
if (flag_set_p("Alias.*", flags[i])) {
if ((flag_set_p("Alias.*", flags[i]) \
&& !flag_set_p("SeparateAlias", flags[i])) \
|| flag_set_p("Ignore", flags[i])) {
enum_string = "/* " enum_string " */"
}
......
......@@ -174,7 +174,8 @@ generate_canonical_option (size_t opt_index, const char *arg, int value,
if (arg)
{
if (option->flags & CL_SEPARATE)
if ((option->flags & CL_SEPARATE)
&& !(option->flags & CL_SEPARATE_ALIAS))
{
decoded->canonical_option[0] = opt_text;
decoded->canonical_option[1] = arg;
......@@ -217,6 +218,7 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
const char *warn_message = NULL;
bool separate_arg_flag;
bool joined_arg_flag;
bool have_separate_arg = false;
opt = argv[0];
......@@ -286,6 +288,8 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
result = 2;
if (arg == NULL)
result = 1;
else
have_separate_arg = true;
}
else
/* Missing argument. */
......@@ -298,6 +302,8 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
result = 2;
if (arg == NULL)
result = 1;
else
have_separate_arg = true;
}
if (arg == NULL && (separate_arg_flag || joined_arg_flag))
......@@ -305,7 +311,8 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
/* Is this option an alias (or an ignored option, marked as an alias
of OPT_SPECIAL_ignore)? */
if (option->alias_target != N_OPTS)
if (option->alias_target != N_OPTS
&& (!(option->flags & CL_SEPARATE_ALIAS) || have_separate_arg))
{
size_t new_opt_index = option->alias_target;
......
......@@ -71,12 +71,12 @@ extern const unsigned int cl_options_count;
extern const char *const lang_names[];
extern const unsigned int cl_lang_count;
#define CL_PARAMS (1 << 14) /* Fake entry. Used to display --param info with --help. */
#define CL_WARNING (1 << 15) /* Enables an (optional) warning message. */
#define CL_OPTIMIZATION (1 << 16) /* Enables an (optional) optimization. */
#define CL_DRIVER (1 << 17) /* Driver option. */
#define CL_TARGET (1 << 18) /* Target-specific option. */
#define CL_COMMON (1 << 19) /* Language-independent. */
#define CL_PARAMS (1 << 13) /* Fake entry. Used to display --param info with --help. */
#define CL_WARNING (1 << 14) /* Enables an (optional) warning message. */
#define CL_OPTIMIZATION (1 << 15) /* Enables an (optional) optimization. */
#define CL_DRIVER (1 << 16) /* Driver option. */
#define CL_TARGET (1 << 17) /* Target-specific option. */
#define CL_COMMON (1 << 18) /* Language-independent. */
#define CL_MIN_OPTION_CLASS CL_PARAMS
#define CL_MAX_OPTION_CLASS CL_COMMON
......@@ -86,6 +86,7 @@ extern const unsigned int cl_lang_count;
This distinction is important because --help will not list options
which only have these higher bits set. */
#define CL_SEPARATE_ALIAS (1 << 19) /* Option is an alias when used with separate argument. */
#define CL_NO_DRIVER_ARG (1 << 20) /* Option takes no argument in the driver. */
#define CL_REJECT_DRIVER (1 << 21) /* Reject this option in the driver. */
#define CL_SAVE (1 << 22) /* Target-specific option for attribute. */
......
2010-09-03 Joseph Myers <joseph@codesourcery.com>
* gcc.dg/opts-4.c: New test.
2010-09-03 Steve Ellcey <sje@cup.hp.com>
* gcc.dg/vect/vect-peel-3.c: XFAIL if vect_no_align.
......
/* --dump= should translate to -d with joined operand. */
/* { dg-do compile } */
/* { dg-options "--dump=a" } */
void f (void)
{
}
/* { dg-final { cleanup-rtl-dump "*" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment