c.opt (Waddress): New.
2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * c.opt (Waddress): New. * common.opt (Walways-true): Delete. (Wstring-literal-comparison): Delete. * doc/invoke.texi (Warning Options): Delete -Walways-true and -Wstring-literal-comparison. Add -Waddress. (Waddress): New. (Walways-true): Delete. (Wstring-literal-comparison): Delete. * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat consistently instead of -Walways-true in example. * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall. * c-typeck.c (parser_build_binary_op): Replace -Wstring-literal-comparison and -Walways-true with -Waddress. * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true with -Waddress. cp/ * typeck.c (build_binary_op): Replace -Wstring-literal-comparison and -Walways-true with -Waddress. * cvt.c (convert_to_void): Replace unconditional warning with -Waddress. testsuite/ * gcc.dg/20031012-1.c: Replace -Walways-true with -Waddress. * gcc.dg/Walways-true-1.c: Likewise. * gcc.dg/weak/weak-3.c: Likewise. * gcc.dg/Werror-1.c: Likewise. * gcc.dg/Werror-3.c: Likewise. * gcc.dg/Werror-4.c: Likewise. * gcc.dg/Werror-5.c: Likewise. * gcc.dg/Werror-6.c: Likewise. * gcc.dg/Werror-7.c: Likewise. * gcc.dg/Werror-8.c: Likewise. * gcc.dg/Werror-10.c: Likewise. * gcc.dg/Werror-11.c: Likewise. * gcc.dg/Werror-12.c: Likewise. * g++.old-deja/g++.mike/warn8.C: Likewise. * g++.dg/warn/Walways-true-1.C: Likewise. * g++.dg/warn/Walways-true-2.C: Likewise. * g++.dg/warn/noeffect8.C: Warn only with -Waddress. * g++.dg/warn/Wstring-literal-comparison-1.C: Replace -Wstring-literal-comparison with -Waddress. * gcc.dg/Wstring-literal-comparison-4.c: Replace -Wno-string-literal-comparison with -Wno-address. From-SVN: r122136
This commit is contained in:
parent
459ffad3fd
commit
c116cd05fb
36 changed files with 111 additions and 70 deletions
|
@ -1,3 +1,21 @@
|
|||
2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
* c.opt (Waddress): New.
|
||||
* common.opt (Walways-true): Delete.
|
||||
(Wstring-literal-comparison): Delete.
|
||||
* doc/invoke.texi (Warning Options): Delete -Walways-true and
|
||||
-Wstring-literal-comparison. Add -Waddress.
|
||||
(Waddress): New.
|
||||
(Walways-true): Delete.
|
||||
(Wstring-literal-comparison): Delete.
|
||||
* doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
|
||||
consistently instead of -Walways-true in example.
|
||||
* c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
|
||||
* c-typeck.c (parser_build_binary_op): Replace
|
||||
-Wstring-literal-comparison and -Walways-true with -Waddress.
|
||||
* c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
|
||||
with -Waddress.
|
||||
|
||||
2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* tree-cfg.c (dump_function_to_file): Be prepared for functions
|
||||
|
|
|
@ -2716,7 +2716,7 @@ c_common_truthvalue_conversion (tree expr)
|
|||
if (decl_with_nonnull_addr_p (inner))
|
||||
{
|
||||
/* Common Ada/Pascal programmer's mistake. */
|
||||
warning (OPT_Walways_true,
|
||||
warning (OPT_Waddress,
|
||||
"the address of %qD will always evaluate as %<true%>",
|
||||
inner);
|
||||
return truthvalue_true_node;
|
||||
|
|
|
@ -395,9 +395,8 @@ c_common_handle_option (size_t scode, const char *arg, int value)
|
|||
warn_sign_compare = value;
|
||||
warn_switch = value;
|
||||
warn_strict_aliasing = value;
|
||||
warn_address = value;
|
||||
warn_strict_overflow = value;
|
||||
warn_string_literal_comparison = value;
|
||||
warn_always_true = value;
|
||||
warn_array_bounds = value;
|
||||
|
||||
/* Only warn about unknown pragmas that are not in system
|
||||
|
|
|
@ -2640,13 +2640,11 @@ parser_build_binary_op (enum tree_code code, struct c_expr arg1,
|
|||
{
|
||||
if ((code1 == STRING_CST && !integer_zerop (arg2.value))
|
||||
|| (code2 == STRING_CST && !integer_zerop (arg1.value)))
|
||||
warning (OPT_Wstring_literal_comparison,
|
||||
"comparison with string literal");
|
||||
warning (OPT_Waddress, "comparison with string literal results in unspecified behaviour");
|
||||
}
|
||||
else if (TREE_CODE_CLASS (code) == tcc_comparison
|
||||
&& (code1 == STRING_CST || code2 == STRING_CST))
|
||||
warning (OPT_Wstring_literal_comparison,
|
||||
"comparison with string literal");
|
||||
warning (OPT_Waddress, "comparison with string literal results in unspecified behaviour");
|
||||
|
||||
if (TREE_OVERFLOW_P (result.value)
|
||||
&& !TREE_OVERFLOW_P (arg1.value)
|
||||
|
@ -8025,7 +8023,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
|
|||
{
|
||||
if (TREE_CODE (op0) == ADDR_EXPR
|
||||
&& decl_with_nonnull_addr_p (TREE_OPERAND (op0, 0)))
|
||||
warning (OPT_Walways_true, "the address of %qD will never be NULL",
|
||||
warning (OPT_Waddress, "the address of %qD will never be NULL",
|
||||
TREE_OPERAND (op0, 0));
|
||||
result_type = type0;
|
||||
}
|
||||
|
@ -8033,7 +8031,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
|
|||
{
|
||||
if (TREE_CODE (op1) == ADDR_EXPR
|
||||
&& decl_with_nonnull_addr_p (TREE_OPERAND (op1, 0)))
|
||||
warning (OPT_Walways_true, "the address of %qD will never be NULL",
|
||||
warning (OPT_Waddress, "the address of %qD will never be NULL",
|
||||
TREE_OPERAND (op1, 0));
|
||||
result_type = type1;
|
||||
}
|
||||
|
|
|
@ -116,6 +116,10 @@ Wabi
|
|||
C++ ObjC++ Var(warn_abi) Warning
|
||||
Warn about things that will change when compiling with an ABI-compliant compiler
|
||||
|
||||
Waddress
|
||||
C ObjC C++ ObjC++ Var(warn_address) Warning
|
||||
Warn about suspicious uses of memory addresses
|
||||
|
||||
Wall
|
||||
C ObjC C++ ObjC++ Warning
|
||||
Enable most warning messages
|
||||
|
|
|
@ -74,10 +74,6 @@ Waggregate-return
|
|||
Common Var(warn_aggregate_return) Warning
|
||||
Warn about returning structures, unions or arrays
|
||||
|
||||
Walways-true
|
||||
Common Var(warn_always_true) Warning
|
||||
Warn about comparisons that always evaluate to true
|
||||
|
||||
Warray-bounds
|
||||
Common Var(warn_array_bounds)
|
||||
Warn if an array is accessed out of bounds
|
||||
|
@ -166,10 +162,6 @@ Wstrict-overflow=
|
|||
Common Joined UInteger
|
||||
Warn about optimizations that assume that signed overflow is undefined
|
||||
|
||||
Wstring-literal-comparison
|
||||
Common Var(warn_string_literal_comparison) Warning
|
||||
Warn about comparisons to constant string literals
|
||||
|
||||
Wswitch
|
||||
Common Var(warn_switch) Warning
|
||||
Warn about enumerated switches, with no default, missing a case
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
* typeck.c (build_binary_op): Replace -Wstring-literal-comparison
|
||||
and -Walways-true with -Waddress.
|
||||
* cvt.c (convert_to_void): Replace unconditional warning with
|
||||
-Waddress.
|
||||
|
||||
2007-02-18 Kazu Hirata <kazu@codesourcery.com>
|
||||
|
||||
* decl.c, tree.c: Fix comment typos.
|
||||
|
|
|
@ -929,7 +929,7 @@ convert_to_void (tree expr, const char *implicit)
|
|||
else if (implicit && probe == expr && is_overloaded_fn (probe))
|
||||
{
|
||||
/* Only warn when there is no &. */
|
||||
warning (0, "%s is a reference, not call, to function %qE",
|
||||
warning (OPT_Waddress, "%s is a reference, not call, to function %qE",
|
||||
implicit, expr);
|
||||
if (TREE_CODE (expr) == COMPONENT_REF)
|
||||
expr = TREE_OPERAND (expr, 0);
|
||||
|
|
|
@ -3319,8 +3319,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
|
|||
"comparing floating point with == or != is unsafe");
|
||||
if ((TREE_CODE (orig_op0) == STRING_CST && !integer_zerop (op1))
|
||||
|| (TREE_CODE (orig_op1) == STRING_CST && !integer_zerop (op0)))
|
||||
warning (OPT_Wstring_literal_comparison,
|
||||
"comparison with string literal");
|
||||
warning (OPT_Waddress, "comparison with string literal results in unspecified behaviour");
|
||||
|
||||
build_type = boolean_type_node;
|
||||
if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
|
||||
|
@ -3337,7 +3336,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
|
|||
{
|
||||
if (TREE_CODE (op0) == ADDR_EXPR
|
||||
&& decl_with_nonnull_addr_p (TREE_OPERAND (op0, 0)))
|
||||
warning (OPT_Walways_true, "the address of %qD will never be NULL",
|
||||
warning (OPT_Waddress, "the address of %qD will never be NULL",
|
||||
TREE_OPERAND (op0, 0));
|
||||
result_type = type0;
|
||||
}
|
||||
|
@ -3346,7 +3345,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
|
|||
{
|
||||
if (TREE_CODE (op1) == ADDR_EXPR
|
||||
&& decl_with_nonnull_addr_p (TREE_OPERAND (op1, 0)))
|
||||
warning (OPT_Walways_true, "the address of %qD will never be NULL",
|
||||
warning (OPT_Waddress, "the address of %qD will never be NULL",
|
||||
TREE_OPERAND (op1, 0));
|
||||
result_type = type1;
|
||||
}
|
||||
|
@ -3495,8 +3494,7 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
|
|||
case GT_EXPR:
|
||||
if (TREE_CODE (orig_op0) == STRING_CST
|
||||
|| TREE_CODE (orig_op1) == STRING_CST)
|
||||
warning (OPT_Wstring_literal_comparison,
|
||||
"comparison with string literal");
|
||||
warning (OPT_Waddress, "comparison with string literal results in unspecified behaviour");
|
||||
|
||||
build_type = boolean_type_node;
|
||||
if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE)
|
||||
|
|
|
@ -10149,8 +10149,8 @@ option.
|
|||
|
||||
@example
|
||||
#pragma GCC diagnostic warning "-Wformat"
|
||||
#pragma GCC diagnostic error "-Walways-true"
|
||||
#pragma GCC diagnostic ignored "-Walways-true"
|
||||
#pragma GCC diagnostic error "-Wformat"
|
||||
#pragma GCC diagnostic ignored "-Wformat"
|
||||
@end example
|
||||
|
||||
Note that these pragmas override any command line options. Also,
|
||||
|
|
|
@ -223,7 +223,7 @@ Objective-C and Objective-C++ Dialects}.
|
|||
@item Warning Options
|
||||
@xref{Warning Options,,Options to Request or Suppress Warnings}.
|
||||
@gccoptlist{-fsyntax-only -pedantic -pedantic-errors @gol
|
||||
-w -Wextra -Wall -Waggregate-return -Walways-true -Warray-bounds @gol
|
||||
-w -Wextra -Wall -Waddress -Waggregate-return -Warray-bounds @gol
|
||||
-Wno-attributes -Wc++-compat -Wc++0x-compat -Wcast-align -Wcast-qual @gol
|
||||
-Wchar-subscripts -Wclobbered -Wcomment @gol
|
||||
-Wconversion -Wcoverage-mismatch -Wno-deprecated-declarations @gol
|
||||
|
@ -249,7 +249,6 @@ Objective-C and Objective-C++ Dialects}.
|
|||
-Wsign-compare -Wstack-protector @gol
|
||||
-Wstrict-aliasing -Wstrict-aliasing=2 @gol
|
||||
-Wstrict-overflow -Wstrict-overflow=@var{n} @gol
|
||||
-Wstring-literal-comparison @gol
|
||||
-Wswitch -Wswitch-default -Wswitch-enum @gol
|
||||
-Wsystem-headers -Wtrigraphs -Wundef -Wuninitialized @gol
|
||||
-Wunknown-pragmas -Wno-pragmas -Wunreachable-code @gol
|
||||
|
@ -3381,18 +3380,27 @@ an incorrect result when the signed value is converted to unsigned.
|
|||
This warning is also enabled by @option{-Wextra}; to get the other warnings
|
||||
of @option{-Wextra} without this warning, use @samp{-Wextra -Wno-sign-compare}.
|
||||
|
||||
@item -Waddress
|
||||
@opindex Waddress
|
||||
@opindex Wno-address
|
||||
Warn about suspicious uses of memory addresses. These include using
|
||||
the address of a function in a conditional expression, such as
|
||||
@code{void func(void); if (func)}, and comparisons against the memory
|
||||
address of a string literal, such as @code{if (x == "abc")}. Such
|
||||
uses typically indicate a programmer error: the address of a function
|
||||
always evaluates to true, so their use in a conditional usually
|
||||
indicate that the programmer forgot the parentheses in a function
|
||||
call; and comparisons against string literals result in unspecified
|
||||
behavior and are not portable in C, so they usually indicate that the
|
||||
programmer intended to use @code{strcmp}. This warning is enabled by
|
||||
@option{-Wall}.
|
||||
|
||||
@item -Waggregate-return
|
||||
@opindex Waggregate-return
|
||||
Warn if any functions that return structures or unions are defined or
|
||||
called. (In languages where you can return an array, this also elicits
|
||||
a warning.)
|
||||
|
||||
@item -Walways-true
|
||||
@opindex Walways-true
|
||||
Warn about comparisons which are always true such as testing if
|
||||
unsigned values are greater than or equal to zero. This warning is
|
||||
enabled by @option{-Wall}.
|
||||
|
||||
@item -Wno-attributes
|
||||
@opindex Wno-attributes
|
||||
@opindex Wattributes
|
||||
|
@ -3742,15 +3750,6 @@ imply anything.
|
|||
This option is only active when @option{-fstack-protector} is active. It
|
||||
warns about functions that will not be protected against stack smashing.
|
||||
|
||||
@item -Wstring-literal-comparison
|
||||
@opindex Wstring-literal-comparison
|
||||
Warn about suspicious comparisons to string literal constants. In C,
|
||||
direct comparisons against the memory address of a string literal, such
|
||||
as @code{if (x == "abc")}, typically indicate a programmer error, and
|
||||
even when intentional, result in unspecified behavior and are not portable.
|
||||
Usually these warnings alert that the programmer intended to use
|
||||
@code{strcmp}. This warning is enabled by @option{-Wall}.
|
||||
|
||||
@item -Woverlength-strings
|
||||
@opindex Woverlength-strings
|
||||
Warn about string constants which are longer than the ``minimum
|
||||
|
|
|
@ -1,3 +1,27 @@
|
|||
2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
* gcc.dg/20031012-1.c: Replace -Walways-true with -Waddress.
|
||||
* gcc.dg/Walways-true-1.c: Likewise.
|
||||
* gcc.dg/weak/weak-3.c: Likewise.
|
||||
* gcc.dg/Werror-1.c: Likewise.
|
||||
* gcc.dg/Werror-3.c: Likewise.
|
||||
* gcc.dg/Werror-4.c: Likewise.
|
||||
* gcc.dg/Werror-5.c: Likewise.
|
||||
* gcc.dg/Werror-6.c: Likewise.
|
||||
* gcc.dg/Werror-7.c: Likewise.
|
||||
* gcc.dg/Werror-8.c: Likewise.
|
||||
* gcc.dg/Werror-10.c: Likewise.
|
||||
* gcc.dg/Werror-11.c: Likewise.
|
||||
* gcc.dg/Werror-12.c: Likewise.
|
||||
* g++.old-deja/g++.mike/warn8.C: Likewise.
|
||||
* g++.dg/warn/Walways-true-1.C: Likewise.
|
||||
* g++.dg/warn/Walways-true-2.C: Likewise.
|
||||
* g++.dg/warn/noeffect8.C: Warn only with -Waddress.
|
||||
* g++.dg/warn/Wstring-literal-comparison-1.C: Replace
|
||||
-Wstring-literal-comparison with -Waddress.
|
||||
* gcc.dg/Wstring-literal-comparison-4.c: Replace
|
||||
-Wno-string-literal-comparison with -Wno-address.
|
||||
|
||||
2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/self_aggregate_with_call.adb: New test.
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// Test -Walways-true for testing an address against NULL.
|
||||
// Test -Waddress for testing an address against NULL.
|
||||
// Origin: Ian Lance Taylor <iant@google.com>
|
||||
|
||||
// { dg-do compile}
|
||||
// { dg-options "-Walways-true" }
|
||||
// { dg-options "-Waddress" }
|
||||
|
||||
extern int foo (int);
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
// Origin: Ian Lance Taylor <iant@google.com>
|
||||
|
||||
// { dg-do compile}
|
||||
// { dg-options "-Walways-true" }
|
||||
// { dg-options "-Waddress" }
|
||||
// { dg-require-weak "" }
|
||||
|
||||
extern int foo (int) __attribute__ ((weak));
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* PR c/7776 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wstring-literal-comparison" } */
|
||||
/* { dg-options "-Waddress" } */
|
||||
|
||||
int test1(char *ptr)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* PR c/7776 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wall -Wno-string-literal-comparison" } */
|
||||
/* { dg-options "-Wall -Wno-address" } */
|
||||
|
||||
int test1(char *ptr)
|
||||
{
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
// PR c++/26696, 28996
|
||||
// { dg-do compile }
|
||||
// { dg-options "-Waddress" }
|
||||
|
||||
struct A
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// { dg-do assemble }
|
||||
// { dg-options "-Walways-true" }
|
||||
// { dg-options "-Waddress" }
|
||||
|
||||
struct foo {
|
||||
bool test();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* { dg-options "-Walways-true" } */
|
||||
/* { dg-options "-Waddress" } */
|
||||
/* Origin: Andrew Morton <akpm@osdl.org> */
|
||||
/* Warn if a function addres of a non-weak function is used
|
||||
as a truth value. */
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/* Test -Walways-true for testing an address against NULL.
|
||||
/* Test -Waddress for testing an address against NULL.
|
||||
Origin: Ian Lance Taylor <iant@google.com>. */
|
||||
|
||||
/* { dg-do compile} */
|
||||
/* { dg-options "-Walways-true" } */
|
||||
/* { dg-options "-Waddress" } */
|
||||
|
||||
extern int foo (int);
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
Origin: Ian Lance Taylor <iant@google.com>. */
|
||||
|
||||
/* { dg-do compile} */
|
||||
/* { dg-options "-Walways-true" } */
|
||||
/* { dg-options "-Waddress" } */
|
||||
/* { dg-require-weak "" } */
|
||||
|
||||
extern int foo (int) __attribute__ ((weak));
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-Walways-true -Wattributes -Werror" } */
|
||||
/* { dg-options "-Waddress -Wattributes -Werror" } */
|
||||
/* { dg-warning "warnings being treated as errors" "" {target "*-*-*"} 0 } */
|
||||
|
||||
/* This is the first in a series of test cases that test the
|
||||
|
@ -7,7 +7,7 @@
|
|||
diagnostic error foo. This one has all the bits we're testing, the
|
||||
others are subsets of this one. */
|
||||
|
||||
#pragma GCC diagnostic error "-Walways-true"
|
||||
#pragma GCC diagnostic error "-Waddress"
|
||||
|
||||
void __attribute__((dj)) bar() { } /* { dg-warning "warning: .* attribute directive ignored" } */
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
/* Make sure #pragma can work with -Werror. */
|
||||
|
||||
#pragma GCC diagnostic error "-Walways-true"
|
||||
#pragma GCC diagnostic error "-Waddress"
|
||||
|
||||
void __attribute__((dj)) bar() { } /* { dg-warning "warning: .* attribute directive ignored" } */
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
/* Make sure #pragma can override -Werror. */
|
||||
|
||||
#pragma GCC diagnostic warning "-Walways-true"
|
||||
#pragma GCC diagnostic warning "-Waddress"
|
||||
|
||||
void __attribute__((dj)) bar() { } /* { dg-warning "warning: .* attribute directive ignored" } */
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wattributes -Walways-true" } */
|
||||
/* { dg-options "-Wattributes -Waddress" } */
|
||||
|
||||
/* Make sure #pragma can override -Wfoo. */
|
||||
|
||||
#pragma GCC diagnostic ignored "-Walways-true"
|
||||
#pragma GCC diagnostic ignored "-Waddress"
|
||||
|
||||
void __attribute__((dj)) bar() { } /* { dg-warning "attribute directive ignored" } */
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-Walways-true -Wattributes" } */
|
||||
/* { dg-options "-Waddress -Wattributes" } */
|
||||
|
||||
/* Make sure the command line option enables the warning. */
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
/* Make sure the pragma enables the error. */
|
||||
|
||||
#pragma GCC diagnostic error "-Walways-true"
|
||||
#pragma GCC diagnostic error "-Waddress"
|
||||
|
||||
void __attribute__((dj)) bar() { } /* { dg-warning "warning: .* attribute directive ignored" } */
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-Walways-true -Wattributes -Werror" } */
|
||||
/* { dg-options "-Waddress -Wattributes -Werror" } */
|
||||
/* { dg-warning "warnings being treated as errors" "" {target "*-*-*"} 0 } */
|
||||
|
||||
/* Make sure -Werror turns warnings in to errors. */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wattributes -Werror=always-true" } */
|
||||
/* { dg-options "-Wattributes -Werror=address" } */
|
||||
|
||||
/* Make sure -Werror-foo emits an error and not a warning */
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-Walways-true -Werror -Wno-error=always-true -Wattributes" } */
|
||||
/* { dg-options "-Waddress -Werror -Wno-error=address -Wattributes" } */
|
||||
/* { dg-warning "warnings being treated as errors" "" {target "*-*-*"} 0 } */
|
||||
|
||||
/* Make sure -Wno-error= overrides -Werror. */
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
/* Make sure #pragma can enable a warning. */
|
||||
|
||||
#pragma GCC diagnostic warning "-Walways-true"
|
||||
#pragma GCC diagnostic warning "-Waddress"
|
||||
|
||||
void __attribute__((dj)) bar() { } /* { dg-warning "warning: .* attribute directive ignored" } */
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
/* Make sure #pragma can enable a warning as an error. */
|
||||
|
||||
#pragma GCC diagnostic error "-Walways-true"
|
||||
#pragma GCC diagnostic error "-Waddress"
|
||||
|
||||
void __attribute__((dj)) bar() { } /* { dg-warning "warning: .* attribute directive ignored" } */
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* PR c/7776 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wstring-literal-comparison" } */
|
||||
/* { dg-options "-Waddress" } */
|
||||
|
||||
int test1(char *ptr)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* PR c/7776 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wall -Wno-string-literal-comparison" } */
|
||||
/* { dg-options "-Wall -Wno-address" } */
|
||||
|
||||
int test1(char *ptr)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-weak "" } */
|
||||
/* { dg-options "-Walways-true" } */
|
||||
/* { dg-options "-Waddress" } */
|
||||
/* Warning when addr convert to bool always gives known result.
|
||||
Ada/Pascal programmers sometimes write 0-param functions without
|
||||
(), and might as well warn on variables, too. */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-alias "" } */
|
||||
/* { dg-require-weak "" } */
|
||||
/* { dg-options "-fno-common -Walways-true" } */
|
||||
/* { dg-options "-fno-common -Waddress" } */
|
||||
|
||||
/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1a" } } */
|
||||
/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?ffoo1b" } } */
|
||||
|
|
Loading…
Add table
Reference in a new issue