X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ftree.c;h=45e53ccda4b4540fe43a40931aeb9a45dc21841a;hp=2560c8f72a47001314648a5f1a68380ce9e071b3;hb=0de36bdb2d7fa28a41b67b7ab3f8ccb92e1d2e03;hpb=2e76978a5a65d6b6643a5f7045585379ecf92fdb diff --git a/gcc/tree.c b/gcc/tree.c index 2560c8f72a4..45e53ccda4b 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -3069,6 +3069,16 @@ build2_stat (enum tree_code code, tree tt, tree arg0, tree arg1 MEM_STAT_DECL) gcc_assert (code != GIMPLE_MODIFY_STMT); #endif + if ((code == MINUS_EXPR || code == PLUS_EXPR || code == MULT_EXPR) + && arg0 && arg1 && tt && POINTER_TYPE_P (tt)) + gcc_assert (TREE_CODE (arg0) == INTEGER_CST && TREE_CODE (arg1) == INTEGER_CST); + + if (code == POINTER_PLUS_EXPR && arg0 && arg1 && tt) + gcc_assert (POINTER_TYPE_P (tt) && POINTER_TYPE_P (TREE_TYPE (arg0)) + && TREE_CODE (TREE_TYPE (arg1)) == INTEGER_TYPE + && tree_ssa_useless_type_conversion_1 (sizetype, + TREE_TYPE (arg1))); + t = make_node_stat (code PASS_MEM_STAT); TREE_TYPE (t) = tt;