Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/warn/noeffect4.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 2 Sep 2003 <nathan@codesourcery.com> // PR 12037. struct X { int operator+(int); int operator-(int); int operator*(int); int operator/(int); int operator%(int); int operator>>(int); int operator<<(int); int operator&(int); int operator|(int); int operator^(int); int operator&&(int); int operator||(int); int operator==(int); int operator!=(int); int operator<(int); int operator<=(int); int operator>(int); int operator>=(int); int operator*(); int operator!(); int operator~(); int operator++(); int operator--(); int operator++(int); int operator--(int); int operator()(); int operator,(int); X *operator->(); operator int () const; int m; virtual ~X (); X &Foo (); }; struct Y : X { }; template<int I> void Foo (X &x) { x + I; x - I; x * I; x / I; x % I; x >> I; x << I; x & I; x | I; x && I; x || I; x == I; x != I; x < I; x <= I; x > I; x >= I; *x; !x; ~x; x++; x--; ++x; --x; x (); x, I; x->m; static_cast<int> (x); dynamic_cast<Y &> (x); reinterpret_cast<int> (x.Foo ()); // { dg-error "invalid cast" } const_cast<X &> (x.Foo ()); // { dg-warning "not used" } reinterpret_cast<int *> (&x);// { dg-warning "no effect" } const_cast<X &> (x); // { dg-warning "no effect" } sizeof (x++); // { dg-warning "no effect" } __alignof__ (x++); // { dg-warning "no effect" } } template void Foo<4> (X&); // { dg-message "required" }