diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2020-03-11 11:05:46 +0100 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2020-03-11 11:29:30 +0100 |
commit | 4f40aee87d1598407aafd9bb35a491d46c766c19 (patch) | |
tree | b16dccb3b99758f675b4dad6b9871a7ba25c3982 /gcc | |
parent | f7626d1ebf828f85179102240ce705a023bbd566 (diff) | |
download | gcc-4f40aee87d1598407aafd9bb35a491d46c766c19.zip gcc-4f40aee87d1598407aafd9bb35a491d46c766c19.tar.gz gcc-4f40aee87d1598407aafd9bb35a491d46c766c19.tar.bz2 |
Document narrowing cast discrepancy.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tree-vrp.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 1270d19..a9d85ed 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -2134,6 +2134,18 @@ register_edge_assert_for_2 (tree name, edge e, simply register the same assert for it. */ if (CONVERT_EXPR_CODE_P (rhs_code)) { + // This disables narrowing casts: + // + // long unsigned int _2; + // char _3; + // _3 = (char) _2; + // if (_3 == 0) + // goto <bb 6>; + // + // evrp gets [0,0] + // gori gets [0,0][256, 18446744073709551360] + // + // See: See tree-ssa/ivopts-lower_base.c gori_computable set_gori_computable (false); wide_int rmin, rmax; tree rhs1 = gimple_assign_rhs1 (def_stmt); |