diff options
author | Michael Matz <matz@suse.de> | 2009-10-08 16:03:11 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2009-10-08 16:03:11 +0000 |
commit | 6728ee79872ffd3dbcf858dab076c96c71ec95e5 (patch) | |
tree | dfbfdde0ac425b160f559d82eab975a3ba3e115a /gcc/builtins.c | |
parent | 0d0bfe1795ba93c2af0fca2ca68a025c5cd4c82b (diff) | |
download | gcc-6728ee79872ffd3dbcf858dab076c96c71ec95e5.zip gcc-6728ee79872ffd3dbcf858dab076c96c71ec95e5.tar.gz gcc-6728ee79872ffd3dbcf858dab076c96c71ec95e5.tar.bz2 |
re PR middle-end/41573 (segfault in trunk related to strings)
PR middle-end/41573
* builtins.c (fold_builtin_isascii): Use fold_build2.
(fold_builtin_isdigit): Ditto.
* except.c (duplicate_eh_regions_1): Tolerate NULL labels.
* tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
remove_useless_stmts_cond, remove_useless_stmts_tf,
remove_useless_stmts_tc, remove_useless_stmts_bind,
remove_useless_stmts_goto, remove_useless_stmts_label,
remove_useless_stmts_1, remove_useless_stmts,
pass_remove_useless_stmts): Remove.
* tree-pass.h (pass_remove_useless_stmts): Don't declare.
* passes.c (init_optimization_passes): Don't add
pass_remove_useless_stmts.
* tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
* tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
static constants.
* lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
for static constants.
* lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
* lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.
testsuite/
* gcc.dg/tree-ssa/foldstring-1.c: Use fre dump.
* gcc.dg/tree-ssa/useless-1.c: Use gimple dump.
* gcc.dg/pr41573.c: New test.
From-SVN: r152563
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index c9bc230..55228d2 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -9238,9 +9238,9 @@ fold_builtin_isascii (location_t loc, tree arg) else { /* Transform isascii(c) -> ((c & ~0x7f) == 0). */ - arg = build2 (BIT_AND_EXPR, integer_type_node, arg, - build_int_cst (NULL_TREE, - ~ (unsigned HOST_WIDE_INT) 0x7f)); + arg = fold_build2 (BIT_AND_EXPR, integer_type_node, arg, + build_int_cst (NULL_TREE, + ~ (unsigned HOST_WIDE_INT) 0x7f)); return fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg, integer_zero_node); } @@ -9278,8 +9278,8 @@ fold_builtin_isdigit (location_t loc, tree arg) return NULL_TREE; arg = fold_convert_loc (loc, unsigned_type_node, arg); - arg = build2 (MINUS_EXPR, unsigned_type_node, arg, - build_int_cst (unsigned_type_node, target_digit0)); + arg = fold_build2 (MINUS_EXPR, unsigned_type_node, arg, + build_int_cst (unsigned_type_node, target_digit0)); return fold_build2_loc (loc, LE_EXPR, integer_type_node, arg, build_int_cst (unsigned_type_node, 9)); } |