blob: f6bd4ae985537f0cd43316235385c575ebf76316 (
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
|
# HG changeset patch
# User sgehwolf
# Date 1430335428 25200
# Node ID 2a55e4998f0d28c7003a8a0f43d2c7602d89f54b
# Parent cd8fe1a9205aedb6b5a1fc16e664412e48aee565
8078666: JVM fastdebug build compiled with GCC 5 asserts with "widen increases"
Summary: do the math on the unsigned type where overflows are well defined
Reviewed-by: kvn, aph
diff -r cd8fe1a9205a -r 2a55e4998f0d src/share/vm/opto/type.cpp
--- a/src/share/vm/opto/type.cpp Wed Jun 10 20:15:29 2015 -0400
+++ b/src/share/vm/opto/type.cpp Wed Apr 29 12:23:48 2015 -0700
@@ -1180,11 +1180,11 @@
// Certain normalizations keep us sane when comparing types.
// The 'SMALLINT' covers constants and also CC and its relatives.
if (lo <= hi) {
- if ((juint)(hi - lo) <= SMALLINT) w = Type::WidenMin;
- if ((juint)(hi - lo) >= max_juint) w = Type::WidenMax; // TypeInt::INT
+ if (((juint)hi - lo) <= SMALLINT) w = Type::WidenMin;
+ if (((juint)hi - lo) >= max_juint) w = Type::WidenMax; // TypeInt::INT
} else {
- if ((juint)(lo - hi) <= SMALLINT) w = Type::WidenMin;
- if ((juint)(lo - hi) >= max_juint) w = Type::WidenMin; // dual TypeInt::INT
+ if (((juint)lo - hi) <= SMALLINT) w = Type::WidenMin;
+ if (((juint)lo - hi) >= max_juint) w = Type::WidenMin; // dual TypeInt::INT
}
return w;
}
@@ -1438,11 +1438,11 @@
// Certain normalizations keep us sane when comparing types.
// The 'SMALLINT' covers constants.
if (lo <= hi) {
- if ((julong)(hi - lo) <= SMALLINT) w = Type::WidenMin;
- if ((julong)(hi - lo) >= max_julong) w = Type::WidenMax; // TypeLong::LONG
+ if (((julong)hi - lo) <= SMALLINT) w = Type::WidenMin;
+ if (((julong)hi - lo) >= max_julong) w = Type::WidenMax; // TypeLong::LONG
} else {
- if ((julong)(lo - hi) <= SMALLINT) w = Type::WidenMin;
- if ((julong)(lo - hi) >= max_julong) w = Type::WidenMin; // dual TypeLong::LONG
+ if (((julong)lo - hi) <= SMALLINT) w = Type::WidenMin;
+ if (((julong)lo - hi) >= max_julong) w = Type::WidenMin; // dual TypeLong::LONG
}
return w;
}
|