diff options
author | Richard Guenther <rguenther@suse.de> | 2008-08-31 11:06:10 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2008-08-31 11:06:10 +0000 |
commit | f5e85907ff9383b4070b144d42b2d592dcc5da9f (patch) | |
tree | 88d5a6706133911677ee26797c26287a872ce35a /gcc/tree-cfg.c | |
parent | e157f73660e50bd02f5c2c6d94624de70303e579 (diff) | |
download | gcc-f5e85907ff9383b4070b144d42b2d592dcc5da9f.zip gcc-f5e85907ff9383b4070b144d42b2d592dcc5da9f.tar.gz gcc-f5e85907ff9383b4070b144d42b2d592dcc5da9f.tar.bz2 |
tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched types instead of operands.
2008-08-31 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
types instead of operands. Re-instantiate verifying of
binary expression operands.
From-SVN: r139823
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 39a04e9..c485027 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -3549,8 +3549,25 @@ verify_types_in_gimple_assign (gimple stmt) if (!useless_type_conversion_p (lhs_type, rhs1_type)) { error ("non-trivial conversion at assignment"); - debug_generic_expr (lhs); - debug_generic_expr (rhs1); + debug_generic_expr (lhs_type); + debug_generic_expr (rhs1_type); + return true; + } + break; + + case tcc_binary: + if (!is_gimple_val (rhs1) || !is_gimple_val (rhs2)) + { + error ("invalid operands in binary expression"); + return true; + } + if (!useless_type_conversion_p (lhs_type, rhs1_type) + || !useless_type_conversion_p (lhs_type, rhs2_type)) + { + error ("type mismatch in binary expression"); + debug_generic_stmt (lhs_type); + debug_generic_stmt (rhs1_type); + debug_generic_stmt (rhs2_type); return true; } break; @@ -3561,8 +3578,8 @@ verify_types_in_gimple_assign (gimple stmt) if (!useless_type_conversion_p (lhs_type, rhs1_type)) { error ("non-trivial conversion at assignment"); - debug_generic_expr (lhs); - debug_generic_expr (rhs1); + debug_generic_expr (lhs_type); + debug_generic_expr (rhs1_type); return true; } return verify_types_in_gimple_reference (rhs1); |