blob: 7973c75d0f9a2238f38dd370e0f6798071f90b6f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
// { dg-do assemble }
// { dg-options "-Wsign-conversion" }
// Copyright (C) 1999 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 21 Nov 1999 <nathan@acm.org>
// make sure we only warn on assigning a negative (signed) value
// to an unsigned type, and don't warn just if the unsigned value
// happens to have the top bit set.
typedef unsigned U;
void fn (unsigned);
void fu ()
{
unsigned s1 = -1u;
unsigned s2(-1u);
unsigned volatile s3 = -1u;
unsigned const s4 = -1u;
unsigned const &s5(-1u);
s1 = -1u;
fn (-1u);
}
void fU ()
{
U s1 = -1u;
U s2(-1u);
U volatile s3 = -1u;
U const s4 = -1u;
U const &s5(-1u);
s1 = -1u;
fn (-1u);
}
void fs ()
{
unsigned s1 = -1; // { dg-warning "" } initialization
unsigned s2(-1); // { dg-warning "" } initialization
unsigned volatile s3 = -1;// { dg-warning "" } initialization
unsigned const s4 = -1; // { dg-warning "" } initialization
unsigned const &s5(-1); // { dg-warning "" } initialization
s1 = -1; // { dg-warning "" } assignment
fn (-1); // { dg-warning "" } passing
}
void fss ()
{
unsigned s1 = -(-1);
unsigned s2(-(-1));
unsigned volatile s3 = -(-1);
unsigned const s4 = -(-1);
unsigned const &s5(-(-1));
s1 = -(-1);
fn (-(-1));
}
void fsz ()
{
unsigned s1 = -0;
unsigned s2(-0);
unsigned volatile s3 = -0;
unsigned const s4 = -0;
unsigned const &s5(-0);
s1 = -0;
fn (-0);
}
|