+2010-09-02 Joseph Myers <joseph@codesourcery.com>
+
+ PR driver/44076
+ * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
+ alias_target fields.
+ * opt-functions.awk (opt_sanitized_name): Don't handle
+ finline-limit=, Wlarger-than= and ftemplate-depth= specially.
+ * optc-gen.awk: Generate alias fields.
+ * opth-gen.awk: Explicitly give values for OPT_* enum constants.
+ Don't generate such constants for aliases.
+ * opts-common.c (generate_canonical_option): New.
+ (decode_cmdline_option): Handle aliases. Use
+ generate_canonical_option for known options instead of copying the
+ input option text.
+ * doc/options.texi (Alias): Document.
+ * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
+ fstack-check, specs): Mark as aliases.
+ * gcc.c (driver_handle_option): Canonicalize -L options to joined
+ arguments.
+ (driver_handle_option): Don't handle OPT_specs.
+ * opts.c (common_handle_option): Don't handle options marked as
+ aliases.
+ (enable_warning_as_error): Handle aliases.
+ * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
+ OPT_Wlarger_than_eq.
+ * tree-optimize.c (tree_rest_of_compilation): Use
+ OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
+
2010-09-02 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (nonmemory_operand): New mode attribute.
+2010-09-02 Joseph Myers <joseph@codesourcery.com>
+
+ * c.opt (Wcomments, Werror-implicit-function-declaration,
+ ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
+ std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
+ aliases.
+ * c-common.c (option_codes): Use OPT_Wcomment instead of
+ OPT_Wcomments.
+ * c-opts.c (warning_as_error_callback, c_common_handle_option):
+ Don't handle options marked as aliases.
+
2010-08-25 Richard Guenther <rguenther@suse.de>
* c-common.c (c_common_get_alias_set): Remove special
static const struct reason_option_codes_t option_codes[] = {
{CPP_W_DEPRECATED, OPT_Wdeprecated},
- {CPP_W_COMMENTS, OPT_Wcomments},
+ {CPP_W_COMMENTS, OPT_Wcomment},
{CPP_W_TRIGRAPHS, OPT_Wtrigraphs},
{CPP_W_MULTICHAR, OPT_Wmultichar},
{CPP_W_TRADITIONAL, OPT_Wtraditional},
break;
case OPT_Wcomment:
- case OPT_Wcomments:
cpp_opts->warn_comments = 1;
break;
break;
case OPT_Wcomment:
- case OPT_Wcomments:
cpp_opts->warn_comments = value;
break;
global_dc->warning_as_error_requested = value;
break;
- case OPT_Werror_implicit_function_declaration:
- /* For backward compatibility, this is the same as
- -Werror=implicit-function-declaration. */
- enable_warning_as_error ("implicit-function-declaration", value,
- CL_C | CL_ObjC, handlers);
- break;
-
case OPT_Wformat:
set_Wformat (value);
break;
break;
case OPT_ftemplate_depth_:
- /* Kept for backwards compatibility. */
- case OPT_ftemplate_depth_eq:
max_tinst_depth = value;
break;
set_std_cxx0x (code == OPT_std_c__0x /* ISO */);
break;
- case OPT_std_c89:
case OPT_std_c90:
- case OPT_std_iso9899_1990:
case OPT_std_iso9899_199409:
if (!preprocessing_asm_p)
set_std_c89 (code == OPT_std_iso9899_199409 /* c94 */, true /* ISO */);
break;
- case OPT_std_gnu89:
case OPT_std_gnu90:
if (!preprocessing_asm_p)
set_std_c89 (false /* c94 */, false /* ISO */);
break;
case OPT_std_c99:
- case OPT_std_c9x:
- case OPT_std_iso9899_1999:
- case OPT_std_iso9899_199x:
if (!preprocessing_asm_p)
set_std_c99 (true /* ISO */);
break;
case OPT_std_gnu99:
- case OPT_std_gnu9x:
if (!preprocessing_asm_p)
set_std_c99 (false /* ISO */);
break;
Warn about possibly nested block comments, and C++ comments spanning more than one physical line
Wcomments
-C ObjC C++ ObjC++ Warning
+C ObjC C++ ObjC++ Warning Alias(Wcomment)
Synonym for -Wcomment
Wconversion
; Documented in common.opt
Werror-implicit-function-declaration
-C ObjC RejectNegative Warning
+C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
This switch is deprecated; use -Werror=implicit-function-declaration instead
Wfloat-equal
-ftabstop=<number> Distance between tab stops for column reporting
ftemplate-depth-
-C++ ObjC++ Joined RejectNegative UInteger Undocumented
+C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=)
ftemplate-depth=
C++ ObjC++ Joined RejectNegative UInteger
Conform to the ISO 201X C standard draft (experimental and incomplete support)
std=c89
-C ObjC
+C ObjC Alias(std=c90)
Conform to the ISO 1990 C standard
std=c90
Conform to the ISO 1999 C standard
std=c9x
-C ObjC
+C ObjC Alias(std=c99)
Deprecated in favor of -std=c99
std=gnu++98
Conform to the ISO 201X C standard draft with GNU extensions (experimental and incomplete support)
std=gnu89
-C ObjC
+C ObjC Alias(std=gnu90)
Conform to the ISO 1990 C standard with GNU extensions
std=gnu90
Conform to the ISO 1999 C standard with GNU extensions
std=gnu9x
-C ObjC
+C ObjC Alias(std=gnu99)
Deprecated in favor of -std=gnu99
std=iso9899:1990
-C ObjC
+C ObjC Alias(std=c90)
Conform to the ISO 1990 C standard
std=iso9899:199409
Conform to the ISO 1990 C standard as amended in 1994
std=iso9899:1999
-C ObjC
+C ObjC Alias(std=c99)
Conform to the ISO 1999 C standard
std=iso9899:199x
-C ObjC
+C ObjC Alias(std=c99)
Deprecated in favor of -std=iso9899:1999
traditional-cpp
Driver
W
-Common RejectNegative Var(extra_warnings) Warning
+Common RejectNegative Warning Alias(Wextra)
This switch is deprecated; use -Wextra instead
Wa,
Warn when an inlined function cannot be inlined
Wlarger-than-
-Common RejectNegative Joined UInteger Warning Undocumented
+Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
Wlarger-than=
Common RejectNegative Joined UInteger Warning
-aux-info <file> Emit declaration information into <file>
aux-info=
-Common Joined
+Common Joined Alias(aux-info)
auxbase
Common Separate RejectDriver
Integrate functions called once into their callers
finline-limit-
-Common RejectNegative Joined UInteger
+Common RejectNegative Joined Alias(finline-limit=)
finline-limit=
Common RejectNegative Joined UInteger
-fstack-check=[no|generic|specific] Insert stack checking code into the program
fstack-check
-Common Report
+Common Alias(fstack-check=, specific, no)
Insert stack checking code into the program. Same as -fstack-check=specific
fstack-limit
Driver
specs
-Driver Separate
+Driver Separate Alias(specs=)
specs=
Driver Joined
The first option should use @samp{Mask(@var{name})} and the others
should use @samp{Mask(@var{name}) MaskExists}.
+@item Alias(@var{opt})
+@itemx Alias(@var{opt}, @var{arg})
+@itemx Alias(@var{opt}, @var{posarg}, @var{negarg})
+The option is an alias for @option{-@var{opt}}. In the first form,
+any argument passed to the alias is considered to be passed to
+@option{-@var{opt}}, and @option{-@var{opt}} is considered to be
+negated if the alias is used in negated form. In the second form, the
+alias may not be negated or have an argument, and @var{posarg} is
+considered to be passed as an argument to @option{-@var{opt}}. In the
+third form, the alias may not have an argument, if the alias is used
+in the positive form then @var{posarg} is considered to be passed to
+@option{-@var{opt}}, and if the alias is used in the negative form
+then @var{negarg} is considered to be passed to @option{-@var{opt}}.
+
+Aliases should not specify @code{Var} or @code{Mask} or
+@code{UInteger}. Aliases should normally specify the same languages
+as the target of the alias; the flags on the target will be used to
+determine any diagnostic for use of an option for the wrong language,
+while those on the alias will be used to identify what command-line
+text is the option and what text is any argument to that option.
+
+When an @code{Alias} definition is used for an option, driver specs do
+not need to handle it and no @samp{OPT_} enumeration value is defined
+for it; only the canonical form of the option will be seen in those
+places.
+
@item Report
The state of the option should be printed by @option{-fverbose-asm}.
do_save = false;
break;
+ case OPT_L:
+ /* Similarly, canonicalize -L for linkers that may not accept
+ separate arguments. */
+ save_switch (concat ("-L", arg, NULL), 0, NULL, validated);
+ return true;
+
case OPT_save_temps:
save_temps_flag = SAVE_TEMPS_CWD;
validated = true;
processing. */
break;
- case OPT_specs:
case OPT_specs_:
{
struct user_specs *user = XNEW (struct user_specs);
+2010-09-02 Joseph Myers <joseph@codesourcery.com>
+
+ * lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
+ fCLASSPATH=): Mark as Java options and as aliases.
+ * jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
+ (lang_specific_driver): Don't handle options marked as aliases.
+ * lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
+
2010-08-22 Joseph Myers <joseph@codesourcery.com>
* Make-lang.in (jvspec.o): Update dependencies.
%<fuse-boehm-gc %<fhash-synchronization %<fjni\
%<findirect-dispatch %<fnew-verifier\
%<fno-store-check %<foutput-class-dir\
- %<fclasspath* %<fCLASSPATH* %<fbootclasspath*\
+ %<fclasspath* %<fbootclasspath*\
%<fextdirs*\
%<fuse-divide-subroutine %<fno-use-divide-subroutine\
%<fuse-atomic-builtins %<fno-use-atomic-builtins\
saw_o = 1;
break;
- case OPT_classpath:
- case OPT_bootclasspath:
- case OPT_CLASSPATH:
- case OPT_encoding:
+ case OPT_fclasspath_:
+ case OPT_fbootclasspath_:
case OPT_extdirs:
added -= 1;
break;
--j;
continue;
- case OPT_classpath:
- case OPT_CLASSPATH:
- case OPT_fCLASSPATH_:
case OPT_fclasspath_:
jcf_path_classpath_arg (decoded_options[i].arg);
--j;
continue;
- case OPT_bootclasspath:
case OPT_fbootclasspath_:
jcf_path_bootclasspath_arg (decoded_options[i].arg);
--j;
--j;
continue;
- case OPT_encoding:
- generate_option (OPT_fencoding_, decoded_options[i].arg, 1,
- CL_DRIVER, &new_decoded_options[j]);
- continue;
-
case OPT_L:
if (spec_file == NULL)
spec_file = find_spec_file (decoded_options[i].arg);
case OPT_faux_classpath:
case OPT_fclasspath_:
- case OPT_fCLASSPATH_:
jcf_path_classpath_arg (arg);
break;
; Java driver option in fact distinct from C-family option with the same name.
CLASSPATH
-Driver Separate
+Java Separate Alias(fclasspath=)
D
Driver Joined Separate
Warn if modifiers are specified when not necessary
bootclasspath
-Driver Separate
+Java Separate Alias(fbootclasspath=)
classpath
-Driver Separate
+Java Separate Alias(fclasspath=)
encoding
-Driver Separate
+Java Separate Alias(fencoding=)
extdirs
Driver Separate
fCLASSPATH=
-Java JoinedOrMissing RejectNegative
+Java JoinedOrMissing RejectNegative Alias(fclasspath=)
--CLASSPATH Deprecated; use --classpath instead
faux-classpath
# Given the option called NAME return a sanitized version of its name.
function opt_sanitized_name(name)
{
- if (name == "finline-limit=" || name == "Wlarger-than=" \
- || name == "ftemplate-depth=")
- name = name "eq"
if (name == "gdwarf+")
name = "gdwarfplus"
gsub ("[^A-Za-z0-9]", "_", name)
else
missing_arg_error = quote missing_arg_error quote
+ alias_arg = opt_args("Alias", flags[i])
+ if (alias_arg == "") {
+ alias_data = "NULL, NULL, N_OPTS"
+ } else {
+ alias_opt = nth_arg(0, alias_arg)
+ alias_posarg = nth_arg(1, alias_arg)
+ alias_negarg = nth_arg(2, alias_arg)
+
+ if (var_ref(opts[i], flags[i]) != "0")
+ print "#error Alias setting variable"
+
+ if (alias_posarg != "" && alias_negarg == "") {
+ if (!flag_set_p("RejectNegative", flags[i]) \
+ && opts[i] ~ "^[Wfm]")
+ print "#error Alias with single argument " \
+ "allowing negative form"
+ }
+
+ alias_opt = opt_enum(alias_opt)
+ if (alias_posarg == "")
+ alias_posarg = "NULL"
+ else
+ alias_posarg = quote alias_posarg quote
+ if (alias_negarg == "")
+ alias_negarg = "NULL"
+ else
+ alias_negarg = quote alias_negarg quote
+ alias_data = alias_posarg ", " alias_negarg ", " alias_opt
+ }
+
neg = opt_args("Negative", flags[i]);
if (neg != "")
idx = indices[neg]
}
# Split the printf after %u to work around an ia64-hp-hpux11.23
# awk bug.
- printf(" { %c-%s%c,\n %s,\n %s,\n %s, %u,",
+ printf(" { %c-%s%c,\n %s,\n %s,\n %s, %s, %u,",
quote, opts[i], quote, hlp, missing_arg_error,
- back_chain[i], len)
+ alias_data, back_chain[i], len)
printf(" %d,\n", idx)
condition = opt_args("Condition", flags[i])
cl_flags = switch_flags(flags[i])
for (i = 0; i < n_opts; i++)
back_chain[i] = "N_OPTS";
+enum_value = 0
for (i = 0; i < n_opts; i++) {
# Combine the flags of identical switches. Switches
# appear many times if they are handled by many front
len = length (opts[i]);
enum = opt_enum(opts[i])
+ enum_string = enum " = " enum_value ","
+
+ # Aliases do not get enumeration names.
+ if (flag_set_p("Alias.*", flags[i])) {
+ enum_string = "/* " enum_string " */"
+ }
# If this switch takes joined arguments, back-chain all
# subsequent switches to it for which it is a prefix. If
}
}
- s = substr(" ", length (enum))
+ s = substr(" ",
+ length (enum_string))
if (i + 1 == n_opts)
comma = ""
else
hlp = "N_(\"" help[i] "\")";
- print " " enum "," s "/* -" opts[i] " */"
+ print " " enum_string s "/* -" opts[i] " */"
+ enum_value++
}
print " N_OPTS,"
return true;
}
+
+/* Fill in the canonical option part of *DECODED with an option
+ described by OPT_INDEX, ARG and VALUE. */
+
+static void
+generate_canonical_option (size_t opt_index, const char *arg, int value,
+ struct cl_decoded_option *decoded)
+{
+ const struct cl_option *option = &cl_options[opt_index];
+ const char *opt_text = option->opt_text;
+
+ if (value == 0
+ && !(option->flags & CL_REJECT_NEGATIVE)
+ && (opt_text[1] == 'W' || opt_text[1] == 'f' || opt_text[1] == 'm'))
+ {
+ char *t = XNEWVEC (char, option->opt_len + 5);
+ t[0] = '-';
+ t[1] = opt_text[1];
+ t[2] = 'n';
+ t[3] = 'o';
+ t[4] = '-';
+ memcpy (t + 5, opt_text + 2, option->opt_len);
+ opt_text = t;
+ }
+
+ decoded->canonical_option[2] = NULL;
+ decoded->canonical_option[3] = NULL;
+
+ if (arg)
+ {
+ if (option->flags & CL_SEPARATE)
+ {
+ decoded->canonical_option[0] = opt_text;
+ decoded->canonical_option[1] = arg;
+ decoded->canonical_option_num_elements = 2;
+ }
+ else
+ {
+ gcc_assert (option->flags & CL_JOINED);
+ decoded->canonical_option[0] = concat (opt_text, arg, NULL);
+ decoded->canonical_option[1] = NULL;
+ decoded->canonical_option_num_elements = 1;
+ }
+ }
+ else
+ {
+ decoded->canonical_option[0] = opt_text;
+ decoded->canonical_option[1] = NULL;
+ decoded->canonical_option_num_elements = 1;
+ }
+}
+
/* Decode the switch beginning at ARGV for the language indicated by
LANG_MASK (including CL_COMMON and CL_TARGET if applicable), into
the structure *DECODED. Returns the number of switches
result = 1;
}
+ if (arg == NULL && (separate_arg_flag || joined_arg_flag))
+ errors |= CL_ERR_MISSING_ARG;
+
+ /* Is this option an alias? */
+ if (option->alias_target != N_OPTS)
+ {
+ size_t new_opt_index = option->alias_target;
+ const struct cl_option *new_option = &cl_options[new_opt_index];
+
+ /* The new option must not be an alias itself. */
+ gcc_assert (new_option->alias_target == N_OPTS);
+
+ if (option->neg_alias_arg)
+ {
+ gcc_assert (option->alias_arg != NULL);
+ gcc_assert (arg == NULL);
+ if (value)
+ arg = option->alias_arg;
+ else
+ arg = option->neg_alias_arg;
+ value = 1;
+ }
+ else if (option->alias_arg)
+ {
+ gcc_assert (value == 1);
+ gcc_assert (arg == NULL);
+ arg = option->alias_arg;
+ }
+
+ opt_index = new_opt_index;
+ option = new_option;
+
+ if (value == 0)
+ gcc_assert (!(option->flags & CL_REJECT_NEGATIVE));
+
+ /* Recompute what arguments are allowed. */
+ separate_arg_flag = ((option->flags & CL_SEPARATE)
+ && !((option->flags & CL_NO_DRIVER_ARG)
+ && (lang_mask & CL_DRIVER)));
+ joined_arg_flag = (option->flags & CL_JOINED) != 0;
+
+ if (!(errors & CL_ERR_MISSING_ARG))
+ {
+ if (separate_arg_flag || joined_arg_flag)
+ gcc_assert (arg != NULL);
+ else
+ gcc_assert (arg == NULL);
+ }
+
+ /* Recheck for disabled options. */
+ if (option->flags & CL_DISABLED)
+ errors |= CL_ERR_DISABLED;
+ }
+
/* Check if this is a switch for a different front end. */
if (!option_ok_for_language (option, lang_mask))
errors |= CL_ERR_WRONG_LANG;
- if (arg == NULL && (separate_arg_flag || joined_arg_flag))
- errors |= CL_ERR_MISSING_ARG;
-
/* If the switch takes an integer, convert it. */
if (arg && (option->flags & CL_UINTEGER))
{
{
if (i < result)
{
- decoded->canonical_option[i] = argv[i];
+ if (opt_index == OPT_SPECIAL_unknown)
+ decoded->canonical_option[i] = argv[i];
+ else
+ decoded->canonical_option[i] = NULL;
total_len += strlen (argv[i]) + 1;
}
else
decoded->canonical_option[i] = NULL;
}
+ if (opt_index != OPT_SPECIAL_unknown)
+ generate_canonical_option (opt_index, arg, value, decoded);
decoded->orig_option_with_args_text = p = XNEWVEC (char, total_len);
for (i = 0; i < result; i++)
{
decoded->opt_index = opt_index;
decoded->arg = arg;
- decoded->canonical_option[2] = NULL;
- decoded->canonical_option[3] = NULL;
decoded->value = value;
decoded->errors = (option_ok_for_language (option, lang_mask)
? 0
: CL_ERR_WRONG_LANG);
- if (arg)
+ generate_canonical_option (opt_index, arg, value, decoded);
+ switch (decoded->canonical_option_num_elements)
{
- if (option->flags & CL_SEPARATE)
- {
- decoded->orig_option_with_args_text = concat (option->opt_text, " ",
- arg, NULL);
- decoded->canonical_option[0] = option->opt_text;
- decoded->canonical_option[1] = arg;
- decoded->canonical_option_num_elements = 2;
- }
- else
- {
- gcc_assert (option->flags & CL_JOINED);
- decoded->orig_option_with_args_text = concat (option->opt_text, arg,
- NULL);
- decoded->canonical_option[0] = decoded->orig_option_with_args_text;
- decoded->canonical_option[1] = NULL;
- decoded->canonical_option_num_elements = 1;
- }
- }
- else
- {
- decoded->orig_option_with_args_text = option->opt_text;
- decoded->canonical_option[0] = option->opt_text;
- decoded->canonical_option[1] = NULL;
- decoded->canonical_option_num_elements = 1;
+ case 1:
+ decoded->orig_option_with_args_text = decoded->canonical_option[0];
+ break;
+
+ case 2:
+ decoded->orig_option_with_args_text
+ = concat (decoded->canonical_option[0], " ",
+ decoded->canonical_option[1], NULL);
+ break;
+
+ default:
+ gcc_unreachable ();
}
}
break;
case OPT_Wlarger_than_:
- /* This form corresponds to -Wlarger-than-.
- Kept for backward compatibility.
- Don't use it as the first argument of warning(). */
-
- case OPT_Wlarger_than_eq:
larger_than_size = value;
warn_larger_than = value != -1;
break;
break;
case OPT_aux_info:
- case OPT_aux_info_:
aux_info_file_name = arg;
flag_gen_aux_info = 1;
break;
break;
case OPT_finline_limit_:
- case OPT_finline_limit_eq:
set_param_value ("max-inline-insns-single", value / 2);
set_param_value ("max-inline-insns-auto", value / 2);
break;
warning (0, "unknown stack check parameter \"%s\"", arg);
break;
- case OPT_fstack_check:
- /* This is the same as the "specific" mode above. */
- if (value)
- flag_stack_check = STACK_CHECK_BUILTIN
- ? FULL_BUILTIN_STACK_CHECK
- : STACK_CHECK_STATIC_BUILTIN
- ? STATIC_BUILTIN_STACK_CHECK
- : GENERIC_STACK_CHECK;
- else
- flag_stack_check = NO_STACK_CHECK;
- break;
-
case OPT_fstack_limit:
/* The real switch is -fno-stack-limit. */
if (value)
}
else
{
+ const struct cl_option *option = &cl_options[option_index];
const diagnostic_t kind = value ? DK_ERROR : DK_WARNING;
+ if (option->alias_target != N_OPTS)
+ option_index = option->alias_target;
diagnostic_classify_diagnostic (global_dc, option_index, kind,
UNKNOWN_LOCATION);
if (kind == DK_ERROR)
const char *opt_text;
const char *help;
const char *missing_argument_error;
+ const char *alias_arg;
+ const char *neg_alias_arg;
+ unsigned short alias_target;
unsigned short back_chain;
unsigned char opt_len;
int neg_index;
int size_as_int = TREE_INT_CST_LOW (size);
if (compare_tree_int (size, size_as_int) == 0)
- warning (OPT_Wlarger_than_eq, "size of %q+D is %d bytes", decl, size_as_int);
+ warning (OPT_Wlarger_than_, "size of %q+D is %d bytes", decl, size_as_int);
else
- warning (OPT_Wlarger_than_eq, "size of %q+D is larger than %wd bytes",
+ warning (OPT_Wlarger_than_, "size of %q+D is larger than %wd bytes",
decl, larger_than_size);
}
}
+2010-09-02 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/cpp/warn-comments-3.c: New. Based on warn-comments-2.c
+ but using -Werror=comment.
+ * gcc.dg/cpp/warn-comments.c, gcc.dg/cpp/warn-comments-2.c: Adjust
+ expected error messages.
+
2010-09-02 Eric Botcazou <ebotcazou@adacore.com>
* gcc.dg/stack-usage-1.c: Adjust on i386/Darwin.
// { dg-do preprocess }
// { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=comments" }
/* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
-/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comments." }
+/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comment." }
// \
- // { dg-error "multi-line comment .-Werror=comments." "multi-line" { target *-*-* } 6 }
+ // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } 6 }
--- /dev/null
+// { dg-do preprocess }
+// { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=comment" }
+/* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
+/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comment." }
+
+// \
+ // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } 6 }
// { dg-do preprocess }
// { dg-options "-std=gnu99 -fdiagnostics-show-option -Wcomments" }
-/* /* */ // { dg-warning "\"\.\*\" within comment .-Wcomments." }
+/* /* */ // { dg-warning "\"\.\*\" within comment .-Wcomment." }
// \
- // { dg-warning "multi-line comment .-Wcomments." "multi-line" { target *-*-* } 6 }
+ // { dg-warning "multi-line comment .-Wcomment." "multi-line" { target *-*-* } 6 }
= TREE_INT_CST_LOW (TYPE_SIZE_UNIT (ret_type));
if (compare_tree_int (TYPE_SIZE_UNIT (ret_type), size_as_int) == 0)
- warning (OPT_Wlarger_than_eq, "size of return value of %q+D is %u bytes",
+ warning (OPT_Wlarger_than_, "size of return value of %q+D is %u bytes",
fndecl, size_as_int);
else
- warning (OPT_Wlarger_than_eq, "size of return value of %q+D is larger than %wd bytes",
+ warning (OPT_Wlarger_than_, "size of return value of %q+D is larger than %wd bytes",
fndecl, larger_than_size);
}
}