[Bug middle-end/56098] [4.6/4.7 Regression] conditional write through volatile pointer produces unintended read

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Feb 1 14:17:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56098

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-01 14:16:28 UTC ---
Author: jakub
Date: Fri Feb  1 14:16:20 2013
New Revision: 195663

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195663
Log:
    Backported from mainline
    2013-01-25  Jakub Jelinek  <jakub@redhat.com>

    PR tree-optimization/56098
    * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
    for stmts with volatile ops.
    (cond_store_replacement): Don't optimize if assign has volatile ops.
    (cond_if_else_store_replacement_1): Don't optimize if either
    then_assign or else_assign have volatile ops.

    * gcc.dg/pr56098-1.c: New test.

Added:
    branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/pr56098-1.c
Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_7-branch/gcc/tree-ssa-phiopt.c



More information about the Gcc-bugs mailing list