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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:aa4db31dd2a99b4c902f2a3ac6ef4397f84dd888

commit r11-6533-gaa4db31dd2a99b4c902f2a3ac6ef4397f84dd888
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Jan 7 23:00:28 2021 +0100

    c++: Fix up tsubst of BIT_CAST_EXPR [PR98329]

    As the testcase shows, calling cp_build_bit_cast in tsubst_copy doesn't
seem
    to be a good idea, because tsubst_copy might not really make the operand
    non-dependent, but as processing_template_decl can be 0,
    type_dependent_expression_p will return false and then cp_build_bit_cast
    assumes the type is non-NULL and non-dependent.
    So, this patch just follows what is done e.g. for NOP_EXPR etc. and just
    builds some tree in tsubst_copy, and only calls the semantics.c function
    from tsubst_copy_and_build.

    2021-01-07  Jakub Jelinek  <ja...@redhat.com>

            PR c++/98329
            * pt.c (tsubst_copy) <case BIT_CAST_EXPR>: Don't call
            cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and
set
            its location.
            (tsubst_copy_and_build): Handle BIT_CAST_EXPR.

            * g++.dg/cpp2a/bit-cast10.C: New test.

Reply via email to