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

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Fri Jun 22 20:54:44 2018
New Revision: 261933

URL: https://gcc.gnu.org/viewcvs?rev=261933&root=gcc&view=rev
Log:
        Backported from mainline
        2018-03-21  Jakub Jelinek  <ja...@redhat.com>

        PR c++/84961
        * cp-tree.h (genericize_compound_lvalue): Declare.
        * typeck.c (genericize_compound_lvalue): New function.
        (unary_complex_lvalue, cp_build_modify_expr): Use it.
        * semantics.c (finish_asm_stmt): Replace MODIFY_EXPR, PREINCREMENT_EXPR
        and PREDECREMENT_EXPR in output and "m" constrained input operands with
        COMPOUND_EXPR.  Call cxx_mark_addressable on the rightmost
        COMPOUND_EXPR operand.

        * c-c++-common/pr43690.c: Don't expect errors on "m" (--x) and
        "m" (++x) in C++.
        * g++.dg/torture/pr84961-1.C: New test.
        * g++.dg/torture/pr84961-2.C: New test.

Added:
    branches/gcc-7-branch/gcc/testsuite/g++.dg/torture/pr84961-1.C
    branches/gcc-7-branch/gcc/testsuite/g++.dg/torture/pr84961-2.C
Modified:
    branches/gcc-7-branch/gcc/cp/ChangeLog
    branches/gcc-7-branch/gcc/cp/cp-tree.h
    branches/gcc-7-branch/gcc/cp/semantics.c
    branches/gcc-7-branch/gcc/cp/typeck.c
    branches/gcc-7-branch/gcc/testsuite/ChangeLog
    branches/gcc-7-branch/gcc/testsuite/c-c++-common/pr43690.c

Reply via email to