]> gcc.gnu.org Git - gcc.git/commit
re PR middle-end/61294 (erroneous memset used with constant zero length parameter...
authorJakub Jelinek <jakub@redhat.com>
Mon, 14 Jul 2014 07:36:39 +0000 (09:36 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 14 Jul 2014 07:36:39 +0000 (09:36 +0200)
commitb108f48f271aa76abac84c7864ee192820c9b4f3
treedbd4b3e580d9f04d3acff0c9ca3ccc78a6f522bc
parent03e0ad94a21d03ed7b434d3451a53b1d8be4a061
re PR middle-end/61294 (erroneous memset used with constant zero length parameter warning)

PR middle-end/61294
gcc/c-family/
* c.opt (Wmemset-transposed-args): New warning.
gcc/c/
* c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask.
If non-NULL, call c_parser_check_literal_zero.
(c_parser_check_literal_zero): New function.
(c_parser_postfix_expression_after_primary): Adjust
c_parser_expr_list caller, handle -Wmemset-transposed-args.
gcc/cp/
* cp-tree.h (LITERAL_ZERO_P): Define.
* parser.c (cp_parser_parenthesized_expression_list): Add
want_literal_zero_p argument, if true, for literal zeros
insert INTEGER_CSTs with LITERAL_ZERO_P flag set.
(cp_parser_postfix_expression): Adjust
cp_parser_parenthesized_expression_list caller, handle
-Wmemset-transposed-args.
(literal_zeros): New variable.
gcc/
* doc/invoke.texi (-Wmemset-transposed-args): Document.
gcc/testsuite/
* c-c++-common/Wmemset-transposed-args1.c: New test.
* c-c++-common/Wmemset-transposed-args2.c: New test.
* g++.dg/warn/Wmemset-transposed-args-1.C: New test.

From-SVN: r212510
13 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c.opt
gcc/c/ChangeLog
gcc/c/c-parser.c
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/parser.c
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/Wmemset-transposed-args1.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/Wmemset-transposed-args2.c [new file with mode: 0644]
gcc/testsuite/g++.dg/warn/Wmemset-transposed-args-1.C [new file with mode: 0644]
This page took 0.062308 seconds and 5 git commands to generate.