[Bug c++/93557] __builtin_convertvector doesn't mark input as used
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 5 22:36:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93557
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:5a8ad97b6e4823d4ded00a3ce8d80e4bf93368d4
commit r10-6460-g5a8ad97b6e4823d4ded00a3ce8d80e4bf93368d4
Author: Jakub Jelinek <jakub@redhat.com>
Date: Wed Feb 5 23:35:08 2020 +0100
c++: Mark __builtin_convertvector operand as read [PR93557]
In C++ we weren't calling mark_exp_read on the __builtin_convertvector
first
argument. I guess it could misbehave even with lambda implicit captures.
Fixed by calling decay_conversion on the argument, we use the argument as
rvalue so we want the standard lvalue to rvalue conversions, but as the
argument must be a vector type, e.g. integral promotions aren't really
needed.
2020-02-05 Jakub Jelinek <jakub@redhat.com>
PR c++/93557
* semantics.c (cp_build_vec_convert): Call decay_conversion on arg
prior to passing it to c_build_vec_convert.
* c-c++-common/Wunused-var-17.c: New test.
More information about the Gcc-bugs
mailing list