diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-11-17 13:41:31 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-12-06 16:13:21 +0100 |
commit | a6285cf21959e806066edd8984caddc23fea2fce (patch) | |
tree | 1cec509670f60e0847a709df8b67460685ff182f /gcc/rust | |
parent | 9666f2b169b5192b5c827d605cc80e6987e1aac5 (diff) | |
download | gcc-a6285cf21959e806066edd8984caddc23fea2fce.zip gcc-a6285cf21959e806066edd8984caddc23fea2fce.tar.gz gcc-a6285cf21959e806066edd8984caddc23fea2fce.tar.bz2 |
backend: Don't fold convert_to expressions
Diffstat (limited to 'gcc/rust')
-rw-r--r-- | gcc/rust/backend/rust-compile-expr.cc | 8 | ||||
-rw-r--r-- | gcc/rust/rust-gcc.cc | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/gcc/rust/backend/rust-compile-expr.cc b/gcc/rust/backend/rust-compile-expr.cc index e50df63..8df34c2 100644 --- a/gcc/rust/backend/rust-compile-expr.cc +++ b/gcc/rust/backend/rust-compile-expr.cc @@ -2278,13 +2278,13 @@ CompileExpr::type_cast_expression (tree type_to_cast_to, tree expr_tree, } else if (TREE_CODE (type_to_cast_to) == INTEGER_TYPE) { - tree cast = fold (convert_to_integer (type_to_cast_to, expr_tree)); + tree cast = convert_to_integer (type_to_cast_to, expr_tree); // FIXME check for TREE_OVERFLOW? return cast; } else if (TREE_CODE (type_to_cast_to) == REAL_TYPE) { - tree cast = fold (convert_to_real (type_to_cast_to, expr_tree)); + tree cast = convert_to_real (type_to_cast_to, expr_tree); // FIXME // We might need to check that the tree is MAX val and thusly saturate it // to inf. we can get the bounds and check the value if its >= or <= to @@ -2295,12 +2295,12 @@ CompileExpr::type_cast_expression (tree type_to_cast_to, tree expr_tree, } else if (TREE_CODE (type_to_cast_to) == COMPLEX_TYPE) { - return fold (convert_to_complex (type_to_cast_to, expr_tree)); + return convert_to_complex (type_to_cast_to, expr_tree); } else if (TREE_CODE (type_to_cast_to) == POINTER_TYPE && TREE_CODE (TREE_TYPE (expr_tree)) == INTEGER_TYPE) { - return fold (convert_to_pointer (type_to_cast_to, expr_tree)); + return convert_to_pointer (type_to_cast_to, expr_tree); } else if (TREE_CODE (type_to_cast_to) == RECORD_TYPE || TREE_CODE (type_to_cast_to) == ARRAY_TYPE) diff --git a/gcc/rust/rust-gcc.cc b/gcc/rust/rust-gcc.cc index e5dc6da..5bb5313 100644 --- a/gcc/rust/rust-gcc.cc +++ b/gcc/rust/rust-gcc.cc @@ -1171,14 +1171,14 @@ Gcc_backend::convert_expression (tree type_tree, tree expr_tree, ret = expr_tree; } else if (TREE_CODE (type_tree) == INTEGER_TYPE) - ret = fold (convert_to_integer (type_tree, expr_tree)); + ret = convert_to_integer (type_tree, expr_tree); else if (TREE_CODE (type_tree) == REAL_TYPE) - ret = fold (convert_to_real (type_tree, expr_tree)); + ret = convert_to_real (type_tree, expr_tree); else if (TREE_CODE (type_tree) == COMPLEX_TYPE) - ret = fold (convert_to_complex (type_tree, expr_tree)); + ret = convert_to_complex (type_tree, expr_tree); else if (TREE_CODE (type_tree) == POINTER_TYPE && TREE_CODE (TREE_TYPE (expr_tree)) == INTEGER_TYPE) - ret = fold (convert_to_pointer (type_tree, expr_tree)); + ret = convert_to_pointer (type_tree, expr_tree); else if (TREE_CODE (type_tree) == RECORD_TYPE || TREE_CODE (type_tree) == ARRAY_TYPE) ret = fold_build1_loc (location.gcc_location (), VIEW_CONVERT_EXPR, |