re PR c++/81327 (cast to void* does not suppress -Wclass-memaccess)
authorJakub Jelinek <jakub@redhat.com>
Wed, 10 Jan 2018 16:59:09 +0000 (17:59 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 10 Jan 2018 16:59:09 +0000 (17:59 +0100)
commite99ef40892b598eeb3fa496cc472e111675d7f6c
tree4215141484dca32b97d1741887ba59b0ce723562
parent75ce74bbdd695ae793c03f93cfd55842806651e6
re PR c++/81327 (cast to void* does not suppress -Wclass-memaccess)

PR c++/81327
* call.c (maybe_warn_class_memaccess): Add forward declaration.
Change last argument from tree * to const vec<tree, va_gc> *, adjust
args uses and check number of operands too.  Don't strip away any
nops.  Use maybe_constant_value when looking for INTEGER_CST args.
Deal with src argument not having pointer type.  Check
tree_fits_uhwi_p before calling tree_to_uhwi.  Remove useless
test.
(build_over_call): Call maybe_warn_class_memaccess here on the
original arguments.
(build_cxx_call): Rather than here on converted arguments.

* g++.dg/Wclass-memaccess-2.C: Don't expect a warning when explicitly
cast to void *.

From-SVN: r256440
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/Wclass-memaccess-2.C