[Bug c++/93557] __builtin_convertvector doesn't mark input as used

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Feb 13 22:33:00 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93557

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:520b364da0b20dcb492229757190cc3f30322052

commit r9-8219-g520b364da0b20dcb492229757190cc3f30322052
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