re PR c/58286 (Need option to make incompatible pointer type warnings into compiler errors)
PR c/58286 * doc/invoke.texi: Document -Wincompatible-pointer-types. c-family/ * c.opt (Wincompatible-pointer-types): New option. c/ * c-typeck.c (convert_for_assignment): Pass OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT. testsuite/ * gcc.dg/Wincompatible-pointer-types.c: New test. From-SVN: r212192
This commit is contained in:
parent
e55637b715
commit
d5c3d343bd
@ -1,3 +1,8 @@
|
||||
2014-07-01 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/58286
|
||||
* doc/invoke.texi: Document -Wincompatible-pointer-types.
|
||||
|
||||
2014-07-01 Martin Liska <mliska@suse.cz>
|
||||
|
||||
IPA REF alias refactoring
|
||||
|
@ -1,3 +1,8 @@
|
||||
2014-07-01 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/58286
|
||||
* c.opt (Wincompatible-pointer-types): New option.
|
||||
|
||||
2014-06-30 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/51400
|
||||
|
@ -443,6 +443,10 @@ Wignored-qualifiers
|
||||
C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
|
||||
Warn whenever type qualifiers are ignored.
|
||||
|
||||
Wincompatible-pointer-types
|
||||
C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning
|
||||
Warn when there is a conversion between pointers that have incompatible types
|
||||
|
||||
Winit-self
|
||||
C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall)
|
||||
Warn about variables which are initialized to themselves
|
||||
|
@ -1,3 +1,9 @@
|
||||
2014-07-01 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/58286
|
||||
* c-typeck.c (convert_for_assignment): Pass
|
||||
OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT.
|
||||
|
||||
2014-06-30 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
* c-decl.c (grokdeclarator): Don't instrument VLAs if the function
|
||||
|
@ -6189,7 +6189,8 @@ convert_for_assignment (location_t location, location_t expr_loc, tree type,
|
||||
else
|
||||
/* Avoid warning about the volatile ObjC EH puts on decls. */
|
||||
if (!objc_ok)
|
||||
WARN_FOR_ASSIGNMENT (location, expr_loc, 0,
|
||||
WARN_FOR_ASSIGNMENT (location, expr_loc,
|
||||
OPT_Wincompatible_pointer_types,
|
||||
G_("passing argument %d of %qE from "
|
||||
"incompatible pointer type"),
|
||||
G_("assignment from incompatible pointer type"),
|
||||
|
@ -251,7 +251,7 @@ Objective-C and Objective-C++ Dialects}.
|
||||
-Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol
|
||||
-Wformat-security -Wformat-signedness -Wformat-y2k @gol
|
||||
-Wframe-larger-than=@var{len} -Wno-free-nonheap-object -Wjump-misses-init @gol
|
||||
-Wignored-qualifiers @gol
|
||||
-Wignored-qualifiers -Wincompatible-pointer-types @gol
|
||||
-Wimplicit -Wimplicit-function-declaration -Wimplicit-int @gol
|
||||
-Winit-self -Winline @gol
|
||||
-Wno-int-to-pointer-cast -Wno-invalid-offsetof @gol
|
||||
@ -4199,14 +4199,20 @@ This option is only active when @option{-ftree-vrp} is active
|
||||
(default for @option{-O2} and above). It warns about subscripts to arrays
|
||||
that are always out of bounds. This warning is enabled by @option{-Wall}.
|
||||
|
||||
@item -Wno-discarded-qualifiers
|
||||
@item -Wno-discarded-qualifiers @r{(C and Objective-C only)}
|
||||
@opindex Wno-discarded-qualifiers
|
||||
@opindex Wdiscarded-qualifiers
|
||||
Do not warn if type qualifiers on pointers are being discarded.
|
||||
Typically, the compiler will warn if a @code{const char *} variable is
|
||||
passed to a function that takes @code{char *} parameter. This option
|
||||
can be used to suppress such a warning. This warning is only supported
|
||||
for C.
|
||||
can be used to suppress such a warning.
|
||||
|
||||
@item -Wno-incompatible-pointer-types @r{(C and Objective-C only)}
|
||||
@opindex Wno-incompatible-pointer-types
|
||||
@opindex Wincompatible-pointer-types
|
||||
Do not warn when there is a conversion between pointers that have incompatible
|
||||
types. This warning is for cases not covered by @option{-Wno-pointer-sign},
|
||||
which warns for pointer argument passing or assignment with different signedness
|
||||
|
||||
@item -Wno-div-by-zero
|
||||
@opindex Wno-div-by-zero
|
||||
|
@ -1,3 +1,8 @@
|
||||
2014-07-01 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/58286
|
||||
* gcc.dg/Wincompatible-pointer-types.c: New test.
|
||||
|
||||
2014-06-30 David Holsgrove <david.holsgrove@xilinx.com>
|
||||
|
||||
* gcc/testsuite/lib/scanasm.exp (dg-function-on-line): Add
|
||||
|
21
gcc/testsuite/gcc.dg/Wincompatible-pointer-types.c
Normal file
21
gcc/testsuite/gcc.dg/Wincompatible-pointer-types.c
Normal file
@ -0,0 +1,21 @@
|
||||
/* PR c/58286 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wno-incompatible-pointer-types" } */
|
||||
|
||||
void
|
||||
fn2 (short *s, long *l)
|
||||
{
|
||||
}
|
||||
|
||||
unsigned *
|
||||
fn1 (void)
|
||||
{
|
||||
int (*fpi) (int);
|
||||
int (*fpd) (double) = fpi;
|
||||
fpi = fpd;
|
||||
char *di;
|
||||
float *dp = &di;
|
||||
di = dp;
|
||||
fn2 (dp, di);
|
||||
return dp;
|
||||
}
|
Loading…
Reference in New Issue
Block a user