From: mpolacek Date: Tue, 15 Dec 2015 15:13:49 +0000 (+0000) Subject: PR c/68907 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75e722a6c6ddf62a6487b0d80db210b231d5cd8e;p=thirdparty%2Fgcc.git PR c/68907 * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an artificial decl. * gcc.dg/pr68907.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231656 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 2ba94646e646..e61a2edd2b3e 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2015-12-15 Marek Polacek + + PR c/68907 + * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an + artificial decl. + 2015-12-08 David Malcolm * c-parser.c (c_parser_alignof_expression): Capture location of diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c index b691072caa93..9d6c604ed909 100644 --- a/gcc/c/c-typeck.c +++ b/gcc/c/c-typeck.c @@ -3814,6 +3814,7 @@ build_atomic_assign (location_t loc, tree lhs, enum tree_code modifycode, newval = create_tmp_var_raw (nonatomic_lhs_type); newval_addr = build_unary_op (loc, ADDR_EXPR, newval, 0); TREE_ADDRESSABLE (newval) = 1; + TREE_NO_WARNING (newval) = 1; loop_decl = create_artificial_label (loc); loop_label = build1 (LABEL_EXPR, void_type_node, loop_decl); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 633f8b2afe5b..17c1b661e198 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-12-15 Marek Polacek + + PR c/68907 + * gcc.dg/pr68907.c: New test. + 2015-12-15 Alessandro Fanfarillo * gfortran.dg/coarray_critical_1.f90: New. diff --git a/gcc/testsuite/gcc.dg/pr68907.c b/gcc/testsuite/gcc.dg/pr68907.c new file mode 100644 index 000000000000..de1c237b826f --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr68907.c @@ -0,0 +1,14 @@ +/* PR c/60195 */ +/* { dg-do compile } */ +/* { dg-options "-std=c11 -Wpedantic -Wall" } */ + +_Atomic int a; + +void +fn (void) +{ + ++a; + a++; + --a; + a--; +}