annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile }
kono
parents:
diff changeset
2 // { dg-options "-Wall" }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 // Copyright (C) 2003 Free Software Foundation, Inc.
kono
parents:
diff changeset
5 // Contributed by Nathan Sidwell 2 Sep 2003 <nathan@codesourcery.com>
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 // PR 12037.
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 struct X
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 int operator+(int);
kono
parents:
diff changeset
12 int operator-(int);
kono
parents:
diff changeset
13 int operator*(int);
kono
parents:
diff changeset
14 int operator/(int);
kono
parents:
diff changeset
15 int operator%(int);
kono
parents:
diff changeset
16 int operator>>(int);
kono
parents:
diff changeset
17 int operator<<(int);
kono
parents:
diff changeset
18 int operator&(int);
kono
parents:
diff changeset
19 int operator|(int);
kono
parents:
diff changeset
20 int operator^(int);
kono
parents:
diff changeset
21 int operator&&(int);
kono
parents:
diff changeset
22 int operator||(int);
kono
parents:
diff changeset
23 int operator==(int);
kono
parents:
diff changeset
24 int operator!=(int);
kono
parents:
diff changeset
25 int operator<(int);
kono
parents:
diff changeset
26 int operator<=(int);
kono
parents:
diff changeset
27 int operator>(int);
kono
parents:
diff changeset
28 int operator>=(int);
kono
parents:
diff changeset
29 int operator*();
kono
parents:
diff changeset
30 int operator!();
kono
parents:
diff changeset
31 int operator~();
kono
parents:
diff changeset
32 int operator++();
kono
parents:
diff changeset
33 int operator--();
kono
parents:
diff changeset
34 int operator++(int);
kono
parents:
diff changeset
35 int operator--(int);
kono
parents:
diff changeset
36 int operator()();
kono
parents:
diff changeset
37 int operator,(int);
kono
parents:
diff changeset
38 X *operator->();
kono
parents:
diff changeset
39 operator int () const;
kono
parents:
diff changeset
40 int m;
kono
parents:
diff changeset
41 virtual ~X ();
kono
parents:
diff changeset
42 X &Foo ();
kono
parents:
diff changeset
43 };
kono
parents:
diff changeset
44 struct Y : X
kono
parents:
diff changeset
45 {
kono
parents:
diff changeset
46 };
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 template<int I> void Foo (X &x)
kono
parents:
diff changeset
49 {
kono
parents:
diff changeset
50 x + I;
kono
parents:
diff changeset
51 x - I;
kono
parents:
diff changeset
52 x * I;
kono
parents:
diff changeset
53 x / I;
kono
parents:
diff changeset
54 x % I;
kono
parents:
diff changeset
55 x >> I;
kono
parents:
diff changeset
56 x << I;
kono
parents:
diff changeset
57 x & I;
kono
parents:
diff changeset
58 x | I;
kono
parents:
diff changeset
59 x && I;
kono
parents:
diff changeset
60 x || I;
kono
parents:
diff changeset
61 x == I;
kono
parents:
diff changeset
62 x != I;
kono
parents:
diff changeset
63 x < I;
kono
parents:
diff changeset
64 x <= I;
kono
parents:
diff changeset
65 x > I;
kono
parents:
diff changeset
66 x >= I;
kono
parents:
diff changeset
67 *x;
kono
parents:
diff changeset
68 !x;
kono
parents:
diff changeset
69 ~x;
kono
parents:
diff changeset
70 x++;
kono
parents:
diff changeset
71 x--;
kono
parents:
diff changeset
72 ++x;
kono
parents:
diff changeset
73 --x;
kono
parents:
diff changeset
74 x ();
kono
parents:
diff changeset
75 x, I;
kono
parents:
diff changeset
76 x->m;
kono
parents:
diff changeset
77 static_cast<int> (x);
kono
parents:
diff changeset
78 dynamic_cast<Y &> (x);
kono
parents:
diff changeset
79 reinterpret_cast<int> (x.Foo ()); // { dg-error "invalid cast" }
kono
parents:
diff changeset
80 const_cast<X &> (x.Foo ()); // { dg-warning "not used" }
kono
parents:
diff changeset
81
kono
parents:
diff changeset
82 reinterpret_cast<int *> (&x);// { dg-warning "no effect" }
kono
parents:
diff changeset
83 const_cast<X &> (x); // { dg-warning "no effect" }
kono
parents:
diff changeset
84 sizeof (x++); // { dg-warning "no effect" }
kono
parents:
diff changeset
85 __alignof__ (x++); // { dg-warning "no effect" }
kono
parents:
diff changeset
86 }
kono
parents:
diff changeset
87
kono
parents:
diff changeset
88 template void Foo<4> (X&); // { dg-message "required" }