view gcc/testsuite/g++.dg/template/warn1.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { 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;
}