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
9template <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
18void Bar ()
19{
20  Foo (1);  // { dg-message "required" }
21}
22
23struct M {};
24
25struct C
26{
27  M m;
28  C () :m (M ()) {}
29};
30
31
32void Baz (int i)
33{
34  i ? i + 1 : i + 2; // { dg-warning "operand of" }
35  i ? i++ : 0;
36}
37