diff options
author | mpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-01-04 21:47:04 +0000 |
---|---|---|
committer | mpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-01-04 21:47:04 +0000 |
commit | 6124217cb4d309120a1437ebdd89e4fbcbac91c7 (patch) | |
tree | d230c083213bb30f68b85cc5cdcb389fbfc76650 /gcc/c-family | |
parent | 0b16b8115f04d3eb51a3e53bc2fb293e7e1c343e (diff) | |
download | gcc-6124217cb4d309120a1437ebdd89e4fbcbac91c7.tar.gz |
PR c++/64767
* c.opt (Wpointer-compare): New option.
* c-parser.c (c_parser_postfix_expression): Mark zero character
constants by setting original_type in c_expr.
* c-typeck.c (parser_build_binary_op): Warn when a pointer is compared
with a zero character constant.
(char_type_p): New function.
* typeck.c (cp_build_binary_op): Warn when a pointer is compared with
a zero character literal.
* doc/invoke.texi: Document -Wpointer-compare.
* c-c++-common/Wpointer-compare-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244076 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-family')
-rw-r--r-- | gcc/c-family/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-family/c.opt | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 468b7dde8f5..b9bb5fe59a3 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2017-01-04 Marek Polacek <polacek@redhat.com> + + PR c++/64767 + * c.opt (Wpointer-compare): New option. + 2017-01-04 Jakub Jelinek <jakub@redhat.com> PR driver/78957 diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt index 3f6c67fbc7e..714ce3a34f0 100644 --- a/gcc/c-family/c.opt +++ b/gcc/c-family/c.opt @@ -870,6 +870,10 @@ Wpointer-sign C ObjC Var(warn_pointer_sign) Warning LangEnabledBy(C ObjC,Wall || Wpedantic) Warn when a pointer differs in signedness in an assignment. +Wpointer-compare +C ObjC C++ ObjC++ Var(warn_pointer_compare) Init(1) Warning +Warn when a pointer is compared with a zero character constant. + Wpointer-to-int-cast C ObjC Var(warn_pointer_to_int_cast) Init(1) Warning Warn when a pointer is cast to an integer of a different size. |