re PR c++/57274 (Bogus sequence-point warning in C++)
authorJakub Jelinek <jakub@redhat.com>
Tue, 14 May 2013 20:50:43 +0000 (22:50 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 14 May 2013 20:50:43 +0000 (22:50 +0200)
PR c++/57274
* c-common.c (verify_tree): Don't recurse into SIZEOF_EXPR.

* c-c++-common/Wsequence-point-1.c: New test.

From-SVN: r198903

gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/Wsequence-point-1.c [new file with mode: 0644]

index 62e14d07adb8e02d16ef316124dd7687109800f1..840a10e973fe6f0182eac935f46dafc002655f11 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/57274
+       * c-common.c (verify_tree): Don't recurse into SIZEOF_EXPR.
+
 2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
 
        * c-common.c (vector_types_convertible_p): No TYPE_PRECISION for
index 8cc1248861378daa8240b59da53a2f60b9fd61f0..7f5d3165b8b6243e46bdf2f5fbbd2751424794e8 100644 (file)
@@ -3032,6 +3032,7 @@ verify_tree (tree x, struct tlist **pbefore_sp, struct tlist **pno_sp,
   switch (code)
     {
     case CONSTRUCTOR:
+    case SIZEOF_EXPR:
       return;
 
     case COMPOUND_EXPR:
index 9171c447132612940b3fe218ffa0d4c113ea12ff..4f9e5753dc960e9cd2ad6b1aabb2359492550b6b 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/57274
+       * c-c++-common/Wsequence-point-1.c: New test.
+
 2013-05-14  Marc Glisse  <marc.glisse@inria.fr>
 
        * g++.dg/ext/vector22.C: New testcase.
diff --git a/gcc/testsuite/c-c++-common/Wsequence-point-1.c b/gcc/testsuite/c-c++-common/Wsequence-point-1.c
new file mode 100644 (file)
index 0000000..60dd55b
--- /dev/null
@@ -0,0 +1,17 @@
+/* PR c++/57274 */
+/* { dg-do compile } */
+/* { dg-options "-Wsequence-point" } */
+
+void foo (int, int);
+
+void
+bar (int *x)
+{
+  foo (*x++, sizeof (*x));     /* { dg-bogus "may be undefined" } */
+}
+
+void
+baz (int *x)
+{
+  foo (*x, sizeof (*x++) + sizeof (*x++));     /* { dg-bogus "may be undefined" } */
+}