summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tree-scalar-evolution.c: New file.Zdenek Dvorak2004-07-0910-1/+1487
| | | | | | | | | | | | | | | | | | | * tree-scalar-evolution.c: New file. * tree-scalar-evolution.h: New file. * tree-ssa-loop-niter.c: New file. * Makefile.in (SCEV_H): New. (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files. * cfgloop.h (struct loop): Add bounds field. * tree-flow.h (struct tree_niter_desc): New type. (number_of_iterations_cond, number_of_iterations_exit, loop_niter_by_eval, find_loop_niter_by_eval, estimate_numbers_of_iterations, can_count_iv_in_wider_type, free_numbers_of_iterations_estimates): Declare. * tree.h (lower_bound_in_type, upper_bound_in_type): Declare. * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter. * doc/invoke.texi (max-iterations-to-track): Document. From-SVN: r84340
* re PR c++/8211 (-Weffc++ warns about copyable classes with func ptr members)Giovanni Bajo2004-07-094-8/+101
| | | | | | | | | | | | | | PR c++/8211 PR c++/16165 * class.c (check_field_decls): Improve -Weffc++ warning: do not warn for pointers to functions/members, or for classes without destructors. PR c++/8211 PR c++/16165 * g++.dg/warn/effc3.C: New test. From-SVN: r84338
* sh.c (sh_va_arg): Initinalize lab_over.Kaz Kojima2004-07-094-7/+18
| | | | | | | | | | | | * config/sh/sh.c (sh_va_arg): Initinalize lab_over. * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses. (MODE_AFTER): Add cast appropriately. * config/sh/sh.md (movdi splitter): Likewise. (casesi_worker_2): Add const qualifier appropriately. (eh_return): Remove unused variable. (insv): Initialize v; From-SVN: r84337
* mmix-protos.h (mmix_expand_builtin_va_arg): Remove.Richard Henderson2004-07-084-109/+20
| | | | | | | | | | * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove. * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg. * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove. (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label. From-SVN: r84336
* m32r-protos.h (m32r_va_arg): Remove.Richard Henderson2004-07-084-57/+12
| | | | | | | | | * config/m32r/m32r-protos.h (m32r_va_arg): Remove. * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg. * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84335
* Daily bump.GCC Administrator2004-07-092-2/+2
| | | | From-SVN: r84333
* iq2000-protos.h (iq2000_va_arg): Remove.Richard Henderson2004-07-084-197/+13
| | | | | | | | | * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove. * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg. * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84330
* frv-protos.h (frv_expand_builtin_va_arg): Remove.Richard Henderson2004-07-084-30/+14
| | | | | | | | | * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove. * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg. * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84329
* f77-edit-i-in.f: Copy from g77.dg and change X to 1X in format.David Billinghurst2004-07-083-0/+81
| | | | | | | | | | | 2004-07-09 David Billinghurst (David.Billinghurst@riotinto.com) * gfortran.dg/g77/f77-edit-i-in.f: Copy from g77.dg and change X to 1X in format. * gfortran.dg/g77/20010216-1.f: Copy from g77.dg and add data statements to conform to standard. From-SVN: r84328
* i860-protos.h (i860_va_arg): Remove.Richard Henderson2004-07-084-85/+70
| | | | | | | | | * config/i860/i860-protos.h (i860_va_arg): Remove. * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg. * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84327
* f77-edit-s-out.f: Copy from g77.dg.David Billinghurst2004-07-084-0/+69
| | | | | | | | | | 2004-07-09 David Billinghurst (David.Billinghurst@riotinto.com) * gfortran.dg/g77/f77-edit-s-out.f: Copy from g77.dg. XFAIL * gfortran.dg/g77/f77-edit-t-in.f: Likewise * gfortran.dg/g77/f77-edit-x-out.f: Likewise From-SVN: r84326
* 7388.f: Copy from g77.dgDavid Billinghurst2004-07-089-0/+209
| | | | | | | | | | | | | | | 2004-07-09 David Billinghurst (David.Billinghurst@riotinto.com) * gfortran.dg/g77/7388.f: Copy from g77.dg * gfortran.dg/g77/f77-edit-i-out.f: Likewise * gfortran.dg/g77/f77-edit-apostrophe-out.f: Likewise * gfortran.dg/g77/f77-edit-slash-out.f: Likewise * gfortran.dg/g77/f77-edit-colon-out.f: Likewise * gfortran.dg/g77/f77-edit-t-out.f: Likewise * gfortran.dg/g77/f77-edit-h-out.f: Likewise * gfortran.dg/g77/strlen0.f: Likewise From-SVN: r84325
* gfortran-dg.exp: New file (adapted from lib/g77-dg.exp)David Billinghurst2004-07-083-0/+91
| | | | | | | | | 2004-07-09 David Billinghurst (David.Billinghurst@riotinto.com) * lib/gfortran-dg.exp: New file (adapted from lib/g77-dg.exp) * gfortran.dg/dg.exp: New file (adapted from g77.dg/dg.exp) From-SVN: r84324
* system.h: Prototype getpagesize if missing.Aaron W. LaFramboise2004-07-085-2/+18
| | | | | | | | | * system.h: Prototype getpagesize if missing. * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS. * configure: Regenerate. * config.in: Regenerate. From-SVN: r84323
* fr30-protos.h (fr30_va_arg): Remove.Richard Henderson2004-07-084-72/+17
| | | | | | | | | | * config/fr30/fr30-protos.h (fr30_va_arg): Remove. * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (fr30_gimplify_va_arg_expr): New. (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove. * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84322
* cris-protos.h (cris_expand_builtin_va_arg): Remove.Richard Henderson2004-07-084-87/+18
| | | | | | | | | * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove. * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg. * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84321
* re PR target/16414 (Gcc 3.4 ICE on valid code)Vladimir Makarov2004-07-082-1/+7
| | | | | | | | | | 2004-07-08 Vladimir Makarov <vmakarov@redhat.com> PR target/16414 * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison of asm_noperands result. From-SVN: r84318
* builtins.c (ind_gimplify_va_arg_expr): New.Richard Henderson2004-07-084-5/+19
| | | | | | | | * builtins.c (ind_gimplify_va_arg_expr): New. * tree.h (ind_gimplify_va_arg_expr): Declare. * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it. From-SVN: r84317
* expmed.c (extract_bit_field): Correct condition to use vec_extract patterns ↵Jan Beulich2004-07-083-4/+15
| | | | | | | | | | | also on vector elements other... * expmed.c (extract_bit_field): Correct condition to use vec_extract patterns also on vector elements other than the first one. * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing break statements. From-SVN: r84316
* re PR target/16344 (libstdc++'s PCH built by profiledbootstrap does not work ↵John David Anglin2004-07-083-12/+19
| | | | | | | | | | | with the built compiler) PR target/16344 * Makefile.tpl (profiledbootstrap): Build runtime libraries with feedback based compiler. * Makefile.in: Rebuilt. From-SVN: r84315
* darwin-ldouble.c: Correct reference to the Linnainmaa paper.Geoffrey Keating2004-07-082-1/+6
| | | | | | | * config/rs6000/darwin-ldouble.c: Correct reference to the Linnainmaa paper. From-SVN: r84314
* arc-protos.h (arc_va_arg): Remove.Richard Henderson2004-07-084-74/+14
| | | | | | | | | * config/arc/arc-protos.h (arc_va_arg): Remove. * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg. * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84313
* gslice.h: Trivial formatting fixes.Paolo Carlini2004-07-0810-643/+793
| | | | | | | | | | | | | | | | 2004-07-08 Paolo Carlini <pcarlini@suse.de> * include/bits/gslice.h: Trivial formatting fixes. * include/bits/gslice_array.h: Likewise. * include/bits/indirect_array.h: Likewise. * include/bits/mask_array.h: Likewise. * include/bits/slice_array.h: Likewise. * include/bits/valarray_after.h: Likewise. * include/bits/valarray_array.h: Likewise. * include/bits/valarray_before.h: Likewise. * include/std/std_valarray.h: Likewise. From-SVN: r84312
* c4x-protos.h (c4x_va_arg): Remove.Richard Henderson2004-07-084-11/+19
| | | | | | | | | * config/c4x/c4x-protos.h (c4x_va_arg): Remove. * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg. * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove. From-SVN: r84311
* * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.John David Anglin2004-07-082-12/+10
| | | | From-SVN: r84310
* 920428-2.x: Delete.Eric Botcazou2004-07-083-12/+5
| | | | | | | * gcc.c-torture/execute/920428-2.x: Delete. * gcc.c-torture/execute/920501-7.x: Likewise. From-SVN: r84309
* re PR libfortran/16291 (F2003 formatting of Inf /Nan on irix6.5)Andreas Krebbel2004-07-082-5/+11
| | | | | | | | PR fortran/16291 * libgfortran/io/write.c: (write_float): Added length check. Remove pointless memset calls. From-SVN: r84308
* c-decl.c (static_ctors, [...]): Make static.Zack Weinberg2004-07-086-73/+81
| | | | | | | | | | | | | | | | | | | | | | | * c-decl.c (static_ctors, static_dtors): Make static. (pop_file_scope): Call c_common_write_pch and cgraph_finalize_compilation_unit here. (build_cdtor): Moved here from c-objc-common.c; simplify. (c_write_global_declarations_1): Clarify comment. (c_write_global_declarations): Close the external scope before doing anything else. Call build_cdtor, cgraph_optimize, and mudflap_finish_file here. * c-lang.c (finish_file): Don't call c_objc_common_finish_file. Clarify comment. * c-objc-common.c: No need to include cgraph.h. (build_cdtor): Moved to c-decl.c. (c_objc_common_finish_file): Delete. * c-tree.h: Update to match. * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file. (generate_static_references): Set TREE_USED before calling finish_decl. Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation on the static_instances_decl. From-SVN: r84307
* c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope decls when...Zack Weinberg2004-07-087-55/+37
| | | | | | | | | | | | | | | * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope decls when there is only one input translation unit. * langhooks.c (lhd_set_decl_assembler_name): Partially revert change of 2004-07-05; do not treat declarations with DECL_CONTEXT a TRANSLATION_UNIT_DECL specially. * opts.c (cur_in_fname): Delete. * opts.h: Likewise. * tree.c: Revert changes of 2004-07-05; no special treatment for TRANSLATION_UNIT_DECLs. * Makefile.in (tree.o): Update dependencies. From-SVN: r84306
* Makefile.def (host_modules): Set bootstrap=true for flex.Alexandre Oliva2004-07-084-4/+10
| | | | | | | | * Makefile.def (host_modules): Set bootstrap=true for flex. * Makefile.tpl (all-gcc): Depend on texinfo and flex. * Makefile.in: Rebuilt. From-SVN: r84305
* intrinsic.c (add_sym_4s): New function.Paul Brook2004-07-082-18/+51
| | | | | | | * intrinsic.c (add_sym_4s): New function. (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s. From-SVN: r84304
* ANSI C conversion, libmudflap specialization, recursion limiting.Frank Ch. Eigler2004-07-084-287/+388
| | | | | | | | | | | | | | | | | | | | | | | | | | 2004-07-08 Frank Ch. Eigler <fche@redhat.com> ANSI C conversion, libmudflap specialization, recursion limiting. * splay-tree.h (splay_tree_{de,}allocate_fn): Remove allocation_data argument and indirection function pointers, update callers. (splay_tree_s): Add statistics and recursion control fields num_keys, max_depth, depth, rebalance_p. * splay-tree.c (splay_tree_splay_helper): Track recursion depth. Back out of search if it exceeds limit. (splay_tree_splay): Manage recursion limiting with rebalancing as needed. (splay_tree_new): More initialization. (splay_tree_rebalance): New function. (splay_tree_foreach): Rewrite using nonrecursive logic. (splay_tree_xmalloc_allocate, splay_tree_xmalloc_deallocate): Remove. Point indirect calls to mf-runtime.c's routines. (splay_tree_compare_ints, splay_tree_compare_pointers): Remove unused functions. (splay_tree_delete, splay_tree_delete_helper): Ditto. * testsuite/heap-scalestress.c: New test based on one from Eyal Lebedinsky <eyal@eyal.emu.id.au>: From-SVN: r84303
* builtins.c (fold_builtin_strcpy): Merge functionality from ↵Roger Sayle2004-07-086-203/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | simplify_builtin_strcpy. * builtins.c (fold_builtin_strcpy): Merge functionality from simplify_builtin_strcpy. Add additional len argument. No longer static. Remove function prototype. (fold_builtin_strncpy): Likewise integrate functionality from simplify_builtin_strncpy. Add additional slen argument. No longer static. Remove function prototype. (simplify_builtin_strcy, simplify_builtin_strncpy): Delete. (simplify_builtin_fputs): Rename to fold_builtin_fputs. Change types of "ignore" and "unlocked" parameters to bool. (fold_builtin_1): Add additional ignore argument. Call renamed fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked" builtins. Update arguments to fold_builtin_strncpy and fold_builtin_strcpy. Add function prototype. (fold_builtin): Add additional Boolean ignore argument to pass to fold_builtin_1. (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy instead of simplify_builtin_fputs, simplify_builtin_strcpy and simplify_builtin_strncpy respectively. * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy, simplify_builtin_strncpy): Delete function prototypes. * tree.h (fold_builtin_fputs, fold_builtin_strcpy, fold_builtin_strncpy): Add function prototypes here. (fold_builtin): Update function prototype with new "bool ignore". * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin. (ccp_fold_builtin): Update call to fold_builtin. Call fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy instead of simplify_builtin_fputs, simplify_builtin_strcpy and simplify_builtin_strncpy respectively. * fold-const.c (fold): Update call to fold_builtin. From-SVN: r84302
* builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy to strcpy.Alexandre Oliva2004-07-082-1/+11
| | | | | | | * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy to strcpy. From-SVN: r84301
* expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.Alexandre Oliva2004-07-085-28/+23
| | | | | | | | | | | * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0. (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise. (FUNCTION_ARG_CALLEE_COPIES): Likewise. * calls.c: Remove ifdefs of macros above. * functions.c: Likewise. * expr.c: Likewise. From-SVN: r84300
* sparc.md (UNSPECV_GOTO_V9): Delete.Eric Botcazou2004-07-082-17/+53
| | | | | | | | | | | | | * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete. (arch attribute): Delete. (current_function_calls_alloca attribute): Rename into calls_alloca. (calls_eh_return): New attribute. (leaf_function): Likewise. (length attribute): Fix formula for sibcalls. (return insn): Correctly compute the 'length' attribute. (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca. From-SVN: r84299
* tree-cfg.c (make_exit_edges): Use get_call_expr_in.Richard Henderson2004-07-088-102/+110
| | | | | | | | | | | | | | | * tree-cfg.c (make_exit_edges): Use get_call_expr_in. (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise. (tree_block_ends_with_call_p, need_fake_edge_p): Likewise. * tree-eh.c (lower_eh_constructs_1): Likewise. * tree-sra.c (sra_walk_modify_expr): Likewise. * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. (eliminate_unnecessary_stmts): Likewise. * tree-ssa-dse.c (dse_optimize_stmt): Likewise. * tree-tailcall.c (optimize_tail_call): Likewise. * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch. From-SVN: r84298
* [multiple changes]Jakub Jelinek2004-07-084-6/+41
| | | | | | | | | | | | | | | | | | | | 2004-07-08 Paolo Bonzini <bonzini@gnu.org> Jakub Jelinek <jakub@redhat.com> * config/i386/i386.c (override_options): Enable SSE prefetches with -mtune, as long as we are compiling for i686 or higher. All i686 processors accept SSE prefetches as NOPS, some i586's don't. 2004-07-08 Jakub Jelinek <jakub@redhat.com> * gcc.mist-tests/i386-prefetch.exp (PREFETCH_SSE): Change all -march=i386 into -march=i686. Add -march=i686 -mtune=x and -march=x for pentium3, pentium3m, pentium-m, pentium4m, prescott and c3-2. (PREFETCH_3DNOW): Add -march=c3. From-SVN: r84297
* re PR c++/16169 (-Weffc++ item 15 improvements)Benjamin Kosnik2004-07-082-8/+7
| | | | | | | | | 2004-07-08 Benjamin Kosnik <bkoz@redhat.com> PR c++/16169 * include/bits/basic_string.h (basic_string::operator=): Revert. From-SVN: r84296
* re PR tree-optimization/16437 (New c-torture failures after bitfield patch)Diego Novillo2004-07-083-0/+33
| | | | | | | | PR c/16437 * gcc.c-torture/execute/991118-1.x: XFAIL for x86_64. * gcc.c-torture/execute/bf64-1.x: Likewise. From-SVN: r84295
* re PR target/10567 (-fno-delayed-branch not honored in back-end)Eric Botcazou2004-07-082-3/+16
| | | | | | | PR target/10567 * config/sparc/sparc.md (update_return): Honor flag_delayed_branch. From-SVN: r84293
* tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in the handling of ↵Diego Novillo2004-07-082-38/+40
| | | | | | | | | clobbering ASM_EXPRs. * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in the handling of clobbering ASM_EXPRs. From-SVN: r84292
* name-lookup.h (struct cp_binding_level): Update documentation for ↵Mark Mitchell2004-07-082-6/+11
| | | | | | | | | class_shadowed. * name-lookup.h (struct cp_binding_level): Update documentation for class_shadowed. From-SVN: r84291
* re PR target/16430 (ICE when returning non-C aggregates larger than 16 bytes)Eric Botcazou2004-07-082-0/+18
| | | | | | | | PR target/16430 * config/sparc/sparc.c (function_value): In 64-bit mode, return the aggregates larger than 16 bytes like unions. From-SVN: r84289
* re PR rtl-optimization/16199 (ICE while compiling apache 2.0.49)Eric Botcazou2004-07-084-63/+213
| | | | | | | | | | | | PR target/16199 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When 'temp' is zero, generate new pseudos as needed and emit the sequence of insns in single-assignment form. Resync comments with code. (sparc_emit_set_const64): Pass zero as 'temp' argument to above function before reload. From-SVN: r84285
* re PR c++/16169 (-Weffc++ item 15 improvements)Giovanni Bajo2004-07-084-3/+73
| | | | | | | | | | | PR c++/16169 * typeck.c (check_return_expr): Improve -Weffc++ warning: handle returning CALL_EXPR, and non-reference return type. PR c++/16169 * g++.dg/warn/effc2.C: New test. From-SVN: r84283
* * vec.c (vec_assert_fail): Remove duplicate 'function'.Nathan Sidwell2004-07-082-2/+4
| | | | From-SVN: r84282
* vec.c (vec_p_reserve, [...]): Allocation is signed.Nathan Sidwell2004-07-085-67/+95
| | | | | | | | | | | .: * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed. * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init): Allocation is signed. (VEC_reserve): Return flag, allocation is signed. cp: * name-lookup.c (push_binding): Use VEC_reserve. From-SVN: r84281
* tree-ssa-ccp.c (fold_stmt): Get type directly from OBJ_TYPE_REF_OBJECT.Richard Henderson2004-07-082-1/+11
| | | | | | | * tree-ssa-ccp.c (fold_stmt): Get type directly from OBJ_TYPE_REF_OBJECT. From-SVN: r84280
* re PR c/2511 (-pedantic not warning about bitfield overflow)Joseph Myers2004-07-0816-52/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-07-08 Joseph S. Myers <jsm@polyomino.org.uk> Neil Booth <neil@daikokuya.co.uk> PR c/2511 PR c/3325 * c-decl.c (finish_struct): Ensure bit-fields are given the correct type. * c-common.c (c_common_signed_or_unsigned_type): For C, require the precision to match as well as the mode. * expr.c (reduce_to_bit_field_precision): New function. (expand_expr_real_1): Reduce expressions of bit-field type to proper precision. * langhooks.h (reduce_bit_field_operations): New hook. * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define. * c-lang.c, objc/objc-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define. * objc/objc-act.c (check_ivars): Convert types to bit-field types before checking. * tree.c (build_nonstandard_integer_type): New function. * tree.h (build_nonstandard_integer_type): New prototype. * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat conversions between integer and boolean types as useless. testsuite: * gcc.c-torture/execute/bitfld-1.x: Remove. * gcc.c-torture/execute/bitfld-3.c: New test. * gcc.dg/bitfld-2.c: Remove XFAILs. Co-Authored-By: Neil Booth <neil@daikokuya.co.uk> From-SVN: r84279