// { dg-do compile }
// { dg-options "-Wall" }

// Copyright (C) 2003 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 14 Aug 2003 <nathan@codesourcery.com>

// PR 11512. erroneous warnings

template <class T>  void Foo(T i) 
{ 
  i++, i++;
  i, i++; // { dg-warning "left operand" }
  i++, i; // { dg-warning "right operand" }
  for (;; --i, ++i)
    ;
} 
 
void Bar ()
{ 
  Foo (1);  // { dg-message "required" }
}

struct M {};

struct C
{
  M m;
  C () :m (M ()) {}
};


void Baz (int i)
{
  i ? i + 1 : i + 2; // { dg-warning "operand of" }
  i ? i++ : 0;
}
