1 // { dg-do compile }
2 // { dg-options "-Wall" }
3 
4 // Copyright (C) 2003 Free Software Foundation, Inc.
5 // Contributed by Nathan Sidwell 14 Aug 2003 <nathan@codesourcery.com>
6 
7 // PR 11512. erroneous warnings
8 
Foo(T i)9 template <class T>  void Foo(T i)
10 {
11   i++, i++;
12   i, i++; // { dg-warning "left operand" }
13   i++, i; // { dg-warning "right operand" }
14   for (;; --i, ++i)
15     ;
16 }
17 
Bar()18 void Bar ()
19 {
20   Foo (1);  // { dg-message "required" }
21 }
22 
23 struct M {};
24 
25 struct C
26 {
27   M m;
CC28   C () :m (M ()) {}
29 };
30 
31 
Baz(int i)32 void Baz (int i)
33 {
34   i ? i + 1 : i + 2; // { dg-warning "operand of" }
35   i ? i++ : 0;
36 }
37