summaryrefslogtreecommitdiff
path: root/gcc/tree-parloops.c
diff options
context:
space:
mode:
authorrus <rus@138bc75d-0d04-0410-961f-82ee72b054a4>2008-08-15 21:37:08 +0000
committerrus <rus@138bc75d-0d04-0410-961f-82ee72b054a4>2008-08-15 21:37:08 +0000
commitaa24789524caa6f92c525a108d8deb60e832a0cd (patch)
treeb8926c2ce7008c13ca80a5fe0c2e86bfbe68f63b /gcc/tree-parloops.c
parentc8ff8146c681ec3d932f9a378755fd0b3314564c (diff)
downloadgcc-aa24789524caa6f92c525a108d8deb60e832a0cd.tar.gz
Merged revisions 137858-137859,137862,137868,137872-137875,137883-137884,137886,137888-137890,137893-137896,137903-137904,137907,137909-137910,137912-137914,137918,137921-137924,137937,137939,137941,137949-137950,137954-137956,137958-137963,137965-137970,137973,137975-137976,137980-137986,137989-137991,137995,138005-138007,138009-138010,138012-138013,138016,138018-138022,138024,138026-138027,138031-138032,138034,138036,138038,138040-138043,138047,138049-138050,138057-138058,138063-138064,138069,138072-138073,138075,138078,138082,138087,138089,138091-138092,138096-138097,138100,138104,138106-138107,138110,138112,138119-138120,138122-138123,138127-138128,138131,138139-138143,138145-138146,138148,138150-138151,138154,138159,138165,138167,138179-138181,138184,138186,138189-138191,138194,138198,138201,138206-138208,138211,138213-138217,138219,138221,138224,138226,138233-138238,138245-138246,138248-138252,138254-138258,138260-138261,138263,138274-138275,138277,138289,138291,138293-138298,138300-138308,138310,138313-138314,138316-138318,138320-138325,138327-138333,138335-138336,138340,138347-138348,138351,138353,138355-138358,138360-138367,138370-138402,138404-138422,138424-138429,138432,138434-138440,138444,138446,138448,138450,138455-138470,138472-138475,138479-138503,138506-138520,138522,138524-138525,138530,138537,138541,138544,138552-138553,138555,138560,138562,138564-138566,138568,138573,138575-138606,138608-138620,138631,138633,138635-138638,138640,138642-138643,138645,138647-138652,138661,138664,138667-138676,138678-138697,138700-138706,138708-138711,138714,138716-138728,138732-138733,138735,138737-138738,138740,138747-138748,138751,138756-138759,138763-138793,138797,138799-138800,138804,138806-138817,138819,138829,138832,138834-138835,138837,138839-138844,138846-138851,138854,138859,138862-138882,138884-138887,138889-138893,138896,138898,138903-138912,138914-138917,138921,138924-138925,138932-138934,138936,138939,138950-138951,138953-138954,138957,138966-138967,138970,138974,138978,138988,138995,139004-139005,139008-139009,139011,139013-139017,139019,139024-139026,139028-139029,139031,139034-139040,139042,139045,139048-139054,139061-139065,139072,139074-139075,139082,139084,139086,139089,139091-139093,139095-139097,139099-139100,139111,139114,139116-139117,139121,139124-139126,139129,139135 via svnmerge from
svn+ssh://gcc.gnu.org/svn/gcc/trunk ........ r137858 | paolo | 2008-07-15 16:23:23 -0700 (Tue, 15 Jul 2008) | 36 lines 2008-07-15 Chris Fairles <chris.fairles@gmail.com> * include/std/chrono: New, as per N2661. * src/chrono.cc: New. * include/Makefile.am: Update. * src/Makefile.am: Likewise. * include/Makefile.in: Regenerate. * src/Makefile.in: Likewise. * acinclude.m4: Add tests for clock_gettime and gettimeofday that define _GLIBCXX_HAS_CLOCK_GETTIME and/or _GLIBCXX_HAS_GETTIMEOFDAY. * configure.ac: Use them. * configure: Regenerate. * config.h.in: Likewise. * config/abi/pre/gnu.ver: Add symbols for system_clock::now() and system_clock::is_monotonic. * testsuite/20_util/duration/cons/1.cc: New. * testsuite/20_util/duration/cons/2.cc: Likewise. * testsuite/20_util/duration/cons/1_neg.cc: Likewise. * testsuite/20_util/duration/requirements/explicit_instantiation/ explicit_instantiation.cc: Likewise. * testsuite/20_util/duration/arithmetic/1.cc: Likewise. * testsuite/20_util/duration/arithmetic/2.cc: Likewise. * testsuite/20_util/duration/comparisons/1.cc: Likewise. * testsuite/20_util/time_point/requirements/explicit_instantiation/ explicit_instantiation.cc: Likewise. * testsuite/20_util/time_point/1.cc: Likewise. * testsuite/20_util/time_point/2.cc: Likewise. * testsuite/20_util/time_point/3.cc: Likewise. * testsuite/20_util/clocks/1.cc: Likewise. * testsuite/17_intro/headers/c++200x/all_multiple_inclusion.cc: Add missing headers. * testsuite/17_intro/headers/c++200x/all.cc: Likewise. * include/precompiled/stdc++.h: Likewise and remove <date_time>. * doc/doxygen/user.cfg.in: Likewise. ........ r137859 | dberlin | 2008-07-15 16:50:52 -0700 (Tue, 15 Jul 2008) | 12 lines 2008-07-15 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-sccvn.c (expressions_equal_p): Check type equality. * tree-ssa-pre.c (pre_expr_eq): Ditto (get_constant_for_value_id): Take a type as an argument. (fully_constant_expression): Pass in type. (find_or_generate_expression): Short circuit constant case. (create_expression_by_pieces): Remove special casing of pointer_plus. (do_regular_insertion): Short circuit constant case. (do_partial_partial_insertion): Ditto. ........ r137862 | gccadmin | 2008-07-15 17:16:37 -0700 (Tue, 15 Jul 2008) | 1 line Daily bump. ........ r137868 | bkoz | 2008-07-16 00:01:23 -0700 (Wed, 16 Jul 2008) | 13 lines 2008-07-15 Benjamin Kosnik <bkoz@redhat.com> * doc/doxygen/user.cfg.in: Add complex, ratio, intializer_list. (PREDEFINED): Add _GLIBCXX_USE_C99_STDINT_TR1. * doc/doxygen/doxygroups.cc: Add std::chrono. * include/bits/unique_ptr.h (default_delete, unique_ptr): Add markup. * libsupc++/initializer_list (initializer_list): Same. * include/std/ratio: Same. * include/std/chrono: Same. * include/std/complex: Disambiguate file markup. ........ r137872 | paolo | 2008-07-16 02:04:16 -0700 (Wed, 16 Jul 2008) | 4 lines 2008-07-16 Paolo Carlini <paolo.carlini@oracle.com> * include/bits/unique_ptr.h: Remove stray character. ........ r137873 | espindola | 2008-07-16 02:14:27 -0700 (Wed, 16 Jul 2008) | 6 lines 2007-07-16 Rafael Avila de Espindola <espindola@google.com> * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and DECL_IN_SYSTEM_HEADER in sync. ........ r137874 | paolo | 2008-07-16 03:10:41 -0700 (Wed, 16 Jul 2008) | 9 lines 2008-07-16 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Adjust dg-error lines. * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise. * testsuite/20_util/duration/cons/1_neg.cc: Likewise. * include/tr1_impl/type_traits: Fix comment typo. ........ r137875 | jsm28 | 2008-07-16 03:45:57 -0700 (Wed, 16 Jul 2008) | 5 lines PR target/36827 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier. (m32c_legitimate_address_p): Handle "++rii" addresses created by m32c_legitimize_reload_address. ........ r137883 | kkojima | 2008-07-16 06:57:35 -0700 (Wed, 16 Jul 2008) | 4 lines * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned int. ........ r137884 | dje | 2008-07-16 08:33:30 -0700 (Wed, 16 Jul 2008) | 3 lines * config/rs6000/rs6000.c (processor_target_table): Add MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x. ........ r137886 | jakub | 2008-07-16 08:35:26 -0700 (Wed, 16 Jul 2008) | 3 lines * team.c (gomp_team_end): Free team immediately if it has just one thread. ........ r137888 | bwilson | 2008-07-16 08:36:43 -0700 (Wed, 16 Jul 2008) | 6 lines 2008-07-16 Anatoly Sokolov <aesok@post.ru> * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE, XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove. * config/xtensa/xtensa.c (xtensa_function_value): New function. (TARGET_FUNCTION_VALUE): Define. ........ r137889 | hainque | 2008-07-16 09:20:31 -0700 (Wed, 16 Jul 2008) | 4 lines * collect2.c (scan_prog_file, COFF version): Use CONST_CAST instead of bare conversion to cast const-ness away. ........ r137890 | dje | 2008-07-16 09:34:25 -0700 (Wed, 16 Jul 2008) | 3 lines * config/rs6000/rs6000.c (processor_target_table): Remove duplicate MASK_POWERPC64 for power4 in previous commit. ........ r137893 | ghazi | 2008-07-16 10:49:20 -0700 (Wed, 16 Jul 2008) | 23 lines * cfg.c (dump_reg_info): Avoid C++ keywords. * dwarf2asm.c (dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise. * except.c (gen_eh_region, add_action_record, output_ttype): Likewise. * expmed.c (expand_shift): Likewise. * global.c (find_reg): Likewise. * graph.c (draw_edge): Likewise. * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise. * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop, widen_clz, widen_bswap, expand_parity, expand_unop, emit_cmp_and_jump_insn_1): Likewise. * postreload.c (reload_cse_simplify_operands): Likewise. * ra.h (add_neighbor): Likewise. * reg-stack.c (remove_regno_note, change_stack): Likewise. * regclass.c (memory_move_secondary_cost, dump_regclass, regclass, record_reg_classes, copy_cost, record_address_regs, invalid_mode_change_p): Likewise. * regrename.c (regrename_optimize, scan_rtx_reg, dump_def_use_chain, find_oldest_value_reg, replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise. ........ r137894 | ghazi | 2008-07-16 10:52:19 -0700 (Wed, 16 Jul 2008) | 19 lines * recog.c (validate_change_1, validate_change, validate_unshare_change, validate_replace_rtx_1, struct funny_match, constrain_operands, peephole2_optimize): Avoid C++ keywords. * reload.c (push_secondary_reload, secondary_reload_class, scratch_reload_class, find_valid_class, find_reusable_reload, push_reload, find_dummy_reload, find_reloads_address_1, find_reloads_address_part, find_equiv_reg): Likewise. * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg, choose_reload_regs): Likewise. * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1): Likewise. * rtlhooks.c (gen_lowpart_if_possible): Likewise. * sched-ebb.c (add_deps_for_risky_insns): Likewise. * sched-rgn.c (concat_INSN_LIST): Likewise. * stor-layout.c (mode_for_size, mode_for_size_tree, smallest_mode_for_size): Likewise. ........ r137895 | ghazi | 2008-07-16 10:55:42 -0700 (Wed, 16 Jul 2008) | 15 lines * c-pch.c (get_ident): Avoid C++ keywords. * combine-stack-adj.c (single_set_for_csa): Likewise. * final.c (asm_insn_count, final_scan_insn, alter_subreg, output_asm_insn): Likewise. * reload.c (push_secondary_reload, find_reusable_reload, push_reload, combine_reloads, find_reloads, debug_reload_to_stream): Likewise. * reload.h (struct reload): Likewise. * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs, allocate_reload_reg, choose_reload_regs, emit_input_reload_insns, emit_output_reload_insns): Likewise. * targhooks.c (default_secondary_reload): Likewise. * varasm.c (section_entry_eq, object_block_entry_eq): Likewise. ........ r137896 | ghazi | 2008-07-16 11:19:55 -0700 (Wed, 16 Jul 2008) | 3 lines * recog.c (peephole2_optimize): Fix formatting. ........ r137903 | hubicka | 2008-07-16 14:38:15 -0700 (Wed, 16 Jul 2008) | 8 lines * cgraph.h (varpool_empty_needed_queue): Declare. * cgraphunit.c (output_in_order): Mark all variables as needed; empty the queue. * varpool.c (varpool_assemble_node): Update debug queue. (varpool_assemble_pending_decls): Don't do it here. (varpool_empty_needed_queue): New function. ........ r137904 | dodji | 2008-07-16 16:44:02 -0700 (Wed, 16 Jul 2008) | 9 lines 2008-07-16 Dodji Seketeli <dseketel@redhat.com> PR c++/13699 * gcc/cp/name-lookup.c (lookup_extern_c_fun_binding_in_all_ns): New function. (pushdecl_maybe_friend): Check if a redeclaration of extern C function complies with exception specification constraints. ........ r137907 | gccadmin | 2008-07-16 17:16:28 -0700 (Wed, 16 Jul 2008) | 1 line Daily bump. ........ r137909 | hjl | 2008-07-16 22:13:27 -0700 (Wed, 16 Jul 2008) | 6 lines 2008-07-17 H.J. Lu <hongjiu.lu@intel.com> PR testsuite/36443 * objc.dg/gnu-encoding/gnu-encoding.exp: Temporarily unset GCC_EXEC_PREFIX from environment when running $HOSTCC. ........ r137910 | burnus | 2008-07-16 22:54:42 -0700 (Wed, 16 Jul 2008) | 16 lines 2008-07-17 Tobias Burnus <burnus@net-b.de> PR fortran/36825 PR fortran/36824 * array.c (gfc_match_array_spec): Fix array-rank check. * resolve.c (resolve_fl_derived): Fix constentness check for the array dimensions. 2008-07-17 Tobias Burnus <burnus@net-b.de> PR fortran/36825 PR fortran/36824 * gfortran.dg/rank_2.f90: Add additional array-rank test. * gfortran.dg/array_4.f90: New. ........ r137912 | bonzini | 2008-07-17 01:58:15 -0700 (Thu, 17 Jul 2008) | 5 lines 2008-07-16 Roger Sayle <roger@eyesopen.com> Paolo Bonzini <bonzini@gnu.org> * scripts/jar.in: Fix portability problems with Solaris /bin/sh. ........ r137913 | bonzini | 2008-07-17 02:07:31 -0700 (Thu, 17 Jul 2008) | 14 lines gcc: 2008-07-17 Paolo Bonzini <bonzini@gnu.org> PR rtl-optimization/36753 * fwprop.c (use_killed_between): Don't shortcut single-definition global registers. gcc/testsuite: 2008-07-17 Paolo Bonzini <bonzini@gnu.org> PR rtl-optimization/36753 * gcc.target/i386/pr36753.c: New. ........ r137914 | paolo | 2008-07-17 02:11:11 -0700 (Thu, 17 Jul 2008) | 15 lines /cp 2008-07-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/36855 * semantics.c (trait_expr_value): Update __has_trivial_destructor semantics to the current WP (N2691). /testsuite 2008-07-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/36855 * g++.dg/ext/has_trivial_destructor.C: Rename to... * g++.dg/ext/has_trivial_destructor-1.C: ... this. * g++.dg/ext/has_trivial_destructor-2.C: New. ........ r137918 | doko | 2008-07-17 03:04:51 -0700 (Thu, 17 Jul 2008) | 5 lines 2008-07-17 Roman Zippel <zippel@linux-m68k.org> PR target/25343 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__. ........ r137921 | jamborm | 2008-07-17 06:23:32 -0700 (Thu, 17 Jul 2008) | 21 lines 2008-07-17 Martin Jambor <mjambor@suse.cz> * ipa-cp.c (ipcp_print_all_lattices): New variable info, check that nodes are relevant by examining the node->analyzed flag. (ipcp_init_stage): Check which nodes are relevant, assert that the relevant ones are also required. (ipcp_propagate_stage): Check on the side arrays are properly allocated. (ipcp_print_all_jump_functions): Make sure not to touch any node that is not analyzed or an edge that does not have a corresponding entry in the on-the-side vectors. (ipcp_function_scale_print): Likewise. (ipcp_update_callgraph): Check that the node is relevant. (ipcp_insert_stage): Check that the node is relevant. Check there is an info for every node and edge. * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant. (ipa_print_all_tree_maps): Likewise and a new variable info. (ipa_print_all_params_modified): Likewise. * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function. ........ r137922 | jules | 2008-07-17 07:03:50 -0700 (Thu, 17 Jul 2008) | 14 lines gcc/cp/ * decl2.c (determine_visibility): Allow target to override visibility of class data. gcc/ * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make no-op for targets which don't use DLLs. gcc/testsuite/ * g++.dg/ext/visibility/arm3.C: Add explanatory text. Skip on non-DLL targets. * g++.dg/ext/visibility/arm1.C: Skip on non-DLL targets. ........ r137923 | hainque | 2008-07-17 07:18:27 -0700 (Thu, 17 Jul 2008) | 13 lines ada/ * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG argument, to apply to references in addition to definitions. Prevent setting TREE_STATIC on externals. (gnat_pushdecl): Always clear DECL_CONTEXT on public externals. testsuite/ * gnat.dg/tree_static_def.ad[bs]: Support for ... * gnat.dg/tree_static_use.adb: New test. * gnat.dg/decl_ctx_def.ads: Support for ... * gnat.dg/decl_ctx_use.ad[bs]: New test. ........ r137924 | hainque | 2008-07-17 07:37:58 -0700 (Thu, 17 Jul 2008) | 5 lines * adaint.c (__MINGW32__ section): Include ctype.h and define a fallback ISALPHA if IN_RTS. (__gnat_is_absolute_path): Use ISALPHA instead of isalpha. ........ r137937 | gccadmin | 2008-07-17 17:16:37 -0700 (Thu, 17 Jul 2008) | 1 line Daily bump. ........ r137939 | doko | 2008-07-18 01:15:27 -0700 (Fri, 18 Jul 2008) | 15 lines boehm-gc/ 2008-07-18 Matthias Klose <doko@ubuntu.com> * configure.ac (AC_CONFIG_FILES): Add threads.mk. * threads.mk.in: New. * Makefile.in, configure: Regenerate. libobjc/ 2008-07-18 Matthias Klose <doko@ubuntu.com> * Makefile.in: Include ../boehm-gc/threads.mk. (OBJC_BOEHM_GC_LIBS): Define, (libobjc_gc$(libsuffix).la): Use it. ........ r137941 | doko | 2008-07-18 03:37:22 -0700 (Fri, 18 Jul 2008) | 2 lines - checkin threads.mk.in. ........ r137949 | burnus | 2008-07-18 06:17:49 -0700 (Fri, 18 Jul 2008) | 6 lines The new file gfortran.dg/array_4.f90 was missing from the commit 137910 2008-07-17 Tobias Burnus <burnus@net-b.de> PR fortran/36824 * gfortran.dg/array_4.f90: New. ........ r137950 | burnus | 2008-07-18 06:20:35 -0700 (Fri, 18 Jul 2008) | 5 lines 2008-07-18 Tobias Burnus <burnus@net-b.de> * gfortran.dg/parameter_array_init_4.f90: Silence pedantic warning. ........ r137954 | hjl | 2008-07-18 08:42:59 -0700 (Fri, 18 Jul 2008) | 14 lines gcc/ 2008-07-18 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/36858 * function.c (locate_and_pad_parm): Cap boundary earlier. testsuite/ 2008-07-18 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/36858 * gcc.target/i386/vararg-1.c: New. ........ r137955 | hjl | 2008-07-18 08:48:04 -0700 (Fri, 18 Jul 2008) | 16 lines gcc/ 2008-07-18 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/36859 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to PREFERRED_STACK_BOUNDARY. * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. testsuite/ 2008-07-18 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/36859 * gcc.target/i386/vararg-2.c: New. ........ r137956 | doko | 2008-07-18 09:30:04 -0700 (Fri, 18 Jul 2008) | 4 lines 2008-07-18 Matthias Klose <doko@ubuntu.com> * Makefile.in: Ignore missing ../boehm-gc/threads.mk. ........ r137958 | ghazi | 2008-07-18 10:16:25 -0700 (Fri, 18 Jul 2008) | 9 lines * objc-act.c (objc_start_class_interface, objc_start_category_interface, objc_start_class_implementation, objc_start_category_implementation, objc_build_struct, generate_static_references, build_private_template, lookup_category, objc_add_method, add_category, add_instance_variable, objc_is_public, conforms_to_protocol, start_class, continue_class, finish_class): Avoid C++ keywords. ........ r137959 | ghazi | 2008-07-18 10:19:03 -0700 (Fri, 18 Jul 2008) | 19 lines * cvt.c (convert_to_void): Avoid C++ keywords. * decl.c (walk_namespaces_r, wrapup_globals_for_namespace): Likewise. * friend.c (is_friend): Likewise. * init.c (perform_member_init): Likewise. * mangle.c (write_template_prefix, write_template_template_param): Likewise. * name-lookup.c (do_namespace_alias, do_using_directive, parse_using_directive, ambiguous_decl, arg_assoc): Likewise. * parser.c (cp_parser_template_id, cp_parser_namespace_definition, cp_parser_objc_typename, cp_parser_objc_method_keyword_params): Likewise. * pt.c (is_specialization_of_friend, lookup_template_class, push_tinst_level, instantiate_class_template, tsubst_copy_and_build): Likewise. * tree.c (add_stmt_to_compound): Likewise. * typeck.c (finish_class_member_access_expr): Likewise. ........ r137960 | ghazi | 2008-07-18 10:54:46 -0700 (Fri, 18 Jul 2008) | 4 lines * arith.c (eval_type_intrinsic0): Avoid C++ keywords. * gfortran.h (try, protected, operator, new): Likewise. ........ r137961 | paolo | 2008-07-18 11:40:53 -0700 (Fri, 18 Jul 2008) | 5 lines 2008-07-18 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/lib/libstdc++.exp (check_v3_target_c_std): Avoid unused variable warnings leading to spurious fails of the test. ........ r137962 | paolo | 2008-07-18 13:11:21 -0700 (Fri, 18 Jul 2008) | 7 lines 2008-07-16 Paolo Carlini <paolo.carlini@oracle.com> * include/debug/vector (insert(iterator, _Tp&&), push_back(_Tp&&)): Enable only when _Tp != bool. * testsuite/25_algorithms/heap/1.cc: Avoid unused variable warnings. ........ r137963 | paolo | 2008-07-18 13:11:50 -0700 (Fri, 18 Jul 2008) | 7 lines 2008-07-16 Paolo Carlini <paolo.carlini@oracle.com> * include/debug/vector (insert(iterator, _Tp&&), push_back(_Tp&&)): Enable only when _Tp != bool. * testsuite/25_algorithms/heap/1.cc: Avoid unused variable warnings. ........ r137965 | kvanhees | 2008-07-18 13:23:42 -0700 (Fri, 18 Jul 2008) | 37 lines gcc/ChangeLog: 2008-07-16 Kris Van Hees <kris.van.hees@oracle.com> * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__ and __CHAR32_TYPE__. * c-typeck.c (digest_init): Support char16_t and char32_t. (set_nonincremental_init_from_string): Idem. gcc/cp/ChangeLog: 2008-07-16 Kris Van Hees <kris.van.hees@oracle.com> * rtti.c (emit_support_tinfos): Add char16_type_node and char32_type_node. * typeck2.c (digest_init): Support char16_t and char32_t. gcc/testsuite/ChangeLog: 2008-07-16 Kris Van Hees <kris.van.hees@oracle.com> Tests for char16_t and char32_t support. * g++.dg/ext/utf-array.C: New * g++.dg/ext/utf-array-short-wchar.C: New * g++.dg/ext/utf-rtti.C: New * g++.dg/ext/utf-type.c: New * gcc.dg/utf-array.c: New * gcc.dg/utf-array-short-wchar.c: New * gcc.dg/utf-inc-init.c: New * gcc.dg/utf-type.c: New libstdc++-v3/ChangeLog: 2008-07-16 Kris Van Hees <kris.van.hees@oracle.com> Holger Hopp <holger.hopp@sap.com> * config/abi/pre/gnu.ver: Support char16_t and char32_t. * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.3 to known_versions. ........ r137966 | dodji | 2008-07-18 13:40:42 -0700 (Fri, 18 Jul 2008) | 7 lines 2008-07-18 Dodji Seketeli <dseketel@redhat.com> PR c++/36407 * call.c (convert_like_real): Don't take the error code path when a rvalue or base conversion has the bad_p field set. ........ r137967 | uros | 2008-07-18 14:01:59 -0700 (Fri, 18 Jul 2008) | 16 lines PR target/36786 * config/i386/i386.md (x86_64_shift_adj_1): Rename from x86_64_shift_adj. (x86_64_shift_adj_2): New expander. (x86_64_shift_adj_3): Ditto. * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3 to split TImode operands. (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands. (ix86_split_lshr): Ditto. testsuite/ChangeLog: PR target/36786 * gcc.target/i386/pr36786.c: New test. ........ r137968 | jsm28 | 2008-07-18 15:05:43 -0700 (Fri, 18 Jul 2008) | 3 lines * gcc.dg/fshort-wchar.c: Use -Wl,--no-wchar-size-warning on arm*-*-*eabi. ........ r137969 | paolo | 2008-07-18 15:37:34 -0700 (Fri, 18 Jul 2008) | 4 lines 2008-07-18 Paolo Carlini <paolo.carlini@oracle.com> Remove spurious blank line from ChangeLog. ........ r137970 | kvanhees | 2008-07-18 15:37:42 -0700 (Fri, 18 Jul 2008) | 8 lines 2008-07-18 Kris Van Hees <kris.van.hees@oracle.com> * g++.dg/ext/utf-array.C: Fix broken merge/checkin. * g++.dg/ext/utf-array-short-wchar.C: Idem * gcc.dg/utf-array.c: Idem * gcc.dg/utf-array-short-wchar.c: Idem ........ r137973 | gccadmin | 2008-07-18 17:16:39 -0700 (Fri, 18 Jul 2008) | 1 line Daily bump. ........ r137975 | hainque | 2008-07-18 23:41:30 -0700 (Fri, 18 Jul 2008) | 8 lines * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P argument, saying whether nested array are to be collapsed into a single array type DIE with multiple subscripts. (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO issues, centralize the nested array types collapsing control and disable the transformation for Ada. ........ r137976 | jsm28 | 2008-07-19 04:14:13 -0700 (Sat, 19 Jul 2008) | 15 lines PR target/36780 PR target/36827 * reload.c (find_reloads_subreg_address): Only reload address if reloaded == 0, not for reloaded != 1. Revert: 2008-07-16 Joseph Myers <joseph@codesourcery.com> * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier. (m32c_legitimate_address_p): Handle "++rii" addresses created by m32c_legitimize_reload_address. 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org> * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress. ........ r137980 | ghazi | 2008-07-19 09:19:27 -0700 (Sat, 19 Jul 2008) | 18 lines * gfortran.h (protected): Remove macro. * dump-parse-tree.c (show_attr): Avoid C++ keywords. * expr.c (gfc_check_pointer_assign): Likewise. * interface.c (compare_parameter_protected): Likewise. * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1, add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s, add_sym_5s): Likewise. * match.c (gfc_match_assignment, gfc_match_pointer_assignment): Likewise. * module.c (mio_symbol_attribute): Likewise. * primary.c (match_variable): Likewise. * resolve.c (resolve_equivalence): Likewise. * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr): Likewise. * trans-types.c (gfc_get_array_type_bounds): Likewise. ........ r137981 | ghazi | 2008-07-19 09:22:12 -0700 (Sat, 19 Jul 2008) | 30 lines * gfortran.h (operator): Remove macro. (gfc_namespace, gfc_expr): Avoid C++ keywords. * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3): Likewise. * decl.c (access_attr_decl): Likewise. * dependency.c (gfc_dep_compare_expr): Likewise. * dump-parse-tree.c (show_expr, show_uop, show_namespace): Likewise. * expr.c (gfc_copy_expr, gfc_type_convert_binary, simplify_intrinsic_op, check_intrinsic_op): Likewise. * interface.c (fold_unary, gfc_match_generic_spec, gfc_match_interface, gfc_match_end_interface, check_operator_interface, check_uop_interfaces, gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign, gfc_add_interface, gfc_current_interface_head, gfc_set_current_interface_head): Likewise. * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul): Likewise. * matchexp.c (gfc_get_parentheses, build_node): Likewise. * module.c (gfc_use_rename, gfc_match_use, find_use_name_n, number_use_names, mio_expr, load_operator_interfaces, read_module, write_operator, write_module): Likewise. * openmp.c (resolve_omp_atomic): Likewise. * resolve.c (resolve_operator, gfc_resolve_character_operator, gfc_resolve_uops): Likewise. * symbol.c (free_uop_tree, gfc_free_namespace): Likewise. * trans-expr.c (gfc_conv_expr_op): Likewise. * trans-openmp.c (gfc_trans_omp_atomic): Likewise. ........ r137982 | ghazi | 2008-07-19 09:23:52 -0700 (Sat, 19 Jul 2008) | 28 lines * gfortran.h (new): Remove macro. * array.c (gfc_append_constructor, match_array_list, gfc_match_array_constructor): Likewise. * bbt.c (insert, gfc_insert_bbt): Likewise. * decl.c (var_element, top_var_list, top_val_list, gfc_match_data, get_proc_name): Likewise. * expr.c (gfc_copy_actual_arglist): Likewise. * interface.c (compare_actual_formal, check_new_interface, gfc_add_interface): Likewise. * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype): Likewise. * io.c (match_io_iterator, match_io_list): Likewise. * match.c (match_forall_header): Likewise. * matchexp.c (build_node): Likewise. * module.c (gfc_match_use): Likewise. * scanner.c (load_file): Likewise. * st.c (gfc_append_code): Likewise. * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols, gfc_commit_symbols): Likewise. * trans-common.c (build_field): Likewise. * trans-decl.c (gfc_finish_var_decl): Likewise. * trans-expr.c (gfc_free_interface_mapping, gfc_get_interface_mapping_charlen, gfc_add_interface_mapping, gfc_finish_interface_mapping, gfc_apply_interface_mapping_to_expr): Likewise. * trans.h (gfc_interface_sym_mapping): Likewise. ........ r137983 | burnus | 2008-07-19 10:20:26 -0700 (Sat, 19 Jul 2008) | 12 lines 2008-07-19 Tobias Burnus <burnus@net-b.de> * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank checks for cshift's shift and eoshift's shift and boundary args. (gfc_check_unpack): Add rank and shape tests for unpack. 2008-07-19 Tobias Burnus <burnus@net-b.de> * gfortran.dg/intrinsic_argument_conformance_2.f90: New. * gfortran.dg/zero_sized_1.f90: Fix conformance bugs. ........ r137984 | hainque | 2008-07-19 10:49:18 -0700 (Sat, 19 Jul 2008) | 14 lines * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in bits, a C conformant malloc implementation has to provide. * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD. ada/ * targtyps.c (get_target_default_allocator_alignment): Use it. testsuite/ * gcc.dg/mallign.c: New test. * gnat.dg/allocator_maxalign1.adb: New test. * gnat.dg/test_allocator_maxalign2.adb: Main caller for ... * gnat.dg/allocator_maxalign2.ad[bs]: New test. ........ r137985 | burnus | 2008-07-19 11:27:00 -0700 (Sat, 19 Jul 2008) | 8 lines 2008-07-19 Tobias Burnus <burnus@net-b.de> PR fortran/36342 * scanner.c (load_file): Add argument to destinguish between true filename and displayed filename. (include_line,gfc_new_file): Adapt accordingly. ........ r137986 | burnus | 2008-07-19 11:29:18 -0700 (Sat, 19 Jul 2008) | 13 lines 2008-07-19 Tobias Burnus <burnus@net-b.de> PR fortran/36795 * matchexp.c (gfc_get_parentheses): Remove obsolete workaround, which caused the generation of wrong code. 2008-07-19 Tobias Burnus <burnus@net-b.de> PR fortran/36795 * char_expr_1.f90: New. * char_expr_2.f90: New. ........ r137989 | jakub | 2008-07-19 12:22:51 -0700 (Sat, 19 Jul 2008) | 6 lines PR middle-end/36877 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the return value of the builtin is ignored. * gcc.dg/gomp/atomic-11.c: New test. ........ r137990 | paolo | 2008-07-19 12:58:52 -0700 (Sat, 19 Jul 2008) | 13 lines 2008-07-19 Paolo Carlini <paolo.carlini@oracle.com> * include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp (assert_node_consistent): Avoid ambiguous else warning. * include/ext/pb_ds/detail/debug_map_base.hpp: Include <iostream>. * include/bits/c++config: In debug-mode (and parallel-mode) set _GLIBCXX_EXTERN_TEMPLATE to -1, not 0, thus disabling extern templates only for basic_string (per libstdc++/21674). * include/bits/basic_string.tcc: Use extern templates when _GLIBCXX_EXTERN_TEMPLATE > 0. ........ r137991 | andreast | 2008-07-19 13:02:29 -0700 (Sat, 19 Jul 2008) | 9 lines 2008-07-19 Richard Guenther <rguenther@suse.de> PR bootstrap/36864 * tree-ssa-sccvn.h (get_constant_value_id): Declare. * tree-ssa-sccvn.c (get_constant_value_id): New function. * tree-ssa-pre.c (get_expr_value_id): For newly created constant value-ids make sure to add the expression to its expression-set. ........ r137995 | gccadmin | 2008-07-19 17:16:33 -0700 (Sat, 19 Jul 2008) | 1 line Daily bump. ........ r138005 | dberlin | 2008-07-19 22:21:48 -0700 (Sat, 19 Jul 2008) | 12 lines 2008-07-20 Daniel Berlin <dberlin@dberlin.org> * gcc.dg/tree-ssa/ssa-fre-7.c: XFAIL. * gcc.dg/tree-ssa/ssa-fre-8.c: Ditto. * gcc.dg/tree-ssa/ssa-fre-9.c: Ditto. * gcc.dg/tree-ssa/ssa-fre-13.c: Ditto. * gcc.dg/tree-ssa/ssa-fre-14.c: Ditto. * gcc.dg/tree-ssa/ssa-fre-17.c: Ditto. * gcc.dg/tree-ssa/ssa-pre-15.c: Ditto. * gcc.dg/tree-ssa/loadpre1.c: PASS. ........ r138006 | hubicka | 2008-07-20 02:50:30 -0700 (Sun, 20 Jul 2008) | 5 lines * builtins.c (expand_builtin_int_roundingfn, expand_builtin_int_roundingfn_2): Do not take subtarget argument; it is not useful. ........ r138007 | hp | 2008-07-20 07:12:04 -0700 (Sun, 20 Jul 2008) | 2 lines * gcc.dg/tree-ssa/data-dep-1.c: XFAIL. ........ r138009 | hubicka | 2008-07-20 07:57:17 -0700 (Sun, 20 Jul 2008) | 17 lines * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time * doc/invoke.texi (--combine): Likewise. (-finline-functions-called-once): Update levels when enabled. (-funit-at-a-time): Document new behaviour. (-ftoplevel-reorder): Document that it is enabled -O0 and imply -fno-section-anchors when disabled explicitly. (inline params): They are not ignored now. (precompiled headers): Remove unit-at-a-time as being incompatible. * opts.c (decode_options): Handle unit-at-a-time as alias; imply -fno-section-anchors when toplevel reorder is disabled explicitly. * common.opt (ftoplevel-reorder): Set default value to 2. (funit-at-a-time): Set default value to 1. * config/rs6000/rs6000.c (optimization_options): Set section anchors to 2. ........ r138010 | hubicka | 2008-07-20 09:06:51 -0700 (Sun, 20 Jul 2008) | 16 lines * cgraph.c (cgraph_add_new_function): Do early local passes. * tree-nrv.c (gate_pass_return_slot): New gate. (pass_nrv): Add the gate. * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New functions. (coalesce_ssa_name): Coalesce SSA names. * tree-ssa-live.c (remove_unused_locals): Be more conservative when not optimizing so unused user vars remains visible. * common.opt (flag_tree_ter): Always enable by default. * tree-ssa-ter.c: Include flags.h (is_replaceable_p): Check that locations match; when aliasing is missing be conservative about loads. * tree-optimize.c (gate_init_datastructures): Remove. (pass_init_datastructures): New. * passes.c: Reorder passes so we always go into SSA. ........ r138012 | pinskia | 2008-07-20 10:51:48 -0700 (Sun, 20 Jul 2008) | 13 lines 2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com> PR tree-opt/36879 * tree-switch-conversion.c (build_one_array): Call varpool_mark_needed_node and varpool_finalize_decl instead of assemble_variable. 2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com> PR tree-opt/36879 * gcc.c-torture/execute/20080719-1.c: New testcase. ........ r138013 | charlet | 2008-07-20 13:31:59 -0700 (Sun, 20 Jul 2008) | 2 lines * gnathtml.pl: New file. ........ r138016 | gccadmin | 2008-07-20 17:16:30 -0700 (Sun, 20 Jul 2008) | 1 line Daily bump. ........ r138018 | hp | 2008-07-20 18:15:18 -0700 (Sun, 20 Jul 2008) | 3 lines PR middle-end/36509 * gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c: XFAIL. ........ r138019 | hp | 2008-07-20 18:37:55 -0700 (Sun, 20 Jul 2008) | 4 lines PR rtl-optimization/33642 * gcc.c-torture/compile/pr11832.c: Skip for CRIS. * gcc.c-torture/compile/pr33009.c: Likewise. ........ r138020 | hp | 2008-07-20 19:37:36 -0700 (Sun, 20 Jul 2008) | 3 lines PR middle-end/36143 * g++.dg/tree-ssa/pr19637.C: XFAIL. ........ r138021 | jvdelisle | 2008-07-20 21:44:10 -0700 (Sun, 20 Jul 2008) | 6 lines 2008-07-20 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/36857 * io/write_float.def: Comment out locale dependent code and fix general comments. ........ r138022 | krebbel | 2008-07-20 23:54:34 -0700 (Sun, 20 Jul 2008) | 12 lines 2008-07-21 Andreas Krebbel <krebbel1@de.ibm.com> PR target/36822 * recog.c (asm_operand_ok): Change the order of the extra memory constraint checks. 2008-07-17 Andreas Krebbel <krebbel1@de.ibm.com> PR target/36822 * gcc.target/s390/pr36822.c: New testcase. ........ r138024 | paolo | 2008-07-21 02:08:41 -0700 (Mon, 21 Jul 2008) | 19 lines /cp 2008-07-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/36870 * semantics.c (classtype_has_nothrow_assign_or_copy_p): Use TYPE_NOTHROW_P, not TREE_NOTHROW. (trait_expr_value): Likewise. /testsuite 2008-07-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/36870 * g++.dg/ext/has_nothrow_assign_odr.C: New. * g++.dg/ext/has_nothrow_copy_odr.C: Likewise. * g++.dg/ext/has_nothrow_constructor_odr.C: Likewise. * g++.dg/ext/has_nothrow_assign.C: Adjust. * g++.dg/ext/has_nothrow_copy.C: Likewise. * g++.dg/ext/has_nothrow_constructor.C: Likewise. ........ r138026 | manu | 2008-07-21 02:33:38 -0700 (Mon, 21 Jul 2008) | 21 lines 2008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * include/line-map.h (linenum_type): New typedef. (struct line_map): Use it. (SOURCE_LINE): Second arguments is a LOCATION not a LINE. (SOURCE_COLUMN): Likewise. * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store source_location values in a variable of type linenum_type. * directives.c (struct if_stack): Use linenum_type. (strtoul_for_line): Rename as strtolinenum. (do_line): Use linenum_type. (do_linemarker): Use linenum_type and strtolinenum. (_cpp_do_file_change): Use linenum_t. * line-map.c (linemap_add): Likewise. (linemap_line_start): Likewise. * traditional.c (struct fun_macro): 'line' is a source_location. * errors.c (print_location): Use linenum_type. * directives-only.c (_cpp_preprocess_dir_only): Likewise. * internal.h (CPP_INCREMENT_LINE): Likewise. * lex.c (_cpp_skip_block_comment): Use source_location. ........ r138027 | tkoenig | 2008-07-21 03:05:32 -0700 (Mon, 21 Jul 2008) | 31 lines 2008-07-21 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/36773 * intrinsics/cshift0.c (cshift0): Return early if size of array is zero. * intrinsics/eoshift0.c (eoshift0): Return early if size of return array is zero. * intrinsics/eoshift2.c (eoshift2): Likewise. * m4/eoshift1.m4 (eoshift1): Return early if size of array is zero. * m4/eoshift3.m4 (eoshift3): Likewise. * m4/eoshift2.m4 (eoshift2): Return early if size of return array is zero. * m4/eoshift4.m4 (eoshift2): Return early if size of return array is zero. * generated/cshift1_16.c: Regenerated. * generated/cshift1_4.c: Regenerated. * generated/cshift1_8.c: Regenerated. * generated/eoshift1_16.c: Regenerated. * generated/eoshift1_4.c: Regenerated. * generated/eoshift1_8.c: Regenerated. * generated/eoshift3_16.c: Regenerated. * generated/eoshift3_4.c: Regenerated. * generated/eoshift3_8.c: Regenerated. 2008-07-21 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/36773 * gfortran.dg/zero_sized_5.f90: New test case. ........ r138031 | espindola | 2008-07-21 07:29:27 -0700 (Mon, 21 Jul 2008) | 46 lines 2007-07-21 Rafael Avila de Espindola <espindola@google.com> * Makefile.in: Replace toplev.h with TOPLEV_H. * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER. * c-lex.c (fe_file_change): Don't set in_system_header. * c-parser.c (c_token): Remove in_system_header. (c_lex_one_token): Don't set in_system_header. (c_parser_set_source_position_from_token): Don't set in_system_header. * diagnostic.c (diagnostic_report_diagnostic): Use location from diagnostic_info. (warning_at): New. * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument. * flags.h (in_system_header): Remove. * function.c (saved_in_system_header): Remove. (push_cfun): Don't set in_system_header. (pop_cfun): Don't set in_system_header. (push_struct_function): Don't set in_system_header. * input.h (expanded_location): Add sysp. (in_system_header_at): New. (in_system_header): New. * toplev.c (in_system_header): Remove. * toplev.h: Include input.h (warning_at): New. * tree-cfg.c (execute_warn_function_return): Call warning_at. * tree-ssa.c (warn_uninit): Call warning_at. (warn_uninitialized_var): Update calls to warn_uninit. (warn_uninitialized_phi): Update calls to warn_uninit. * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER. (expand_location): Initialize xloc.sysp. * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at. (tree_decl_with_vis): Remove in_system_header_flag. 2007-07-21 Rafael Avila de Espindola <espindola@google.com> * parser.c (cp_token): Remove in_system_header. (eof_token): Remove in_system_header. (cp_lexer_get_preprocessor_token): Don't set in_system_header. (cp_lexer_set_source_position_from_token): Don't set in_system_header. (cp_parser_member_declaration): Use in_system_header_at. * pt.c (lookup_template_class): Don't set DECL_IN_SYSTEM_HEADER. (pop_tinst_level): Don't set in_system_header. (instantiate_class_template): Don't set in_system_header. (instantiate_decl): Don't set in_system_header. (instantiate_pending_templates): Don't set in_system_header. ........ r138032 | espindola | 2008-07-21 07:45:07 -0700 (Mon, 21 Jul 2008) | 2 lines Fix the year on the ChangeLog. ........ r138034 | paolo | 2008-07-21 09:18:38 -0700 (Mon, 21 Jul 2008) | 22 lines /cp 2008-07-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/36871 PR c++/36872 * semantics.c (classtype_has_nothrow_assign_or_copy_p): Only check copy constructors and copy assignment operators proper. /testsuite 2008-07-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/36871 PR c++/36872 * g++.dg/ext/has_nothrow_copy.C: Rename to... * g++.dg/ext/has_nothrow_copy-1.C: ... this. * g++.dg/ext/has_nothrow_copy-2.C: New. * g++.dg/ext/has_nothrow_copy-3.C: Likewise. * g++.dg/ext/has_nothrow_copy-4.C: Likewise. * g++.dg/ext/has_nothrow_copy-5.C: Likewise. * g++.dg/ext/has_nothrow_copy-6.C: Likewise. * g++.dg/ext/has_nothrow_copy-7.C: Likewise. ........ r138036 | uweigand | 2008-07-21 10:15:22 -0700 (Mon, 21 Jul 2008) | 9 lines * config/spu/spu.md ("div<mode>3"): Convert into expander, move original insn and splitter contents into ... ("*div<mode>3_fast"): ... this new pattern. Enable only if flag_unsafe_math_optimizations. Add dummy scratch register. ("*div<mode>3_adjusted"): New insn and splitter. Enable only if !flag_unsafe_math_optimizations. Returns number with next highest magnitude if this is still less or equal to the true quotient in magnitude. ........ r138038 | dj | 2008-07-21 10:41:13 -0700 (Mon, 21 Jul 2008) | 3 lines * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New. (TARGET_HARD_REGNO_SCRATCH_OK): Define. ........ r138040 | rwild | 2008-07-21 12:17:08 -0700 (Mon, 21 Jul 2008) | 31 lines gcc/testsuite/ * gfortran.dg/fmt_g0_3.f08: Fix typo in expected error message. gcc/fortran/ * expr.c (gfc_check_pointer_assign): Fix typo in string. * io.c (check_format): Fix typo in string. Fix comment typos. * parse.c (gfc_global_used): Likewise. * resolve.c (resolve_allocate_expr): Likewise. * symbol.c (gfc_set_default_type): Likewise. * arith.c: Fix typos in comments. * array.c: Likewise. * data.c: Likewise. * decl.c: Likewise. * dependency.c: Likewise. * f95-lang.c: Likewise. * gfortran.h: Likewise. * matchexp.c: Likewise. * module.c: Likewise. * primary.c: Likewise. * scanner.c: Likewise. * trans-array.c: Likewise. * trans-common.c: Likewise. * trans-decl.c: Likewise. * trans-expr.c: Likewise. * trans-intrinsic.c: Likewise. * trans-types.c: Likewise. * trans.c: Likewise. * trans.h: Likewise. ........ r138041 | mmitchel | 2008-07-21 12:21:45 -0700 (Mon, 21 Jul 2008) | 3 lines * config/os/gnu-linux/arm-eabi-extra.ver: New file. * configure.host: Use it for arm*-*-linux-*eabi. ........ r138042 | rwild | 2008-07-21 12:29:07 -0700 (Mon, 21 Jul 2008) | 19 lines gcc/objc/ * objc-act.c: Fix comment typos. gcc/cp/ * call.c: Fix comment typos. * class.c: Likewise. * cp-tree.h: Likewise. * cxx-pretty-print.c: Likewise. * decl.c: Likewise. * init.c: Likewise. * name-lookup.c: Likewise. * operators.def: Likewise. * parser.c: Likewise. * pt.c: Likewise. * tree.c: Likewise. * typeck.c: Likewise. ........ r138043 | jason | 2008-07-21 12:40:39 -0700 (Mon, 21 Jul 2008) | 36 lines Add initializer_list support as per N2679. * include/debug/unordered_map: Add initializer_list support. * include/debug/safe_association.h: Likewise. * include/debug/unordered_set: Likewise. * include/debug/vector: Likewise. * include/debug/deque: Likewise. * include/debug/map.h: Likewise. * include/debug/set.h: Likewise. * include/debug/string: Likewise. * include/debug/list: Likewise. * include/debug/multimap.h: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/regex: Likewise. * include/std/valarray: Likewise. * include/std/unordered_map: Likewise. * include/std/unordered_set: Likewise. * include/bits/stl_list.h: Likewise. * include/bits/stl_map.h: Likewise. * include/bits/stl_set.h: Likewise. * include/bits/basic_string.h: Likewise. * include/bits/basic_string.tcc: Likewise. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_vector.h: Likewise. * include/bits/stl_deque.h: Likewise. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_bvector.h: Likewise. * include/ext/vstring.h: Likewise. * include/ext/rc_string_base.h: Likewise. * include/ext/sso_string_base.h: Likewise. * src/Makefile.am (w?string-inst): Build with -std=gnu++0x. * src/Makefile.in: Likewise. * config/abi/pre/gnu.ver: Add new w?string exports. ... ........ r138047 | gccadmin | 2008-07-21 17:16:39 -0700 (Mon, 21 Jul 2008) | 1 line Daily bump. ........ r138049 | manu | 2008-07-22 02:45:58 -0700 (Tue, 22 Jul 2008) | 11 lines 2008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 28079 libcpp/ * directives.c (strtolinenum): Handle overflow. (do_line): Give a warning if line number overflowed. (do_linemarker): Update call to strtolinenum. gcc/testsuite/ * gcc.dg/cpp/line6.c: New. ........ r138050 | tkoenig | 2008-07-22 03:27:10 -0700 (Tue, 22 Jul 2008) | 7 lines 2008-07-22 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/36890 * io/file_pos.c: Declare READ_CHUNK as signed to avoid signed/unsigned comparison warning in formatted_backspace. ........ r138057 | espindola | 2008-07-22 06:29:31 -0700 (Tue, 22 Jul 2008) | 6 lines 2008-07-22 Rafael Avila de Espindola <espindola@google.com> * c-typeck.c (build_external_ref): Don't call assemble_external. * final.c (output_operand): Call assemble_external. ........ r138058 | paolo | 2008-07-22 06:52:14 -0700 (Tue, 22 Jul 2008) | 12 lines 2008-07-22 Paolo Carlini <paolo.carlini@oracle.com> * include/ext/sso_string_base.h (__sso_string_base<>::__sso_string_base(std::initializer_list<_CharT>, const _Alloc&)): Remove. * include/ext/rc_string_base.h (__rc_string_base<>::__rc_string_base(std::initializer_list<_CharT>, const _Alloc&)): Likewise. * include/ext/vstring.h (__versa_string<>::__versa_string(std::initializer_list<_CharT>, const _Alloc&)): Adjust. ........ r138063 | domob | 2008-07-22 10:05:55 -0700 (Tue, 22 Jul 2008) | 30 lines 2008-07-22 Daniel Kraft <d@domob.eu> PR fortran/29835 * io.c (error_element), (format_locus): New static globals. (unexpected_element): Spelled out this message fully. (next_char): Keep track of locus when not MODE_STRING. (next_char_not_space): Remember last parsed element in error_element. (format_lex): Fix two indentation errors. (check_format): Use format_locus and possibly error_element for a slightly better error message on invalid format. (check_format_string): Set format_locus to start of the string expression used as format. 2008-07-22 Daniel Kraft <d@domob.eu> PR fortran/29835 * io/format.c (struct format_data): New member error_element. (unexpected_element): Added '%c' to message. (next_char): Keep track of last parsed character in fmt->error_element. (format_error): If the message is unexpected_element, output the offending character, too. 2008-07-22 Daniel Kraft <d@domob.eu> PR fortran/29835 * gfortran.dg/fmt_error_3.f90: New test. * gfortran.dg/fmt_error_4.f90: New test. * gfortran.dg/fmt_error_5.f90: New test. ........ r138064 | uweigand | 2008-07-22 10:21:12 -0700 (Tue, 22 Jul 2008) | 5 lines * lib/target-supports.exp (check_effective_target_spu_auto_overlay): New procedure. * lib/compat.exp (compat-execute): Use it to test whether toolchain supports automatic overlay generation for the SPU. ........ r138069 | gccadmin | 2008-07-22 17:16:34 -0700 (Tue, 22 Jul 2008) | 1 line Daily bump. ........ r138072 | jvdelisle | 2008-07-22 21:29:15 -0700 (Tue, 22 Jul 2008) | 6 lines 2008-07-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/36852 * io/list_read.c: If variable rank is zero, do not adjust the found namelist object pointer. ........ r138073 | jvdelisle | 2008-07-22 21:36:54 -0700 (Tue, 22 Jul 2008) | 5 lines 2008-07-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/36852 * gfortran.dg/namelist_52.f90: New test. ........ r138075 | meissner | 2008-07-23 03:28:06 -0700 (Wed, 23 Jul 2008) | 1 line Add ability to set target options (ix86 only) and optimization options on a function specific basis ........ r138078 | meissner | 2008-07-23 04:06:42 -0700 (Wed, 23 Jul 2008) | 1 line undo 138077 ........ r138082 | meissner | 2008-07-23 04:18:03 -0700 (Wed, 23 Jul 2008) | 1 line Add missing ChangeLog from 138075 ........ r138087 | paolo | 2008-07-23 07:49:00 -0700 (Wed, 23 Jul 2008) | 13 lines 2008-07-23 Chris Fairles <chris.fairles@gmail.com> * acinclude.m4 ([GLIBCXX_CHECK_CLOCK_GETTIME]): Define GLIBCXX_LIBS. Holds the lib that defines clock_gettime (-lrt or -lposix4). * src/Makefile.am: Use it. * configure: Regenerate. * configure.in: Likewise. * Makefile.in: Likewise. * src/Makefile.in: Likewise. * libsup++/Makefile.in: Likewise. * po/Makefile.in: Likewise. * doc/Makefile.in: Likewise. ........ r138089 | manu | 2008-07-23 08:57:49 -0700 (Wed, 23 Jul 2008) | 35 lines 2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 35058 * diagnostic.c (pedwarn): Add opt parameter. (pedwarn0): New. * c-tree.h (pedwarn_init): Add opt parameter. (pedwarn_c90): Likewise. (pedwarn_c99): Likewise. * c-errors.c (pedwarn_c99): Likewise. (pedwarn_c90): Likewise. * toplev.h (pedwarn): Update declaration. (pedwarn0): Declare. * c-lex.c: All calls to pedwarn changed. * builtins.c: All calls to pedwarn changed. * toplev.c: All calls to pedwarn changed. * c-decl.c: All calls to pedwarn changed. * c-typeck.c: All calls to pedwarn changed. * c-common.c: All calls to pedwarn changed. * c-parser.c: All calls to pedwarn changed. cp/ * typeck.c: All calls to pedwarn changed. * decl.c: All calls to pedwarn changed. * call.c: All calls to pedwarn changed. * error.c: All calls to pedwarn changed. * typeck2.c: All calls to pedwarn changed. * pt.c: All calls to pedwarn changed. * name-lookup.c: All calls to pedwarn changed. * parser.c: All calls to pedwarn changed. fortran/ * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed. testsuite/ * gcc.dg/Wdeclaration-after-statement-3.c: New. * gcc/testsuite/gcc.dg/Wpointer-arith.c: New. ........ r138091 | meissner | 2008-07-23 12:03:40 -0700 (Wed, 23 Jul 2008) | 1 line Fix PR 36907, breakage in building libobj with function specific changes ........ r138092 | jamborm | 2008-07-23 12:45:45 -0700 (Wed, 23 Jul 2008) | 129 lines 2008-07-23 Martin Jambor <mjambor@suse.cz> * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed rather than for DECL_SAVED_TREE. * ipa-prop.c: Include diagnostic.h. (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs thoroughly. (ipa_detect_param_modifications): Function rewritten from scratch. (ipa_compute_jump_functions): Changed accesses to modification flags. (ipa_free_node_params_substructures): Update flags destruction. (ipa_node_duplication_hook): Update flags duplication. (ipa_print_all_params_modified): Updated flag access. * ipa-prop.h (struct ipa_param_flags): New structure. (struct ipa_node_params): New field modification_analysis_done, modified_flags changed into param_flags. (ipa_is_ith_param_modified): Changed to use new flags. * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies. * ipa-prop.c (ipa_print_all_jump_functions): Moved here from ipa-cp.c and split into two functions. (ipa_print_node_jump_functions): New function. (compute_scalar_jump_functions): New function. (type_like_member_ptr_p): New function. (compute_pass_through_member_ptrs): New function. (fill_member_ptr_cst_jump_function): New function. (determine_cst_member_ptr): New function. (compute_cst_member_ptr_arguments): New function. (ipa_compute_jump_functions): Complete rewrite. * ipa-prop.h (enum jump_func_type): Make explicit that we depend on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR. (struct ipa_member_ptr_cst): New structure. (union jump_func_value): New field member_cst. * ipa-cp.c (ipcp_lat_is_insertable): New function. (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled jump function types. (ipcp_print_all_lattices): Slight fprintf rearrangement. (ipcp_print_all_structures): Call ipa_print_all_jump_functions instead of ipcp_print_all_jump_functions. (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps only for replacable scalars. * doc/invoke.texi (Optimize options): Add description of -findirect-inlining. * common.opt (flag_indirect_inlining): New flag. * opts.c (decode_options): Set flag_indirect_inlining when optimize >= 3. * ipa-inline.c: Include ipa-prop.h. (inline_indirect_intraprocedural_analysis): New function. (inline_generate_summary): Allocate parameter and argument info structures, call inline_indirect_intraprocedural_analysis on each node when doing indirect inlining and deallocate indirect inlining data structures in the end. * ipa-prop.c (ipa_create_param_decls_array): Return if already done. (free_all_ipa_structures_after_iinln): New function. (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be done. * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies. * cgraphbuild.c (compute_call_stmt_bb_frequency): New function. (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead of computing the frequency separately. (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead of computing the frequency separately. * ipa-cp.c (ipcp_print_all_structures): Replace a call to ipa_print_all_param_modified with a call to ipa_print_all_param_flags. * ipa-prop.c (ipa_get_member_ptr_load_param): New function. (ipa_get_stmt_member_ptr_load_param): New function. (ipa_is_ssa_with_stmt_def): New function. (ipa_note_param_call): New function. (ipa_analyze_call_uses): New function. (ipa_analyze_stmt_uses): New function. (ipa_analyze_params_uses): New function. (ipa_free_node_params_substructures): Also free the param_calls linked list. (ipa_node_duplication_hook): Also duplicate the param_calls linked list. (ipa_print_node_param_flags): New function. (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags. (ipa_print_all_param_flags): Calls ipa_print_node_param_flags. * ipa-prop.h (struct ipa_param_flags): New field called. (struct ipa_param_call_note): New structure. (struct ipa_node_params): New fields param_calls and uses_analysis_done. (ipa_is_ith_param_called): New function. * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call ipa_analyze_params_uses and dump parameter flags. * ipa-inline.c (cgraph_decide_recursive_inlining): Call ipa_propagate_indirect_call_infos if performing indirect inlining, pass a new parameter new_edges to it. (add_new_edges_to_heap): New fucntion. (cgraph_decide_inlining_of_small_functions): New vector new_indirect_edges for newly found indirect edges , call ipa_propagate_indirect_call_infos after inlining. (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after inlining if performing indirect inlining. Call free_all_ipa_structures_after_iinln when doing so too. (inline_generate_summary): Do not call free_all_ipa_structures_after_iinln here. * ipa-prop.c (update_jump_functions_after_inlining): New function. (print_edge_addition_message): New function. (update_call_notes_after_inlining): New function. (propagate_info_to_inlined_callees): New function. (ipa_propagate_indirect_call_infos): New function. * ipa-prop.h: Include cgraph.h (struct ipa_param_call_note): Fields reordered, new field processed. * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new flag indirect_call. * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have rediscovered call statements. * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero. (dump_cgraph_node): Dump also the indirect_call flag. (cgraph_clone_edge): Copy also the indirect_call flag. * tree-inline.c (copy_bb): Do not check for fndecls from call expressions, check for edge availability when moving clones. (get_indirect_callee_fndecl): New function. (expand_call_inline): If callee declaration is not apprent from the statement, try calling get_indirect_callee_fndecl. Do not issue warnings or call sorry when not inlinings an indirect edge. * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies. * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a bit more frandly to matching. * testsuite/g++.dg/ipa/iinline-1.C: New testcase. * testsuite/gcc.dg/ipa/iinline-1.c: New testcase. * testsuite/gcc.dg/ipa/modif-1.c: New testcase. ........ r138096 | paolo | 2008-07-23 15:17:31 -0700 (Wed, 23 Jul 2008) | 9 lines 2008-07-23 Chris Fairles <chris.fairles@gmail.com> * include/std/condition_variable: Update to N2691 WD. * include/std/mutex: Likewise. * testsuite/30_threads/mutex/cons/assign_neg.cc: Adjust line numbers. * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise. * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise. * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise. ........ r138097 | aaronwl | 2008-07-23 15:50:42 -0700 (Wed, 23 Jul 2008) | 6 lines 2008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com> * configure: Regenerate. * configure.ac: Require texinfo 4.7. * doc/install.texi: Document texinfo 4.7 requirement. ........ r138100 | gccadmin | 2008-07-23 17:16:34 -0700 (Wed, 23 Jul 2008) | 1 line Daily bump. ........ r138104 | bje | 2008-07-23 20:35:02 -0700 (Wed, 23 Jul 2008) | 3 lines * config/rs6000/rs6000-c.c: Move GTY(()) markers to match conventional usage. ........ r138106 | bje | 2008-07-23 20:59:55 -0700 (Wed, 23 Jul 2008) | 12 lines gcc/ * config/spu/spu-c.c (__vector_keyword): New variable. (vector_keyword): Likewise. (spu_categorize_keyword): New function. (spu_macro_to_expand): Likewise. (spu_cpu_cpp_builtins): Enable context-sensitive macros if not compiling an ISO C dialect. gcc/testsuite/ * gcc.target/spu/vector.c: New test. * gcc.target/spu/vector-ansi.c: Likewise. ........ r138107 | ian | 2008-07-23 21:51:12 -0700 (Wed, 23 Jul 2008) | 6 lines ./: * tree-vrp.c (infer_value_range): Ignore asm statements when looking for memory accesses for -fdelete-null-pointer-checks. testsuite/: * gcc.target/i386/20080723-1.c: New test. ........ r138110 | rwild | 2008-07-23 23:35:21 -0700 (Wed, 23 Jul 2008) | 7 lines libiberty/ * maint-tool (deps): Output config.h instead of stamp-h. * Makefile.in: Rebuild deps. (maintainer-clean-subdir): Depend on stamp-h rather than config.h. Reverts 2007-07-11 change. ........ r138112 | tkoenig | 2008-07-24 02:26:43 -0700 (Thu, 24 Jul 2008) | 67 lines 2008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/29952 * gfortran.h: Add "warn_array_temp" to gfc_option_t. * lang.opt: Add -Warray-temporaries. * invoke.texi: Document -Warray-temporaries * trans-array.h (gfc_trans_create_temp_array): Add argument of type *locus. (gfc_conv_loop_setup): Likewise. * trans-array.c (gfc_trans_create_temp_array): If -Warray-temporaries is given and locus is present, warn about creation of array temporaries. (gfc_trans_array_constructor_subarray): Add locus to call of gfc_conv_loop_setup. (gfc_trans_array_constructor): Add where argument. Pass where argument to call of gfc_trans_create_temp_array. (gfc_add_loop_ss_code): Add where argument. Pass where argument to recursive call of gfc_add_loop_ss_code and to call of gfc_trans_array_constructor. (gfc_conv_loop_setup): Add where argument. Pass where argument to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array. (gfc_conv_expr_descriptor): Pass location to call of gfc_conv_loop_setup. (gfc_conv_array_parameter): If -Warray-temporaries is given, warn about creation of temporary arrays. * trans-expr.c (gfc_conv_subref_array_arg): Add where argument to call to gfc_conv_loop_setup. (gfc_conv_function_call): Add where argument to call to gfc_trans_creat_temp_array. (gfc_trans_subarray_assign): Likewise. (gfc_trans_assignment_1): Add where argument to call to gfc_conv_loop_setup. * trans-stmt.c (gfc_conv_elemental_dependencies): Add where argument to call to gfc_trans_create_temp_array. (gfc_trans_call): Add where argument to call to gfc_conv_loop_setup. (generate_loop_for_temp_to_lhs): Likewise. (generate_loop_for_rhs_to_temp): Likewise. (compute_inner_temp_size): Likewise. (gfc_trans-pointer_assign_need_temp): Likewise. (gfc_evaluate_where_mask): Likewise. (gfc_trans_where_assign): Likewise. (gfc_trans_where_3): Likewise. * trans-io.c (transfer_srray_component): Add where argument to function. Add where argument to call to gfc_conv_loop_setup. (transfer_expr): Add where argument to call to transfer_array_component. (gfc_trans_transfer): Add where expression to call to gfc_conv_loop_setup. * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Add where argument to call to gfc_conv_loop_setup. (gfc_conv_intrinsic_count): Likewise. (gfc_conv_intrinsic_arith): Likewise. (gfc_conv_intrinsic_dot_product): Likewise. (gfc_conv_intrinsic_minmaxloc): Likewise. (gfc_conv_intrinsic_minmaxval): Likewise. (gfc_conv_intrinsic_array_transfer): Warn about creation of temporary array. Add where argument to call to gfc_trans_create_temp_array. * options.c (gfc_init_options): Initialize gfc_option.warn_array_temp. (gfc_handle_option): Set gfc_option.warn_array_temp. 2008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/29952 * gfortran.dg/array_temporaries_1.f90: New test case. ........ r138119 | ktietz | 2008-07-24 08:47:17 -0700 (Thu, 24 Jul 2008) | 7 lines 2008-07-24 Kai Tietz <kai.tietz@onevision.com> * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for imp symbol extension. ........ r138120 | domob | 2008-07-24 09:06:55 -0700 (Thu, 24 Jul 2008) | 6 lines 2008-07-24 Daniel Kraft <d@domob.eu> * match.c (gfc_match): Add assertion to catch wrong calls trying to match upper-case characters. ........ r138122 | domob | 2008-07-24 11:52:51 -0700 (Thu, 24 Jul 2008) | 63 lines 2008-07-24 Daniel Kraft <d@domob.eu> PR fortran/33141 * lang.opt (Wnonstd-intrinsics): Removed option. (Wintrinsics-std), (Wintrinsic-shadow): New options. * invoke.texi (Option Summary): Removed -Wnonstd-intrinsics from the list and added -Wintrinsics-std and -Wintrinsic-shadow. (Error and Warning Options): Documented the new options and removed the documentation for -Wnonstd-intrinsics. * gfortran.h (gfc_option_t): New members warn_intrinsic_shadow and warn_intrinsics_std, removed warn_nonstd_intrinsics. (gfc_is_intrinsic): Renamed from gfc_intrinsic_name. (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard): New. * decl.c (match_procedure_decl): Replaced gfc_intrinsic_name by the new name gfc_is_intrinsic. (warn_intrinsic_shadow): New helper method. (gfc_match_function_decl), (gfc_match_subroutine): Call the new method warn_intrinsic_shadow to check the just-parsed procedure. * expr.c (check_init_expr): Call new gfc_is_intrinsic to check whether the function called is really an intrinsic in the selected standard. * intrinsic.c (gfc_is_intrinsic): Renamed from gfc_intrinsic_name and extended to take into account the selected standard settings when trying to find out whether a symbol is an intrinsic or not. (gfc_check_intrinsic_standard): Made public and extended. (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface): Removed the calls to check_intrinsic_standard, this check now happens inside gfc_is_intrinsic. (gfc_warn_intrinsic_shadow): New method defined. * options.c (gfc_init_options): Initialize new warning flags to false and removed intialization of Wnonstd-intrinsics flag. (gfc_post_options): Removed logic for Wnonstd-intrinsics flag. (set_Wall): Set new warning flags and removed Wnonstd-intrinsics flag. (gfc_handle_option): Handle the new flags and removed handling of the old Wnonstd-intrinsics flag. * primary.c (gfc_match_rvalue): Replaced call to gfc_intrinsic_name by the new name gfc_is_intrinsic. * resolve.c (resolve_actual_arglist): Ditto. (resolve_generic_f), (resolve_unknown_f): Ditto. (is_external_proc): Ditto. (resolve_generic_s), (resolve_unknown_s): Ditto. (resolve_symbol): Ditto and ensure for symbols declared INTRINSIC that they are really available in the selected standard setting. 2008-07-24 Daniel Kraft <d@domob.eu> PR fortran/33141 * gfortran.dg/intrinsic_shadow_1.f03: New test for -Wintrinsic-shadow. * gfortran.dg/intrinsic_shadow_2.f03: Ditto. * gfortran.dg/intrinsic_shadow_3.f03: Ditto. * gfortran.dg/intrinsic_std_1.f90: New test for -Wintrinsics-std. * gfortran.dg/intrinsic_std_2.f90: Ditto. * gfortran.dg/intrinsic_std_3.f90: Ditto. * gfortran.dg/intrinsic_std_4.f90: Ditto. * gfortran.dg/warn_std_1.f90: Removed option -Wnonstd-intrinsics. * gfortran.dg/warn_std_2.f90: Replaced -Wnonstd-intrinsics by -Wintrinsics-std and adapted expected errors/warnings. * gfortran.dg/warn_std_3.f90: Ditto. * gfortran.dg/c_sizeof_2.f90: Adapted expected error/warning message. * gfortran.dg/gamma_2.f90: Ditto. * gfortran.dg/selected_char_kind_3.f90: Ditto. * gfortran.dg/fmt_g0_2.f08: Call with -fall-intrinsics to allow abort. ........ r138123 | jason | 2008-07-24 12:15:00 -0700 (Thu, 24 Jul 2008) | 29 lines Implement defaulted/deleted functions as per N2346 * cp-tree.h (struct lang_decl_flags): Add defaulted_p bitfield. (DECL_DELETED_FN): New macro. (DECL_DEFAULTED_FN): New macro. * class.c (user_provided_p): New fn. (defaultable_fn_p): New fn. (type_has_user_provided_constructor): New fn. (type_has_user_provided_default_constructor): New fn. (check_methods): A defaulted fn is still trivial. (check_bases_and_members): Likewise. * decl.c (grok_special_member_properties): Likewise. (duplicate_decls): Complain about redeclaring a function as deleted. (start_decl): initialized==2 means deleted. (cp_finish_decl): Handle deleted/defaulted semantics. * decl2.c (grokfield): Likewise. (mark_used): Check DECL_DEFAULTED_FN instead of DECL_ARTIFICIAL. Complain about using a deleted fn. * init.c (build_value_init_1): Use type_has_user_provided_constructor. (perform_member_init): Check for a user-provided default constructor even if TYPE_NEEDS_CONSTRUCTING. (build_new_1): Likewise. * call.c (build_over_call): Don't call mark_used twice. * method.c (implicitly_declare_fn): Set DECL_DEFAULTED_FN. * search.c (check_final_overrider): Check for deleted mismatch. * parser.c (cp_parser_init_declarator): Tell start_decl about =delete. (cp_parser_pure_specifier): Handle =default and =delete. * error.c (maybe_warn_cpp0x): Suggest -std=gnu++0x as well. ........ r138127 | paolo | 2008-07-24 15:47:26 -0700 (Thu, 24 Jul 2008) | 17 lines 2008-07-24 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/36924 Revert: 2008-07-23 Chris Fairles <chris.fairles@gmail.com> * acinclude.m4 ([GLIBCXX_CHECK_CLOCK_GETTIME]): Define GLIBCXX_LIBS. Holds the lib that defines clock_gettime (-lrt or -lposix4). * src/Makefile.am: Use it. * configure: Regenerate. * configure.in: Likewise. * Makefile.in: Likewise. * src/Makefile.in: Likewise. * libsup++/Makefile.in: Likewise. * po/Makefile.in: Likewise. * doc/Makefile.in: Likewise. ........ r138128 | kkojima | 2008-07-24 17:14:57 -0700 (Thu, 24 Jul 2008) | 6 lines * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer to 2 instead of -1. (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2. ........ r138131 | gccadmin | 2008-07-24 17:16:48 -0700 (Thu, 24 Jul 2008) | 1 line Daily bump. ........ r138139 | ro | 2008-07-25 05:27:29 -0700 (Fri, 25 Jul 2008) | 2 lines * raise-gcc.c: Move tsystem.h before tm.h. ........ r138140 | hubicka | 2008-07-25 06:11:32 -0700 (Fri, 25 Jul 2008) | 102 lines * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code. (build_cgraph_edges): Likewise. * cgraph.c (cgraph_node): Do not update assembler hash. (cgraph_remove_node): Drop non-unit-at-a-time code. * tree-pass.h (pass_O0_always_inline): Remove. * ipa-reference.c (gate_reference): Remove unit-at-a-time check. * toplev.c (process_options): Flag unit-at-a-time does not imply no section anchors. * cgraphunit.c: Update comments. (decide_is_function_needed): Drop non-unit-at-a-time mode. (cgraph_assemble_pending_functions): Remove. (cgraph_reset_node): Drop non-unit-at-a-time code. (cgraph_finalize_function): Likewise. (cgraph_analyze_function): Likewise. (cgraph_finalize_compilation_unit): Likewise. (cgraph_expand_function): Likewise. (cgraph_optimize): Likesise. (save_inline_function_body): Likewise. * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check. * tree-ssa-alias.c (maybe_be_aliased): Likewise. * ipa-inline.c: Update comments. (enum inlining_mode): remove INLINE_SPEED. (cgraph_clone_inlined_nodes): Drop unit-at-a-time check. (cgraph_mark_inline_edge): Likewise. (try_inline): Likewise. (cgraph_decide_inlining_incrementally): Likewise. (cgraph_gate_inlining): Remove. (cgraph_early_inlining): Remove flag_unit_at_a_time checks. (cgraph_gate_early_inlining): Likewise. (gate_inline_passes): Remove. (pass_inline_parameters, pass_ipa_inline): Remove gates. (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, pass_O0_always_inline): Remove. * c-pch.c (c_pch_matching): Remove -funit-at-a-time. * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check. * opts.c (no_unit_at_a_time_default): Remove. (decode_options): Remove flag_unit_at_a_time reset and warning. * opts.h (no_unit_at_a_time_default): Remove. * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword early in GNU dialect. (merge_decls): Update comment; drop unit-at-a-time check. (finish_decl): Likewise. (grok_declaration): Remove flag_inline_trees code. (finish_functions): Return on function returning non-void on all statics. * ipa-tye-escape.c (gate_type_escape_vars): Remove. * cfgexpand.c (expand_one_static_var): Remove. (expand_one_var): Remove expand_one_static_var call. (expand_used_vars_for_block): Remove flag_unit_a_time check. * c-opts.c (c_common_post_options): Remove flag_inline_trees code and flag_unit_at_a-time compatibility checks. * varasm.c (assemble_alias): Remove flag_unit_at_a_time check. * tree-inline.c (flag_inline_trees): Remove. (inlinable_function_p): Don't check it. (expand_call_inline): Remove non-unit-at-a-time code. * tree-inline.h (flag_inline_trees): Remove. * tree-optimize.c (execute_early_local_optimizations): Remove unit-at-a-time checks. (tree_rest_of_compilation): Likewise. * combine.c (setup_incoming_promotions): Likewise. * tree-profile.c (tree_gen_ic_func_profiler): Likewise. * tree-ssa-structalias.c (delete_points_to_sets): Likewise. * passes.c (pass_inline_parameters): Update comments; remove O0_alwaysinline pass. (execute_one_ipa_transform_pass): Do not reset in_gimple_form. (execute_one_pass): Likewise. * i386.c (ix86_function_regparm): Remove unit-at-a-time check. (ix86_function_sseregparm): Likewise. * arm.c (arm_function_in_section_p): Likewise. * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise. * varpool.c: Update comments. (decide_is_variable_needed): Remove unit-at-a-time checks. (varpool_finalize_decl): Likewise. * ada/utils.c (end_subprog_body): Remove inline trees check. * ada/misc.c (gnat_post_options): Do not set flag_inline_trees. * fortran/options.c (gfc_post_options): Remove flag_unline_trees code. * gcc.dg/winline-4.c: Remove. * gcc.dg/pch/valid-3.hs: Remove. * gcc.dg/pch/valid-3.c: Remove. * g++.old-deja/g++.brendan/crash52.C: Accept returning void warning * g++.old-deja/g++.jason/report.C: Likewise. * testsuite/g++.dg/warn/pr23075.C: We get returning void warning instead of control flow warning. * cp/decl.c (duplicate_decls): Update comment and unit-at-a-time. (grogfndecl): Drop flag_inline_trees code. * cp/pt.c (instantiate_decl): Drop flag_iline_trees code. * cp/lex.c (cxx_init): Do not set unit-at-a-time. * java/decl.c: Include cgraph.h (end_java_method): Remove non-unit-at-a-time code. (java_mark_decl_local): Likewise; sanity check that we don't touch finalized nodes. ........ r138141 | hubicka | 2008-07-25 07:25:39 -0700 (Fri, 25 Jul 2008) | 2 lines Remove files that was intended to be removed in last commit. ........ r138142 | jason | 2008-07-25 08:18:16 -0700 (Fri, 25 Jul 2008) | 3 lines * class.c (type_has_user_provided_default_constructor): Handle templates. ........ r138143 | jsm28 | 2008-07-25 08:49:36 -0700 (Fri, 25 Jul 2008) | 4 lines * lib/target-supports.exp (check_effective_target_arm_thumb1_ok): New. * g++.dg/inherit/thunk8.C: Use it. ........ r138145 | andreast | 2008-07-25 08:59:12 -0700 (Fri, 25 Jul 2008) | 6 lines 2008-07-25 Andreas Tobler <a.tobler@schweiz.org> PR bootstrap/36918 * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define DEFAULT_PCC_STRUCT_RETURN to 127. ........ r138146 | jsm28 | 2008-07-25 09:21:05 -0700 (Fri, 25 Jul 2008) | 3 lines * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal, movv2si_internal): Add mem = reg alternative. ........ r138148 | hjl | 2008-07-25 13:30:35 -0700 (Fri, 25 Jul 2008) | 6 lines 2008-07-25 Martin Jambor <mjambor@suse.cz> PR tree-optimization/36926 * ipa-prop.c (ipa_analyze_call_uses): Call ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF. ........ r138150 | hubicka | 2008-07-25 14:03:34 -0700 (Fri, 25 Jul 2008) | 15 lines * typeck.c (inline_conversion): Remove. (cp_build_function_call): Do not use inline_conversion. * decl.c (duplicate_decls): Do not insist on inline being declared early. (start_cleanup_fn): Do not assume that INLINE flags prevent function from being output. We now remove static functions always. (finish_function): Do return warning on all static functions. * call.c (build_over_call): Do not use inline_conversion. * cp-tree.h (possibly_inlined_p): Declare. (inline_conversion): Remove. * pt.c (instantiate_decl): Use possibly_inlined_p predicate. * decl2.c (cp_write_global_declarations): Likewise. (mark_used): Likewise. (possibly_inlined_p): New functions. ........ r138151 | hubicka | 2008-07-25 14:05:23 -0700 (Fri, 25 Jul 2008) | 2 lines Fix changelog entry of my earlier commit. ........ r138154 | meissner | 2008-07-25 16:44:24 -0700 (Fri, 25 Jul 2008) | 1 line Fix IA-64 breakage; Make hot/cold optimization conversation port specific; Move disabling of scheduling from OVERRIDE_OPTIONS to OPTIMIZATION_OPTIONS ........ r138159 | gccadmin | 2008-07-25 17:16:56 -0700 (Fri, 25 Jul 2008) | 1 line Daily bump. ........ r138165 | hubicka | 2008-07-26 03:03:01 -0700 (Sat, 26 Jul 2008) | 7 lines * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE. * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE. * dojump.c (clear_pending_stack_adjust): Likewise. * print-tree.c (print_node): Ignore DECL_INLINE. * tree-inline.c (inlinable_function_p): Likewise. ........ r138167 | tkoenig | 2008-07-26 03:30:50 -0700 (Sat, 26 Jul 2008) | 6 lines 2008-07-26 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/36934 * gfortran.dg/allocatable_module_1.f90: New test case. ........ r138179 | hainque | 2008-07-26 07:26:45 -0700 (Sat, 26 Jul 2008) | 6 lines * collect2.c (symkind): New enum. Symbol kinds we care about. (is_ctor_dtor): Return symkind instead of int. Adjust prototype, code and head comment accordingly. (scan_prog_file): Use symkind names instead of bare integers. ........ r138180 | ebotcazou | 2008-07-26 12:03:37 -0700 (Sat, 26 Jul 2008) | 1 line Fix nits. ........ r138181 | gerald | 2008-07-26 14:41:15 -0700 (Sat, 26 Jul 2008) | 3 lines * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo version requirements. ........ r138184 | gccadmin | 2008-07-26 17:16:44 -0700 (Sat, 26 Jul 2008) | 1 line Daily bump. ........ r138186 | burnus | 2008-07-27 03:45:44 -0700 (Sun, 27 Jul 2008) | 52 lines 2008-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/36132 PR fortran/29952 PR fortran/36909 * trans.c (gfc_trans_runtime_check): Allow run-time warning * besides run-time error. * trans.h (gfc_trans_runtime_check): Update declaration. * trans-array.c * (gfc_trans_array_ctor_element,gfc_trans_array_bound_check, gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias): Updated gfc_trans_runtime_check calls. (gfc_conv_array_parameter): Implement flag_check_array_temporaries, fix packing/unpacking for nonpresent optional actuals to optional formals. * trans-array.h (gfc_conv_array_parameter): Update declaration. * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign, gfc_conv_function_call): Updated gfc_trans_runtime_check calls. (gfc_conv_function_call): Update gfc_conv_array_parameter calls. * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check calls. * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto. (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for gfc_conv_array_parameter. * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto. * trans-decl.c (gfc_build_builtin_function_decls): Add gfor_fndecl_runtime_warning_at. * lang.opt: New option fcheck-array-temporaries. * gfortran.h (gfc_options): New flag_check_array_temporaries. * options.c (gfc_init_options, gfc_handle_option): Handle flag. * invoke.texi: New option fcheck-array-temporaries. 2008-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/36132 PR fortran/29952 PR fortran/36909 * runtime/error.c: New function runtime_error_at. * gfortran.map: Ditto. * libgfortran.h: Ditto. 2008-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/36132 PR fortran/29952 PR fortran/36909 gfortran.dg/internal_pack_4.f90: New. gfortran.dg/internal_pack_5.f90: New. gfortran.dg/array_temporaries_2.f90: New. ........ r138189 | paolo | 2008-07-27 08:49:12 -0700 (Sun, 27 Jul 2008) | 14 lines 2008-07-27 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (push_library_fn): Add a parameter for the exceptions that the function may throw. (push_void_library_fn, push_throw_library_fn, expand_static_init): Adjust. (build_library_fn): Change to static. * cp-tree.h: Adjust declarations. * except.c (declare_nothrow_library_fn): New. (do_get_exception_ptr, do_begin_catch, do_free_exception, do_allocate_exception): Use the latter, adjust the declarations (ie, add empty exception-specification), consistently with the actual implementation in libsupc++. ........ r138190 | dfranke | 2008-07-27 09:32:14 -0700 (Sun, 27 Jul 2008) | 6 lines 2008-07-27 Daniel Franke <franke.daniel@gmail.com> PR fortran/36724 * gfortran.dg/pointer_to_substring.f90: New test. ........ r138191 | ebotcazou | 2008-07-27 09:55:31 -0700 (Sun, 27 Jul 2008) | 4 lines PR tree-optimization/36830 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2. (expressions_equal_p): Return false if only one operand is null. ........ r138194 | hjl | 2008-07-27 10:40:04 -0700 (Sun, 27 Jul 2008) | 15 lines gcc/cp/ 2008-07-27 H.J. Lu <hongjiu.lu@intel.com> PR c++/36944 * class.c (type_has_user_provided_default_constructor): Handle default parameters. gcc/testsuite/ 2008-07-27 H.J. Lu <hongjiu.lu@intel.com> PR c++/36944 * g++.dg/other/pr36944.C: New. ........ r138198 | victork | 2008-07-27 14:44:25 -0700 (Sun, 27 Jul 2008) | 14 lines 2008-07-27 Victor Kaplansky <victork@il.ibm.com> PR tree-optimization/35252 * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and REALPART_EXPR to be considered as same load operation. testsuite PR tree-optimization/35252 * gcc.dg/vect/vect-complex-1.c, gcc.dg/vect/vect-complex-2.c, gcc.dg/vect/fast-math-vect-complex-3.c, gcc.dg/vect/vect-complex-4.c: New tests. ........ r138201 | gccadmin | 2008-07-27 17:16:51 -0700 (Sun, 27 Jul 2008) | 1 line Daily bump. ........ r138206 | simonb | 2008-07-28 04:55:11 -0700 (Mon, 28 Jul 2008) | 9 lines * c-pragma.c (handle_pragma_message): New function. (init_pragma): Register handle_pragma_message. * doc/extend.texi (Diagnostic Pragmas): Added #pragma message documentation. * gcc.dg/pragma-message.c: New. ........ r138207 | rguenth | 2008-07-28 07:33:56 -0700 (Mon, 28 Jul 2008) | 201 lines 2008-07-28 Richard Guenther <rguenther@suse.de> Merge from gimple-tuples-branch. * ChangeLog.tuples: ChangeLog from gimple-tuples-branch. * gimple.def: New file. * gsstruct.def: Likewise. * gimple-iterator.c: Likewise. * gimple-pretty-print.c: Likewise. * tree-gimple.c: Removed. Merged into ... * gimple.c: ... here. New file. * tree-gimple.h: Removed. Merged into ... * gimple.h: ... here. New file. * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h. * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the --enable-checking=gimple flag. * config.in: Likewise. * configure: Regenerated. * tree-ssa-operands.h: Tuplified. * tree-vrp.c: Likewise. * tree-loop-linear.c: Likewise. * tree-into-ssa.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-dump.c: Likewise. * tree-complex.c: Likewise. * cgraphbuild.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-pretty-print.c: Likewise. * tracer.c: Likewise. * gengtype.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-ssa-loop-unswitch.c: Likewise. * cgraph.c: Likewise. * cgraph.h: Likewise. * tree-ssa-loop-manip.c: Likewise. * value-prof.c: Likewise. * tree-ssa-loop-ch.c: Likewise. * tree-tailcall.c: Likewise. * value-prof.h: Likewise. * tree.c: Likewise. * tree.h: Likewise. * tree-pass.h: Likewise. * ipa-cp.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-scalar-evolution.h: Likewise. * target.h: Likewise. * lambda-mat.c: Likewise. * tree-phinodes.c: Likewise. * diagnostic.h: Likewise. * builtins.c: Likewise. * tree-ssa-alias-warnings.c: Likewise. * cfghooks.c: Likewise. * fold-const.c: Likewise. * cfghooks.h: Likewise. * omp-low.c: Likewise. * tree-ssa-dse.c: Likewise. * ipa-reference.c: Likewise. * tree-ssa-uncprop.c: Likewise. * toplev.c: Likewise. * tree-gimple.c: Likewise. * tree-gimple.h: Likewise. * tree-chrec.c: Likewise. * tree-chrec.h: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-sccvn.h: Likewise. * cgraphunit.c: Likewise. * tree-ssa-copyrename.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-nomudflap.c: Likewise. * tree-call-cdce.c: Likewise. * ipa-pure-const.c: Likewise. * c-format.c: Likewise. * tree-stdarg.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-nrv.c: Likewise. * tree-ssa-propagate.c: Likewise. * ipa-utils.c: Likewise. * tree-ssa-propagate.h: Likewise. * tree-ssa-alias.c: Likewise. * gimple-low.c: Likewise. * tree-ssa-sink.c: Likewise. * ipa-inline.c: Likewise. * c-semantics.c: Likewise. * dwarf2out.c: Likewise. * expr.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * predict.c: Likewise. * tree-ssa-loop.c: Likewise. * tree-parloops.c: Likewise. * tree-ssa-address.c: Likewise. * tree-ssa-ifcombine.c: Likewise. * matrix-reorg.c: Likewise. * c-decl.c: Likewise. * tree-eh.c: Likewise. * c-pretty-print.c: Likewise. * lambda-trans.c: Likewise. * function.c: Likewise. * langhooks.c: Likewise. * ebitmap.h: Likewise. * tree-vectorizer.c: Likewise. * function.h: Likewise. * langhooks.h: Likewise. * tree-vectorizer.h: Likewise. * ipa-type-escape.c: Likewise. * ipa-type-escape.h: Likewise. * domwalk.c: Likewise. * tree-if-conv.c: Likewise. * profile.c: Likewise. * domwalk.h: Likewise. * tree-data-ref.c: Likewise. * tree-data-ref.h: Likewise. * tree-flow-inline.h: Likewise. * tree-affine.c: Likewise. * tree-vect-analyze.c: Likewise. * c-typeck.c: Likewise. * gimplify.c: Likewise. * coretypes.h: Likewise. * tree-ssa-phiopt.c: Likewise. * calls.c: Likewise. * tree-ssa-coalesce.c: Likewise. * tree.def: Likewise. * tree-dfa.c: Likewise. * except.c: Likewise. * except.h: Likewise. * cfgexpand.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-live.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-live.h: Likewise. * tree-predcom.c: Likewise. * lambda.h: Likewise. * tree-mudflap.c: Likewise. * ipa-prop.c: Likewise. * print-tree.c: Likewise. * tree-ssa-copy.c: Likewise. * ipa-prop.h: Likewise. * tree-ssa-forwprop.c: Likewise. * ggc-page.c: Likewise. * c-omp.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-ssa-ter.c: Likewise. * tree-nested.c: Likewise. * tree-ssa.c: Likewise. * lambda-code.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-inline.c: Likewise. * tree-inline.h: Likewise. * tree-iterator.c: Likewise. * tree-optimize.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-vect-transform.c: Likewise. * tree-object-size.c: Likewise. * tree-outof-ssa.c: Likewise. * cfgloop.c: Likewise. * system.h: Likewise. * tree-profile.c: Likewise. * cfgloop.h: Likewise. * c-gimplify.c: Likewise. * c-common.c: Likewise. * tree-vect-generic.c: Likewise. * tree-flow.h: Likewise. * c-common.h: Likewise. * basic-block.h: Likewise. * tree-ssa-structalias.c: Likewise. * tree-switch-conversion.c: Likewise. * tree-ssa-structalias.h: Likewise. * tree-cfg.c: Likewise. * passes.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa-struct-reorg.h: Likewise. * tree-ssa-reassoc.c: Likewise. * cfgrtl.c: Likewise. * varpool.c: Likewise. * stmt.c: Likewise. * tree-ssanames.c: Likewise. * tree-ssa-threadedge.c: Likewise. * langhooks-def.h: Likewise. * tree-ssa-operands.c: Likewise. * config/alpha/alpha.c: Likewise. * config/frv/frv.c: Likewise. * config/s390/s390.c: Likewise. * config/m32c/m32c.c: Likewise. * config/m32c/m32c-protos.h: Likewise. * config/spu/spu.c: Likewise. * config/sparc/sparc.c: Likewise. * config/i386/i386.c: Likewise. * config/sh/sh.c: Likewise. * config/xtensa/xtensa.c: Likewise. * config/stormy16/stormy16.c: Likewise. * config/ia64/ia64.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/pa/pa.c: Likewise. * config/mips/mips.c: Likewise. ........ r138208 | burnus | 2008-07-28 09:02:51 -0700 (Mon, 28 Jul 2008) | 5 lines 2008-07-28 Tobias Burnus <burnus@net-b.de> * Make-lang.in: Remove -Wno-* from fortran-warn. ........ r138211 | aldyh | 2008-07-28 10:37:05 -0700 (Mon, 28 Jul 2008) | 3 lines * MAINTAINERS: Add Jakub and myself as gimple maintainers. ........ r138213 | rguenth | 2008-07-28 11:29:04 -0700 (Mon, 28 Jul 2008) | 11 lines 2008-07-28 Richard Guenther <rguenther@suse.de> * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code. (insert_fake_stores): Remove. (realify_fake_stores): Likewise. (execute_pre): Remove dead code. * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case. (find_func_aliases): Deal with it here instead. Re-enable gcc_unreachable call. ........ r138214 | chaoyingfu | 2008-07-28 11:47:44 -0700 (Mon, 28 Jul 2008) | 3 lines * configure.tgt: Enable futex for MIPS. * config/linux/mips/futex.h: New file. ........ r138215 | aldyh | 2008-07-28 12:50:50 -0700 (Mon, 28 Jul 2008) | 2 lines fix typo ........ r138216 | andreast | 2008-07-28 13:30:00 -0700 (Mon, 28 Jul 2008) | 7 lines 2008-07-28 Andreas Tobler <a.tobler@schweiz.org> * configure.ac: Use the m4_do macro to concatenate the warnings into one string in ACX_PROG_CC_WARNING_OPTS, ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS. * configure: Regenerate. ........ r138217 | rguenth | 2008-07-28 13:32:32 -0700 (Mon, 28 Jul 2008) | 12 lines 2008-07-28 Richard Guenther <rguenther@suse.de> PR tree-optimization/36957 * tree-flow.h (tree_ssa_useless_type_conversion): Remove. (useless_type_conversion_p): Remove. (types_compatible_p): Remove. * gimple.h (tree_ssa_useless_type_conversion): Declare. (useless_type_conversion_p): Declare. (types_compatible_p): Declare. (gimple_expr_type): Return the base type only if it is trivially convertible to the subtype. ........ r138219 | paolo | 2008-07-28 16:28:16 -0700 (Mon, 28 Jul 2008) | 8 lines 2008-07-28 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/36949 * include/tr1_impl/boost_shared_ptr.h (__shared_ptr(_Sp_make_shared_tag, _Alloc, _Args&&...): Call __enable_shared_from_this_helper. * testsuite/20_util/shared_ptr/creation/36949.cc: New. ........ r138221 | jason | 2008-07-28 17:06:08 -0700 (Mon, 28 Jul 2008) | 3 lines PR c++/36943 * decl.c (reshape_init_r): Allow C++0x initializer lists. ........ r138224 | gccadmin | 2008-07-28 17:16:58 -0700 (Mon, 28 Jul 2008) | 1 line Daily bump. ........ r138226 | ghazi | 2008-07-28 17:45:52 -0700 (Mon, 28 Jul 2008) | 27 lines * gfortran.h (try): Remove macro. Replace try with gfc_try throughout. * array.c: Likewise. * check.c: Likewise. * cpp.c: Likewise. * cpp.h: Likewise. * data.c: Likewise. * data.h: Likewise. * decl.c: Likewise. * error.c: Likewise. * expr.c: Likewise. * interface.c: Likewise. * intrinsic.c: Likewise. * intrinsic.h: Likewise. * io.c: Likewise. * match.h: Likewise. * parse.c: Likewise. * parse.h: Likewise. * resolve.c: Likewise. * scanner.c: Likewise. * simplify.c: Likewise. * symbol.c: Likewise. * trans-openmp.c: Likewise. * trans-types.c: Likewise. ........ r138233 | kkojima | 2008-07-29 02:07:49 -0700 (Tue, 29 Jul 2008) | 5 lines * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr, valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit, next_stack, lab_false and lab_over trees. ........ r138234 | domob | 2008-07-29 02:11:51 -0700 (Tue, 29 Jul 2008) | 16 lines 2008-07-29 Daniel Kraft <d@domob.eu> PR fortran/36403 * trans-intrinsic.c (conv_generic_with_optional_char_arg): New method to append a string-length even if the string argument is missing, e.g. for EOSHIFT. (gfc_conv_intrinsic_function): Call the new method for EOSHIFT, PACK and RESHAPE. 2008-07-29 Daniel Kraft <d@domob.eu> PR fortran/36403 * gfortran.dg/char_eoshift_5.f90: New test. * gfortran.dg/intrinsic_optional_char_arg_1.f90: New test. ........ r138235 | manu | 2008-07-29 03:00:25 -0700 (Tue, 29 Jul 2008) | 11 lines 2008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 34985 * c-decl.c (merge_decls): Merge USED flags. cp/ * decl.c (duplicate_decls): Merge USED flags. testsuite/ * gcc.dg/pr34985.c: New. * g++.dg/warn/pr34985.C: New. ........ r138236 | hubicka | 2008-07-29 03:49:30 -0700 (Tue, 29 Jul 2008) | 11 lines * optimize.c (maybe_clone_body): Remove DECL_INLINE. * decl.c (duplicate_decls): Likewise. (grokfndecl): Likewise. (start_method): Likewise. * method.c (make_thunk, make_alias_for, implicitly_declare_fn): Likewise. * pt.c (register_specialization, regenerate_decl_from_template): Likewise. * decl2.c (grokfield): Likewise. ........ r138237 | hubicka | 2008-07-29 03:52:16 -0700 (Tue, 29 Jul 2008) | 19 lines * predict.c (always_optimize_for_size_p): New function. (optimize_bb_for_size_p, optimize_bb_for_speed_p, optimize_edge_for_size_p, optimize_edge_for_speed_p, optimize_insn_for_size_p, optimize_insn_for_speed_p): New global functions. (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New. * function.c (prepare_function_start): Set default profile. * function.h (rtl_data): Add maybe_hot_insn_p. * cfgexpand.c (expand_gimple_basic_block): Set RTL profile. (construct_exit_block): Likewise. (tree_expand_cfg): Likewise. * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p, optimize_edge_for_size_p, optimize_edge_for_speed_p, optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare. (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile): Declare. ........ r138238 | hubicka | 2008-07-29 04:00:58 -0700 (Tue, 29 Jul 2008) | 22 lines * flags.h (flag_really_no_inline): Remove. * cgraph.c (cgraph_function_possibly_inlined_p): Simplify. * toplev.c (flag_really_no_inline): Remove. * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline. * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline. (cgraph_decide_inlining_incrementally): Likewise. (compute_inline_parameters): Likewise. * opts.c (decode_options): Simplify. * c-opts.c (c_common_post_options): Do not set flag_no_inline. * common.opt (finline): Initialize to 1. * tree-inline.c (inlinable_function_p): Check flag_no_inline. * lang.c (java_post_options): Remove handling of flag_no_inline. * misc.c (gnat_post_options): Do not set flag_no_inline. * options.c (gfc_post_options): Do not set flag_no_inline. ........ r138245 | aaronwl | 2008-07-29 07:10:03 -0700 (Tue, 29 Jul 2008) | 5 lines 2008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com> * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o. ........ r138246 | charlet | 2008-07-29 08:46:37 -0700 (Tue, 29 Jul 2008) | 7 lines * gcc-interface: New directory. * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h, utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c, config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved to gcc-interface subdirectory. ........ r138248 | charlet | 2008-07-29 08:50:16 -0700 (Tue, 29 Jul 2008) | 2 lines Resync. ........ r138249 | jakub | 2008-07-29 09:27:50 -0700 (Tue, 29 Jul 2008) | 2 lines * c-format.c (check_format_types): Revert unwanted checkin. ........ r138250 | jakub | 2008-07-29 09:29:33 -0700 (Tue, 29 Jul 2008) | 7 lines PR c++/36852 * tree.c (cplus_array_hash, build_cplus_array_type_1): Hash on TYPE_UID instead of pointers. * g++.dg/pch/array-1.C: New test. * g++.dg/pch/array-1.Hs: New file. ........ r138251 | jakub | 2008-07-29 09:30:32 -0700 (Tue, 29 Jul 2008) | 3 lines * class.c (build_utf8_ref): Pad initializer string to utf8const_type's alignment. ........ r138252 | jakub | 2008-07-29 09:31:18 -0700 (Tue, 29 Jul 2008) | 3 lines * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT from ctype's sizes. ........ r138254 | hubicka | 2008-07-29 10:02:45 -0700 (Tue, 29 Jul 2008) | 4 lines * trans.c (process_inlined_subprograms): Remove tree_really_inline check. ........ r138255 | paolo | 2008-07-29 10:06:24 -0700 (Tue, 29 Jul 2008) | 11 lines 2008-07-29 Paolo Carlini <paolo.carlini@oracle.com> * include/std/utility: Include <initializer_list>, per the current WP. * testsuite/lib/libstdc++.exp (check_v3_target_cstdint): Tweak, don't use -std=gnu++0x unnecessarily. * testsuite/18_support/numeric_limits/char16_32_t.cc: Use dg-require-cstdint. * testsuite/18_support/headers/cstdint/types_std_c++0x.cc: Likewise. * testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc: Likewise. ........ r138256 | rguenth | 2008-07-29 10:07:42 -0700 (Tue, 29 Jul 2008) | 5 lines 2008-07-29 Richard Guenther <rguenther@suse.de> * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF. ........ r138257 | rguenth | 2008-07-29 10:09:26 -0700 (Tue, 29 Jul 2008) | 18 lines 2008-07-29 Richard Guenther <rguenther@suse.de> PR tree-optimization/36945 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare. * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export. Record invariant addresses un-decomposed. (copy_reference_ops_from_call): Record reference call arguments properly. Simplify. * tree-ssa-pre.c (create_component_ref_by_pieces_1): New helper split out from ... (create_component_ref_by_pieces): ... here. Simplify. Prepare for recursive invocation for call arguments. (create_expression_by_pieces): Adjust call to create_component_ref_by_pieces. (compute_avail): Process operand 2 of reference ops. * gcc.dg/tree-ssa/ssa-pre-18.c: New testcase. ........ r138258 | hubicka | 2008-07-29 10:10:55 -0700 (Tue, 29 Jul 2008) | 7 lines * c-decl.c (merge_decls): Do not handle DECL_INLINE. (grokdeclarator): Likewise. * langhooks.c (lhd_warn_unused_global_decl): Use DECL_DECLARED_INLINE_P. * print-tree.c (print_node): Remove DECL_INLINE check. ........ r138260 | charlet | 2008-07-29 11:51:30 -0700 (Tue, 29 Jul 2008) | 2 lines Moved to gcc-interface. ........ r138261 | charlet | 2008-07-29 11:52:26 -0700 (Tue, 29 Jul 2008) | 3 lines * trans.c (process_inlined_subprograms): Remove tree_really_inline check. ........ r138263 | paolo | 2008-07-29 12:34:36 -0700 (Tue, 29 Jul 2008) | 17 lines 2008-07-29 Paolo Carlini <paolo.carlini@oracle.com> * include/debug/set.h: Minor formatting fixes. * include/debug/multiset.h: Likewise. * include/debug/safe_association.h: Likewise. * include/debug/vector: Likewise. * include/debug/map.h: Likewise. * include/debug/string: Likewise. * include/debug/multimap.h: Likewise. * include/bits/stl_list.h: Likewise. * include/bits/stl_map.h: Likewise. * include/bits/stl_set.h: Likewise. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_vector.h: Likewise. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_bvector.h: Likewise. ........ r138274 | charlet | 2008-07-29 13:43:33 -0700 (Tue, 29 Jul 2008) | 2 lines Moved to gcc-interface directory. ........ r138275 | pault | 2008-07-29 13:44:09 -0700 (Tue, 29 Jul 2008) | 1420 lines Index: gcc/fortran/trans-expr.c =================================================================== *** gcc/fortran/trans-expr.c (revision 138273) --- gcc/fortran/trans-expr.c (working copy) *************** *** 1,6 **** /* Expression translation ! Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software ! Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> and Steven Bosscher <s.bosscher@student.tudelft.nl> --- 1,6 ---- /* Expression translation ! Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 ! Free Software Foundation, Inc. Contributed by Paul Brook <paul@nowt.org> and Steven Bosscher <s.bosscher@student.tudelft.nl> *************** gfc_conv_component_ref (gfc_se * se, gfc *** 395,400 **** --- 395,434 ---- } + /* This function deals with component references to components of the + parent type for derived type extensons. */ + static void + conv_parent_component_references (gfc_se * se, gfc_ref * ref) + { + gfc_component *c; + gfc_component *cmp; + gfc_symbol *dt; + gfc_ref parent; + + dt = ref->u.c.sym; + c = ref->u.c.component; + + /* Build a gfc_ref to recursively call gfc_conv_component_ref. */ + parent.type = REF_COMPONENT; + parent.next = NULL; + parent.u.c.sym = dt; + parent.u.c.component = dt->components; + + if (dt->attr.extension && dt->components) + { + /* Return if the component is not in the parent type. */ + for (cmp = dt->components->next; cmp; cmp = cmp->next) + if (strcmp (c->name, cmp->name) == 0) + return; + + /* Otherwise build the reference and call self. */ + gfc_conv_component_ref (se, &parent); + parent.u.c.sym = dt->components->ts.derived; + parent.u.c.component = c; + conv_parent_component_references (se, &parent); + } + } + /* Return the contents of a variable. Also handles reference/pointer variables (all Fortran pointer references are implicit). */ *************** gfc_conv_variable (gfc_se * se, gfc_expr *** 561,566 **** --- 595,603 ---- break; case REF_COMPONENT: + if (ref->u.c.sym->attr.extension) + conv_parent_component_references (se, ref); + gfc_conv_component_ref (se, ref); break; Index: gcc/fortran/trans-array.c =================================================================== *** gcc/fortran/trans-array.c (revision 138273) --- gcc/fortran/trans-array.c (working copy) *************** gfc_conv_resolve_dependencies (gfc_loopi *** 3257,3270 **** if (ss->type != GFC_SS_SECTION) continue; ! if (gfc_could_be_alias (dest, ss) ! || gfc_are_equivalenced_arrays (dest->expr, ss->expr)) { ! nDepend = 1; ! break; } ! ! if (dest->expr->symtree->n.sym == ss->expr->symtree->n.sym) { lref = dest->expr->ref; rref = ss->expr->ref; --- 3257,3272 ---- if (ss->type != GFC_SS_SECTION) continue; ! if (dest->expr->symtree->n.sym != ss->expr->symtree->n.sym) { ! if (gfc_could_be_alias (dest, ss) ! || gfc_are_equivalenced_arrays (dest->expr, ss->expr)) ! { ! nDepend = 1; ! break; ! } } ! else { lref = dest->expr->ref; rref = ss->expr->ref; Index: gcc/fortran/symbol.c =================================================================== *** gcc/fortran/symbol.c (revision 138273) --- gcc/fortran/symbol.c (working copy) *************** gfc_add_component (gfc_symbol *sym, cons *** 1701,1706 **** --- 1701,1714 ---- tail = p; } + if (sym->attr.extension + && gfc_find_component (sym->components->ts.derived, name)) + { + gfc_error ("Component '%s' at %C already in the parent type " + "at %L", name, &sym->components->ts.derived->declared_at); + return FAILURE; + } + /* Allocate a new component. */ p = gfc_get_component (); *************** gfc_find_component (gfc_symbol *sym, con *** 1830,1846 **** if (strcmp (p->name, name) == 0) break; if (p == NULL) gfc_error ("'%s' at %C is not a member of the '%s' structure", name, sym->name); ! else { ! if (sym->attr.use_assoc && (sym->component_access == ACCESS_PRIVATE ! || p->access == ACCESS_PRIVATE)) { gfc_error ("Component '%s' at %C is a PRIVATE component of '%s'", name, sym->name); ! p = NULL; } } --- 1838,1873 ---- if (strcmp (p->name, name) == 0) break; + if (p == NULL + && sym->attr.extension + && sym->components->ts.type == BT_DERIVED) + { + p = gfc_find_component (sym->components->ts.derived, name); + /* Do not overwrite the error. */ + if (p == NULL) + return p; + } + if (p == NULL) gfc_error ("'%s' at %C is not a member of the '%s' structure", name, sym->name); ! ! else if (sym->attr.use_assoc) { ! if (p->access == ACCESS_PRIVATE) { gfc_error ("Component '%s' at %C is a PRIVATE component of '%s'", name, sym->name); ! return NULL; ! } ! ! /* If there were components given and all components are private, error ! out at this place. */ ! if (p->access != ACCESS_PUBLIC && sym->component_access == ACCESS_PRIVATE) ! { ! gfc_error ("All components of '%s' are PRIVATE in structure" ! " constructor at %C", sym->name); ! return NULL; } } Index: gcc/fortran/decl.c =================================================================== *** gcc/fortran/decl.c (revision 138273) --- gcc/fortran/decl.c (working copy) *************** match_data_constant (gfc_expr **result) *** 367,373 **** return MATCH_ERROR; } else if (sym->attr.flavor == FL_DERIVED) ! return gfc_match_structure_constructor (sym, result); /* Check to see if the value is an initialization array expression. */ if (sym->value->expr_type == EXPR_ARRAY) --- 367,373 ---- return MATCH_ERROR; } else if (sym->attr.flavor == FL_DERIVED) ! return gfc_match_structure_constructor (sym, result, false); /* Check to see if the value is an initialization array expression. */ if (sym->value->expr_type == EXPR_ARRAY) *************** syntax: *** 6250,6255 **** --- 6250,6298 ---- } + /* Check a derived type that is being extended. */ + static gfc_symbol* + check_extended_derived_type (char *name) + { + gfc_symbol *extended; + + if (gfc_find_symbol (name, gfc_current_ns, 1, &extended)) + { + gfc_error ("Ambiguous symbol in TYPE definition at %C"); + return NULL; + } + + if (!extended) + { + gfc_error ("No such symbol in TYPE definition at %C"); + return NULL; + } + + if (extended->attr.flavor != FL_DERIVED) + { + gfc_error ("'%s' in EXTENDS expression at %C is not a " + "derived type", name); + return NULL; + } + + if (extended->attr.is_bind_c) + { + gfc_error ("'%s' cannot be extended at %C because it " + "is BIND(C)", extended->name); + return NULL; + } + + if (extended->attr.sequence) + { + gfc_error ("'%s' cannot be extended at %C because it " + "is a SEQUENCE type", extended->name); + return NULL; + } + + return extended; + } + + /* Match the optional attribute specifiers for a type declaration. Return MATCH_ERROR if an error is encountered in one of the handled attributes (public, private, bind(c)), MATCH_NO if what's found is *************** syntax: *** 6257,6263 **** checking on attribute conflicts needs to be done. */ match ! gfc_get_type_attr_spec (symbol_attribute *attr) { /* See if the derived type is marked as private. */ if (gfc_match (" , private") == MATCH_YES) --- 6300,6306 ---- checking on attribute conflicts needs to be done. */ match ! gfc_get_type_attr_spec (symbol_attribute *attr, char *name) { /* See if the derived type is marked as private. */ if (gfc_match (" , private") == MATCH_YES) *************** gfc_get_type_attr_spec (symbol_attribute *** 6295,6300 **** --- 6338,6349 ---- /* TODO: attr conflicts need to be checked, probably in symbol.c. */ } + else if (name && gfc_match(" , extends ( %n )", name) == MATCH_YES) + { + if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: derived type " + "extended at %C") == FAILURE) + return MATCH_ERROR; + } else return MATCH_NO; *************** match *** 6311,6318 **** --- 6360,6369 ---- gfc_match_derived_decl (void) { char name[GFC_MAX_SYMBOL_LEN + 1]; + char parent[GFC_MAX_SYMBOL_LEN + 1]; symbol_attribute attr; gfc_symbol *sym; + gfc_symbol *extended; match m; match is_type_attr_spec = MATCH_NO; bool seen_attr = false; *************** gfc_match_derived_decl (void) *** 6320,6336 **** if (gfc_current_state () == COMP_DERIVED) return MATCH_NO; gfc_clear_attr (&attr); do { ! is_type_attr_spec = gfc_get_type_attr_spec (&attr); if (is_type_attr_spec == MATCH_ERROR) return MATCH_ERROR; if (is_type_attr_spec == MATCH_YES) seen_attr = true; } while (is_type_attr_spec == MATCH_YES); if (gfc_match (" ::") != MATCH_YES && seen_attr) { gfc_error ("Expected :: in TYPE definition at %C"); --- 6371,6397 ---- if (gfc_current_state () == COMP_DERIVED) return MATCH_NO; + name[0] = '\0'; + parent[0] = '\0'; gfc_clear_attr (&attr); + extended = NULL; do { ! is_type_attr_spec = gfc_get_type_attr_spec (&attr, parent); if (is_type_attr_spec == MATCH_ERROR) return MATCH_ERROR; if (is_type_attr_spec == MATCH_YES) seen_attr = true; } while (is_type_attr_spec == MATCH_YES); + /* Deal with derived type extensions. */ + if (parent[0]) + extended = check_extended_derived_type (parent); + + if (parent[0] && !extended) + return MATCH_ERROR; + if (gfc_match (" ::") != MATCH_YES && seen_attr) { gfc_error ("Expected :: in TYPE definition at %C"); *************** gfc_match_derived_decl (void) *** 6383,6392 **** --- 6444,6477 ---- if (attr.is_bind_c != 0) sym->attr.is_bind_c = attr.is_bind_c; + /* Construct the f2k_derived namespace if it is not yet there. */ if (!sym->f2k_derived) sym->f2k_derived = gfc_get_namespace (NULL, 0); + + if (extended && !sym->components) + { + gfc_component *p; + gfc_symtree *st; + + /* Add the extended derived type as the first component. */ + gfc_add_component (sym, parent, &p); + sym->attr.extension = 1; + extended->refs++; + gfc_set_sym_referenced (extended); + + p->ts.type = BT_DERIVED; + p->ts.derived = extended; + p->initializer = gfc_default_initializer (&p->ts); + + /* Provide the links between the extended type and its extension. */ + if (!extended->f2k_derived) + extended->f2k_derived = gfc_get_namespace (NULL, 0); + st = gfc_new_symtree (&extended->f2k_derived->sym_root, sym->name); + st->n.sym = sym; + } + gfc_new_block = sym; return MATCH_YES; Index: gcc/fortran/gfortran.h =================================================================== *** gcc/fortran/gfortran.h (revision 138273) --- gcc/fortran/gfortran.h (working copy) *************** typedef struct *** 638,643 **** --- 638,644 ---- unsigned untyped:1; /* No implicit type could be found. */ unsigned is_bind_c:1; /* say if is bound to C */ + unsigned extension:1; /* extends a derived type */ /* These flags are both in the typespec and attribute. The attribute list is what gets read from/written to a module file. The typespec *************** typedef struct gfc_symbol *** 1016,1024 **** gfc_formal_arglist *formal; struct gfc_namespace *formal_ns; - - /* The namespace containing type-associated procedure symbols. */ - /* TODO: Make this union with formal? */ struct gfc_namespace *f2k_derived; struct gfc_expr *value; /* Parameter/Initializer value */ --- 1017,1022 ---- Index: gcc/fortran/ChangeLog =================================================================== *** gcc/fortran/ChangeLog (revision 138273) --- gcc/fortran/ChangeLog (working copy) *************** *** 1,3 **** --- 1,42 ---- + 2008-07-29 Paul Thomas <pault@gcc.gnu.org> + + * trans-expr.c (conv_parent_component_references): New function + to build missing parent references. + (gfc_conv_variable): Call it + * symbol.c (gfc_add_component): Check that component name in a + derived type extension does not appear in parent. + (gfc_find_component): For a derived type extension, check if + the component appears in the parent derived type by calling + self. Separate errors for private components and private types. + * decl.c (match_data_constant): Add extra arg to call to + gfc_match_structure_constructor. + (check_extended_derived_type): New function to check that a + parent derived type exists and that it is OK for exension. + (gfc_get_type_attr_spec): Add extra argument 'name' and return + it if extends is specified. + (gfc_match_derived_decl): Match derived type extension and + build a first component of the parent derived type if OK. Add + the f2k namespace if not present. + * gfortran.h : Add the extension attribute. + * module.c : Handle attribute 'extension'. + * match.h : Modify prototypes for gfc_get_type_attr_spec and + gfc_match_structure_constructor. + * primary.c (build_actual_constructor): New function extracted + from gfc_match_structure_constructor and modified to call self + iteratively to build derived type extensions, when f2k named + components are used. + (gfc_match_structure_constructor): Do not throw error for too + many components if a parent type is being handled. Use + gfc_find_component to generate errors for non-existent or + private components. Iteratively call self for derived type + extensions so that parent constructor is built. If extension + and components left over, throw error. + (gfc_match_rvalue): Add extra arg to call to + gfc_match_structure_constructor. + + * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs + are the same symbol, aliassing does not matter. + 2008-07-29 Jan Hubicka <jh@suse.cz> * options.c (gfc_post_options): Do not set flag_no_inline. Index: gcc/fortran/module.c =================================================================== *** gcc/fortran/module.c (revision 138273) --- gcc/fortran/module.c (working copy) *************** typedef enum *** 1648,1654 **** AB_ELEMENTAL, AB_PURE, AB_RECURSIVE, AB_GENERIC, AB_ALWAYS_EXPLICIT, AB_CRAY_POINTER, AB_CRAY_POINTEE, AB_THREADPRIVATE, AB_ALLOC_COMP, AB_POINTER_COMP, AB_PRIVATE_COMP, AB_VALUE, AB_VOLATILE, AB_PROTECTED, ! AB_IS_BIND_C, AB_IS_C_INTEROP, AB_IS_ISO_C, AB_ABSTRACT, AB_ZERO_COMP } ab_attribute; --- 1648,1655 ---- AB_ELEMENTAL, AB_PURE, AB_RECURSIVE, AB_GENERIC, AB_ALWAYS_EXPLICIT, AB_CRAY_POINTER, AB_CRAY_POINTEE, AB_THREADPRIVATE, AB_ALLOC_COMP, AB_POINTER_COMP, AB_PRIVATE_COMP, AB_VALUE, AB_VOLATILE, AB_PROTECTED, ! AB_IS_BIND_C, AB_IS_C_INTEROP, AB_IS_ISO_C, AB_ABSTRACT, AB_ZERO_COMP, ! AB_EXTENSION } ab_attribute; *************** static const mstring attr_bits[] = *** 1688,1693 **** --- 1689,1695 ---- minit ("ZERO_COMP", AB_ZERO_COMP), minit ("PROTECTED", AB_PROTECTED), minit ("ABSTRACT", AB_ABSTRACT), + minit ("EXTENSION", AB_EXTENSION), minit (NULL, -1) }; *************** mio_symbol_attribute (symbol_attribute * *** 1801,1806 **** --- 1803,1810 ---- MIO_NAME (ab_attribute) (AB_PRIVATE_COMP, attr_bits); if (attr->zero_comp) MIO_NAME (ab_attribute) (AB_ZERO_COMP, attr_bits); + if (attr->extension) + MIO_NAME (ab_attribute) (AB_EXTENSION, attr_bits); mio_rparen (); *************** mio_symbol_attribute (symbol_attribute * *** 1919,1924 **** --- 1923,1931 ---- case AB_ZERO_COMP: attr->zero_comp = 1; break; + case AB_EXTENSION: + attr->extension = 1; + break; } } } Index: gcc/fortran/trans-io.c =================================================================== *** gcc/fortran/trans-io.c (revision 138273) --- gcc/fortran/trans-io.c (working copy) *************** *** 1,6 **** /* IO Code translation/library interface ! Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software ! Foundation, Inc. Contributed by Paul Brook This file is part of GCC. --- 1,6 ---- /* IO Code translation/library interface ! Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 ! Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. Index: gcc/fortran/match.h =================================================================== *** gcc/fortran/match.h (revision 138273) --- gcc/fortran/match.h (working copy) *************** gfc_try get_bind_c_idents (void); *** 182,191 **** match gfc_match_bind_c_stmt (void); match gfc_match_suffix (gfc_symbol *, gfc_symbol **); match gfc_match_bind_c (gfc_symbol *, bool); ! match gfc_get_type_attr_spec (symbol_attribute *); /* primary.c. */ ! match gfc_match_structure_constructor (gfc_symbol *, gfc_expr **); match gfc_match_variable (gfc_expr **, int); match gfc_match_equiv_variable (gfc_expr **); match gfc_match_actual_arglist (int, gfc_actual_arglist **); --- 182,191 ---- match gfc_match_bind_c_stmt (void); match gfc_match_suffix (gfc_symbol *, gfc_symbol **); match gfc_match_bind_c (gfc_symbol *, bool); ! match gfc_get_type_attr_spec (symbol_attribute *, char*); /* primary.c. */ ! match gfc_match_structure_constructor (gfc_symbol *, gfc_expr **, bool); match gfc_match_variable (gfc_expr **, int); match gfc_match_equiv_variable (gfc_expr **); match gfc_match_actual_arglist (int, gfc_actual_arglist **); Index: gcc/fortran/primary.c =================================================================== *** gcc/fortran/primary.c (revision 138273) --- gcc/fortran/primary.c (working copy) *************** gfc_free_structure_ctor_component (gfc_s *** 1984,1994 **** gfc_free_expr (comp->val); } ! match ! gfc_match_structure_constructor (gfc_symbol *sym, gfc_expr **result) { - gfc_structure_ctor_component *comp_head, *comp_tail; gfc_structure_ctor_component *comp_iter; gfc_constructor *ctor_head, *ctor_tail; gfc_component *comp; /* Is set NULL when named component is first seen */ gfc_expr *e; --- 1984,2086 ---- gfc_free_expr (comp->val); } ! ! /* Translate the component list into the actual constructor by sorting it in ! the order required; this also checks along the way that each and every ! component actually has an initializer and handles default initializers ! for components without explicit value given. */ ! static gfc_try ! build_actual_constructor (gfc_structure_ctor_component **comp_head, ! gfc_constructor **ctor_head, gfc_symbol *sym) { gfc_structure_ctor_component *comp_iter; + gfc_constructor *ctor_tail = NULL; + gfc_component *comp; + + for (comp = sym->components; comp; comp = comp->next) + { + gfc_structure_ctor_component **next_ptr; + gfc_expr *value = NULL; + + /* Try to find the initializer for the current component by name. */ + next_ptr = comp_head; + for (comp_iter = *comp_head; comp_iter; comp_iter = comp_iter->next) + { + if (!strcmp (comp_iter->name, comp->name)) + break; + next_ptr = &comp_iter->next; + } + + /* If an extension, try building the parent derived type by building + a value expression for the parent derived type and calling self. */ + if (!comp_iter && comp == sym->components && sym->attr.extension) + { + value = gfc_get_expr (); + value->expr_type = EXPR_STRUCTURE; + value->value.constructor = NULL; + value->ts = comp->ts; + value->where = gfc_current_locus; + + if (build_actual_constructor (comp_head, &value->value.constructor, + comp->ts.derived) == FAILURE) + { + gfc_free_expr (value); + return FAILURE; + } + *ctor_head = ctor_tail = gfc_get_constructor (); + ctor_tail->expr = value; + continue; + } + + /* If it was not found, try the default initializer if there's any; + otherwise, it's an error. */ + if (!comp_iter) + { + if (comp->initializer) + { + if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: Structure" + " constructor with missing optional arguments" + " at %C") == FAILURE) + return FAILURE; + value = gfc_copy_expr (comp->initializer); + } + else + { + gfc_error ("No initializer for component '%s' given in the" + " structure constructor at %C!", comp->name); + return FAILURE; + } + } + else + value = comp_iter->val; + + /* Add the value to the constructor chain built. */ + if (ctor_tail) + { + ctor_tail->next = gfc_get_constructor (); + ctor_tail = ctor_tail->next; + } + else + *ctor_head = ctor_tail = gfc_get_constructor (); + gcc_assert (value); + ctor_tail->expr = value; + + /* Remove the entry from the component list. We don't want the expression + value to be free'd, so set it to NULL. */ + if (comp_iter) + { + *next_ptr = comp_iter->next; + comp_iter->val = NULL; + gfc_free_structure_ctor_component (comp_iter); + } + } + return SUCCESS; + } + + match + gfc_match_structure_constructor (gfc_symbol *sym, gfc_expr **result, bool parent) + { + gfc_structure_ctor_component *comp_tail, *comp_head, *comp_iter; gfc_constructor *ctor_head, *ctor_tail; gfc_component *comp; /* Is set NULL when named component is first seen */ gfc_expr *e; *************** gfc_match_structure_constructor (gfc_sym *** 1996,2005 **** match m; const char* last_name = NULL; ! comp_head = comp_tail = NULL; ctor_head = ctor_tail = NULL; ! if (gfc_match_char ('(') != MATCH_YES) goto syntax; where = gfc_current_locus; --- 2088,2097 ---- match m; const char* last_name = NULL; ! comp_tail = comp_head = NULL; ctor_head = ctor_tail = NULL; ! if (!parent && gfc_match_char ('(') != MATCH_YES) goto syntax; where = gfc_current_locus; *************** gfc_match_structure_constructor (gfc_sym *** 2047,2053 **** if (last_name) gfc_error ("Component initializer without name after" " component named %s at %C!", last_name); ! else gfc_error ("Too many components in structure constructor at" " %C!"); goto cleanup; --- 2139,2145 ---- if (last_name) gfc_error ("Component initializer without name after" " component named %s at %C!", last_name); ! else if (!parent) gfc_error ("Too many components in structure constructor at" " %C!"); goto cleanup; *************** gfc_match_structure_constructor (gfc_sym *** 2057,2095 **** strncpy (comp_tail->name, comp->name, GFC_MAX_SYMBOL_LEN + 1); } ! /* Find the current component in the structure definition; this is ! needed to get its access attribute in the private check below. */ if (comp) ! this_comp = comp; else { ! for (comp = sym->components; comp; comp = comp->next) ! if (!strcmp (comp->name, comp_tail->name)) ! { ! this_comp = comp; ! break; ! } comp = NULL; /* Reset needed! */ - - /* Here we can check if a component name is given which does not - correspond to any component of the defined structure. */ - if (!this_comp) - { - gfc_error ("Component '%s' in structure constructor at %C" - " does not correspond to any component in the" - " constructed structure!", comp_tail->name); - goto cleanup; - } } - gcc_assert (this_comp); ! /* Check the current component's access status. */ ! if (sym->attr.use_assoc && this_comp->access == ACCESS_PRIVATE) ! { ! gfc_error ("Component '%s' is PRIVATE in structure constructor" ! " at %C!", comp_tail->name); ! goto cleanup; ! } /* Check if this component is already given a value. */ for (comp_iter = comp_head; comp_iter != comp_tail; --- 2149,2168 ---- strncpy (comp_tail->name, comp->name, GFC_MAX_SYMBOL_LEN + 1); } ! /* Find the current component in the structure definition and check its ! access is not private. */ if (comp) ! this_comp = gfc_find_component (sym, comp->name); else { ! this_comp = gfc_find_component (sym, (const char *)comp_tail->name); comp = NULL; /* Reset needed! */ } ! /* Here we can check if a component name is given which does not ! correspond to any component of the defined structure. */ ! if (!this_comp) ! goto cleanup; /* Check if this component is already given a value. */ for (comp_iter = comp_head; comp_iter != comp_tail; *************** gfc_match_structure_constructor (gfc_sym *** 2111,2199 **** if (m == MATCH_ERROR) goto cleanup; ! if (comp) comp = comp->next; } while (gfc_match_char (',') == MATCH_YES); ! if (gfc_match_char (')') != MATCH_YES) goto syntax; - - /* If there were components given and all components are private, error - out at this place. */ - if (sym->attr.use_assoc && sym->component_access == ACCESS_PRIVATE) - { - gfc_error ("All components of '%s' are PRIVATE in structure" - " constructor at %C", sym->name); - goto cleanup; - } } ! /* Translate the component list into the actual constructor by sorting it in ! the order required; this also checks along the way that each and every ! component actually has an initializer and handles default initializers ! for components without explicit value given. */ ! for (comp = sym->components; comp; comp = comp->next) ! { ! gfc_structure_ctor_component **next_ptr; ! gfc_expr *value = NULL; ! /* Try to find the initializer for the current component by name. */ ! next_ptr = &comp_head; for (comp_iter = comp_head; comp_iter; comp_iter = comp_iter->next) { ! if (!strcmp (comp_iter->name, comp->name)) ! break; ! next_ptr = &comp_iter->next; ! } ! ! /* If it was not found, try the default initializer if there's any; ! otherwise, it's an error. */ ! if (!comp_iter) ! { ! if (comp->initializer) ! { ! if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: Structure" ! " constructor with missing optional arguments" ! " at %C") == FAILURE) ! goto cleanup; ! value = gfc_copy_expr (comp->initializer); ! } ! else ! { ! gfc_error ("No initializer for component '%s' given in the" ! " structure constructor at %C!", comp->name); ! goto cleanup; ! } ! } ! else ! value = comp_iter->val; ! ! /* Add the value to the constructor chain built. */ ! if (ctor_tail) ! { ! ctor_tail->next = gfc_get_constructor (); ! ctor_tail = ctor_tail->next; ! } ! else ! ctor_head = ctor_tail = gfc_get_constructor (); ! gcc_assert (value); ! ctor_tail->expr = value; ! ! /* Remove the entry from the component list. We don't want the expression ! value to be free'd, so set it to NULL. */ ! if (comp_iter) ! { ! *next_ptr = comp_iter->next; ! comp_iter->val = NULL; ! gfc_free_structure_ctor_component (comp_iter); } } ! ! /* No component should be left, as this should have caused an error in the ! loop constructing the component-list (name that does not correspond to any ! component in the structure definition). */ ! gcc_assert (!comp_head); e = gfc_get_expr (); --- 2184,2239 ---- if (m == MATCH_ERROR) goto cleanup; ! /* If not explicitly a parent constructor, gather up the components ! and build one. */ ! if (comp && comp == sym->components ! && sym->attr.extension ! && (comp_tail->val->ts.type != BT_DERIVED ! || ! comp_tail->val->ts.derived != this_comp->ts.derived)) ! { ! gfc_current_locus = where; ! gfc_free_expr (comp_tail->val); ! ! m = gfc_match_structure_constructor (comp->ts.derived, ! &comp_tail->val, true); ! if (m == MATCH_NO) ! goto syntax; ! if (m == MATCH_ERROR) ! goto cleanup; ! } ! ! if (comp) comp = comp->next; + + if (parent && !comp) + break; } + while (gfc_match_char (',') == MATCH_YES); ! if (!parent && gfc_match_char (')') != MATCH_YES) goto syntax; } ! if (build_actual_constructor (&comp_head, &ctor_head, sym) == FAILURE) ! goto cleanup; ! /* No component should be left, as this should have caused an error in the ! loop constructing the component-list (name that does not correspond to any ! component in the structure definition). */ ! if (comp_head && sym->attr.extension) ! { for (comp_iter = comp_head; comp_iter; comp_iter = comp_iter->next) { ! gfc_error ("component '%s' at %L has already been set by a " ! "parent derived type constructor", comp_iter->name, ! &comp_iter->where); } + goto cleanup; } ! else ! gcc_assert (!comp_head); e = gfc_get_expr (); *************** gfc_match_rvalue (gfc_expr **result) *** 2396,2402 **** if (sym == NULL) m = MATCH_ERROR; else ! m = gfc_match_structure_constructor (sym, &e); break; /* If we're here, then the name is known to be the name of a --- 2436,2442 ---- if (sym == NULL) m = MATCH_ERROR; else ! m = gfc_match_structure_constructor (sym, &e, false); break; /* If we're here, then the name is known to be the name of a Index: gcc/testsuite/ChangeLog =================================================================== *** gcc/testsuite/ChangeLog (revision 138273) --- gcc/testsuite/ChangeLog (working copy) *************** *** 1,3 **** --- 1,15 ---- + 2008-07-29 Paul Thomas <pault@gcc.gnu.org> + + * gfortran.dg/extends_1.f03: New test. + * gfortran.dg/extends_2.f03: New test. + * gfortran.dg/extends_3.f03: New test. + * gfortran.dg/extends_4.f03: New test. + * gfortran.dg/extends_5.f03: New test. + * gfortran.dg/extends_6.f03: New test. + * gfortran.dg/private_type_6.f90: Modify error message. + * gfortran.dg/structure_constructor_7.f03: Modify error message. + * gfortran.dg/structure_constructor_8.f03: Modify error message. + 2008-07-29 Richard Guenther <rguenther@suse.de> PR tree-optimization/36945 Index: gcc/testsuite/gfortran.dg/extends_1.f03 =================================================================== *** gcc/testsuite/gfortran.dg/extends_1.f03 (revision 0) --- gcc/testsuite/gfortran.dg/extends_1.f03 (revision 0) *************** *** 0 **** --- 1,73 ---- + ! { dg-do run } + ! A basic functional test of derived type extension. + ! + ! Contributed by Paul Thomas <pault@gcc.gnu.org> + ! + module persons + type :: person + character(24) :: name = "" + integer :: ss = 1 + end type person + end module persons + + module person_education + use persons + type, extends(person) :: education + integer :: attainment = 0 + character(24) :: institution = "" + end type education + end module person_education + + use person_education + type, extends(education) :: service + integer :: personnel_number = 0 + character(24) :: department = "" + end type service + + type, extends(service) :: person_record + type (person_record), pointer :: supervisor => NULL () + end type person_record + + type(person_record), pointer :: recruit, supervisor + + ! Check that references by ultimate component work + + allocate (supervisor) + supervisor%name = "Joe Honcho" + supervisor%ss = 123455 + supervisor%attainment = 100 + supervisor%institution = "Celestial University" + supervisor%personnel_number = 1 + supervisor%department = "Directorate" + + recruit => entry ("John Smith", 123456, 1, "Bog Hill High School", & + 99, "Records", supervisor) + + if (trim (recruit%name) /= "John Smith") call abort + if (recruit%name /= recruit%service%name) call abort + if (recruit%supervisor%ss /= 123455) call abort + if (recruit%supervisor%ss /= supervisor%person%ss) call abort + + deallocate (supervisor) + deallocate (recruit) + contains + function entry (name, ss, attainment, institution, & + personnel_number, department, supervisor) result (new_person) + integer :: ss, attainment, personnel_number + character (*) :: name, institution, department + type (person_record), pointer :: supervisor, new_person + + allocate (new_person) + + ! Check mixtures of references + new_person%person%name = name + new_person%service%education%person%ss = ss + new_person%service%attainment = attainment + new_person%education%institution = institution + new_person%personnel_number = personnel_number + new_person%service%department = department + new_person%supervisor => supervisor + end function + end + + ! { dg-final { cleanup-modules "persons person_education" } } Index: gcc/testsuite/gfortran.dg/extends_2.f03 =================================================================== *** gcc/testsuite/gfortran.dg/extends_2.f03 (revision 0) --- gcc/testsuite/gfortran.dg/extends_2.f03 (revision 0) *************** *** 0 **** --- 1,66 ---- + ! { dg-do run } + ! A test of f95 style constructors with derived type extension. + ! + ! Contributed by Paul Thomas <pault@gcc.gnu.org> + ! + module persons + type :: person + character(24) :: name = "" + integer :: ss = 1 + end type person + end module persons + + module person_education + use persons + type, extends(person) :: education + integer :: attainment = 0 + character(24) :: institution = "" + end type education + end module person_education + + use person_education + type, extends(education) :: service + integer :: personnel_number = 0 + character(24) :: department = "" + end type service + + type, extends(service) :: person_record + type (person_record), pointer :: supervisor => NULL () + end type person_record + + type(person_record), pointer :: recruit, supervisor + + ! Check that simple constructor works + allocate (supervisor) + supervisor%service = service ("Joe Honcho", 123455, 100, & + "Celestial University", 1, & + "Directorate") + + recruit => entry ("John Smith", 123456, 1, "Bog Hill High School", & + 99, "Records", supervisor) + + if (trim (recruit%name) /= "John Smith") call abort + if (recruit%name /= recruit%service%name) call abort + if (recruit%supervisor%ss /= 123455) call abort + if (recruit%supervisor%ss /= supervisor%person%ss) call abort + + deallocate (supervisor) + deallocate (recruit) + contains + function entry (name, ss, attainment, institution, & + personnel_number, department, supervisor) result (new_person) + integer :: ss, attainment, personnel_number + character (*) :: name, institution, department + type (person_record), pointer :: supervisor, new_person + + allocate (new_person) + + ! Check nested constructors + new_person = person_record (education (person (name, ss), & + attainment, institution), & + personnel_number, department, & + supervisor) + end function + end + + ! { dg-final { cleanup-modules "persons person_education" } } Index: gcc/testsuite/gfortran.dg/extends_3.f03 =================================================================== *** gcc/testsuite/gfortran.dg/extends_3.f03 (revision 0) --- gcc/testsuite/gfortran.dg/extends_3.f03 (revision 0) *************** *** 0 **** --- 1,71 ---- + ! { dg-do run } + ! A test of f2k style constructors with derived type extension. + ! + ! Contributed by Paul Thomas <pault@gcc.gnu.org> + ! + module persons + type :: person + character(24) :: name = "" + integer :: ss = 1 + end type person + end module persons + + module person_education + use persons + type, extends(person) :: education + integer :: attainment = 0 + character(24) :: institution = "" + end type education + end module person_education + + use person_education + type, extends(education) :: service + integer :: personnel_number = 0 + character(24) :: department = "" + end type service + + type, extends(service) :: person_record + type (person_record), pointer :: supervisor => NULL () + end type person_record + + type(person_record), pointer :: recruit, supervisor + + ! Check that F2K constructor with missing entries works + allocate (supervisor) + supervisor%service = service (NAME = "Joe Honcho", SS= 123455) + + recruit => entry ("John Smith", 123456, 1, "Bog Hill High School", & + 99, "Records", supervisor) + + if (supervisor%ss /= 123455) call abort + if (trim (supervisor%name) /= "Joe Honcho") call abort + if (trim (supervisor%institution) /= "") call abort + if (supervisor%attainment /= 0) call abort + + if (trim (recruit%name) /= "John Smith") call abort + if (recruit%name /= recruit%service%name) call abort + if (recruit%supervisor%ss /= 123455) call abort + if (recruit%supervisor%ss /= supervisor%person%ss) call abort + + deallocate (supervisor) + deallocate (recruit) + contains + function entry (name, ss, attainment, institution, & + personnel_number, department, supervisor) result (new_person) + integer :: ss, attainment, personnel_number + character (*) :: name, institution, department + type (person_record), pointer :: supervisor, new_person + + allocate (new_person) + + ! Check F2K constructor with order shuffled a bit + new_person = person_record (NAME = name, SS =ss, & + DEPARTMENT = department, & + INSTITUTION = institution, & + PERSONNEL_NUMBER = personnel_number, & + ATTAINMENT = attainment, & + SUPERVISOR = supervisor) + end function + end + + ! { dg-final { cleanup-modules "persons person_education" } } Index: gcc/testsuite/gfortran.dg/extends_4.f03 =================================================================== *** gcc/testsuite/gfortran.dg/extends_4.f03 (revision 0) --- gcc/testsuite/gfortran.dg/extends_4.f03 (revision 0) *************** *** 0 **** --- 1,52 ---- + ! { dg-do run } + ! Check that derived type extension is compatible with renaming + ! the parent type and that allocatable components are OK. At + ! the same time, private type and components are checked. + ! + ! Contributed by Paul Thomas <pault@gcc.gnu.org> + ! + module mymod + type :: a + real, allocatable :: x(:) + integer, private :: ia = 0 + end type a + type :: b + private + real, allocatable :: x(:) + integer :: i + end type b + contains + function set_b () result (res) + type(b) :: res + allocate (res%x(2)) + res%x = [10.0, 20.0] + res%i = 1 + end function + subroutine check_b (arg) + type(b) :: arg + if (any (arg%x /= [10.0, 20.0])) call abort + if (arg%i /= 1) call abort + end subroutine + end module mymod + + use mymod, e => a + type, extends(e) :: f + integer :: if + end type f + type, extends(b) :: d + integer :: id + end type d + + type(f) :: p + type(d) :: q + + p = f (x = [1.0, 2.0], if = 3) + if (any (p%e%x /= [1.0, 2.0])) call abort + + q%b = set_b () + call check_b (q%b) + q = d (b = set_b (), id = 99) + call check_b (q%b) + end + + ! { dg-final { cleanup-modules "persons person_education" } } Index: gcc/testsuite/gfortran.dg/extends_5.f03 =================================================================== *** gcc/testsuite/gfortran.dg/extends_5.f03 (revision 0) --- gcc/testsuite/gfortran.dg/extends_5.f03 (revision 0) *************** *** 0 **** --- 1,27 ---- + ! { dg-do compile } + ! Some errors for derived type extension. + ! + ! Contributed by Paul Thomas <pault@gcc.gnu.org> + ! + module m + use iso_c_binding + type :: date + sequence + integer :: yr, mon + integer,public :: day + end type + type, bind(c) :: dt + integer(c_int) :: yr, mon + integer(c_int) :: day + end type + end module m + + use m + type, extends(date) :: datetime ! { dg-error "because it is a SEQUENCE type" } + end type ! { dg-error "Expecting END PROGRAM" } + + type, extends(dt) :: dt_type ! { dg-error "because it is BIND" } + end type ! { dg-error "Expecting END PROGRAM" } + end + + ! { dg-final { cleanup-modules "m" } } Index: gcc/testsuite/gfortran.dg/extends_6.f03 =================================================================== *** gcc/testsuite/gfortran.dg/extends_6.f03 (revision 0) --- gcc/testsuite/gfortran.dg/extends_6.f03 (revision 0) *************** *** 0 **** --- 1,49 ---- + ! { dg-do compile } + ! Some errors pointed out in the development of the patch. + ! + ! Contributed by Tobias Burnus <burnus@net-b.de> + ! + module m + type :: date + private + integer :: yr, mon + integer,public :: day + end type + type :: dt + integer :: yr, mon + integer :: day + end type + end module m + + use m + type, extends(date) :: datetime + integer :: hr, min, sec + end type + type(datetime) :: o_dt + + type :: one + integer :: i + end type one + + type, extends(one) :: two + real :: r + end type two + + o_dt%day = 5 ! VALID but failed in first version of EXTENDS patch + o_dt%yr = 5 ! { dg-error "All components of 'date' are PRIVATE" } + + t = two(one = one(4), i = 5, r=4.4) ! { dg-error "has already been set" } + + call foo + contains + subroutine foo + use m, date_type => dt + type, extends(date_type) :: dt_type + end type + type (dt_type) :: foo_dt + foo_dt%date_type%day = 1 + foo_dt%dt%day = 1 ! { dg-error "not a member" } + end subroutine + end + + ! { dg-final { cleanup-modules "m" } } Index: gcc/testsuite/gfortran.dg/private_type_6.f90 =================================================================== *** gcc/testsuite/gfortran.dg/private_type_6.f90 (revision 138273) --- gcc/testsuite/gfortran.dg/private_type_6.f90 (working copy) *************** program foo_test *** 19,25 **** TYPE(footype) :: foo TYPE(bartype) :: foo2 foo = footype(1) ! { dg-error "All components of 'footype' are PRIVATE" } ! foo2 = bartype(1,2) ! { dg-error "'dummy2' is PRIVATE" } foo2%dummy2 = 5 ! { dg-error "is a PRIVATE component" } end program foo_test ! { dg-final { cleanup-modules "foomod" } } --- 19,25 ---- TYPE(footype) :: foo TYPE(bartype) :: foo2 foo = footype(1) ! { dg-error "All components of 'footype' are PRIVATE" } ! foo2 = bartype(1,2) ! { dg-error "is a PRIVATE component" } foo2%dummy2 = 5 ! { dg-error "is a PRIVATE component" } end program foo_test ! { dg-final { cleanup-modules "foomod" } } Index: gcc/testsuite/gfortran.dg/structure_constructor_7.f03 =================================================================== *** gcc/testsuite/gfortran.dg/structure_constructor_7.f03 (revision 138273) --- gcc/testsuite/gfortran.dg/structure_constructor_7.f03 (working copy) *************** PROGRAM test *** 13,18 **** TYPE(basics_t) :: basics basics = basics_t (42, 1.5, 1000) ! { dg-error "Too many components" } ! basics = basics_t (42, xxx = 1000) ! { dg-error "Component 'xxx'" } END PROGRAM test --- 13,18 ---- TYPE(basics_t) :: basics basics = basics_t (42, 1.5, 1000) ! { dg-error "Too many components" } ! basics = basics_t (42, xxx = 1000) ! { dg-error "is not a member" } END PROGRAM test Index: gcc/testsuite/gfortran.dg/structure_constructor_8.f03 =================================================================== *** gcc/testsuite/gfortran.dg/structure_constructor_8.f03 (revision 138273) --- gcc/testsuite/gfortran.dg/structure_constructor_8.f03 (working copy) *************** PROGRAM test *** 47,54 **** struct2 = allpriv_t () ! These should fail ! struct1 = haspriv_t (1, 2) ! { dg-error "'b' is PRIVATE" } ! struct1 = haspriv_t (b = 2, a = 1) ! { dg-error "'b' is PRIVATE" } ! This should fail as all components are private struct2 = allpriv_t (5) ! { dg-error "of 'allpriv_t' are PRIVATE" } --- 47,54 ---- struct2 = allpriv_t () ! These should fail ! struct1 = haspriv_t (1, 2) ! { dg-error "is a PRIVATE component" } ! struct1 = haspriv_t (b = 2, a = 1) ! { dg-error "is a PRIVATE component" } ! This should fail as all components are private struct2 = allpriv_t (5) ! { dg-error "of 'allpriv_t' are PRIVATE" } ........ r138277 | sje | 2008-07-29 15:32:32 -0700 (Tue, 29 Jul 2008) | 2 lines * gcc.dg/pr32370.c: Force 64 bits on IA64. ........ r138289 | gccadmin | 2008-07-29 17:16:57 -0700 (Tue, 29 Jul 2008) | 1 line Daily bump. ........ r138291 | amodra | 2008-07-29 19:43:05 -0700 (Tue, 29 Jul 2008) | 5 lines PR target/36955 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls. ........ r138293 | rwild | 2008-07-29 22:28:53 -0700 (Tue, 29 Jul 2008) | 30 lines gcc/ada/ PR documentation/15479 * gnat-style.texi: Remove AdaCore copyright statement and GPL statement for GNAT. Add @copying stanza, use it. Update to GFDL 1.2. Do not list GFDL as Invariant Section, do not list title as Front-Cover Text. * gnat_rm.texi: Likewise. * gnat_ugn.texi: Likewise. gcc/ * doc/cpp.texi: Update to GFDL 1.2. * doc/gcc.texi: Do not list GPL as Invariant Section. * doc/gccint.texi: Likewise. Update copyright years. * doc/install.texi: Update copyright years. gcc/fortran/ * gfc-internals.texi: Update to GFDL 1.2. Do not list GPL as Invariant Section. * gfortran.texi: Likewise. * intrinsic.texi: Do not list GPL as Invariant Section. * invoke.texi: Likewise. Update copyright years. gcc/java/ * gcj.texi: Update copyright years. Do not list GPL as Invariant Section. libgomp/ * libgomp.texi: Update to GFDL 1.2. Update copyright years. Do not list GPL as Invariant Section. ........ r138294 | guerby | 2008-07-29 23:45:39 -0700 (Tue, 29 Jul 2008) | 18 lines gcc/ChangeLog 2008-07-29 Laurent Guerby <laurent@guerby.net> PR ada/5911 * gnattools/Makefile.in: Replace stamp-gnatlib by stamp-gnatlib-rts. gcc/ada/ChangeLog 2008-07-29 Laurent Guerby <laurent@guerby.net> PR ada/5911 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables. Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts. Replace stamp-gnatlib* by stamp-gnatlib*-rts. * gcc-interface/Make-lang.in: Replace stamp-gnatlib2 by stamp-gnatlib2-rts. ........ r138295 | hainque | 2008-07-30 00:44:09 -0700 (Wed, 30 Jul 2008) | 5 lines * scan.c (make_sstring_space): Add explicit conversions of allocator's return value. * fix-header.c (recognized_function): Likewise. ........ r138296 | manu | 2008-07-30 01:30:32 -0700 (Wed, 30 Jul 2008) | 15 lines 2008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 34389 * c-typeck.c (build_binary_op): Encapsulate code into... * c-common.c (shorten_binary_op): ...this new function. (conversion_warning): Use the new function. Handle non-negative constant in bitwise-and. * c-common.h (shorten_binary_op): Declare. cp/ * typeck.c (build_binary_op): Encapsulate code into shorten_binary_op. testsuite/ * gcc.dg/Wconversion-pr34389.c: New. * g++.dg/warn/Wconversion-pr34389.C: New. ........ r138297 | hainque | 2008-07-30 03:13:46 -0700 (Wed, 30 Jul 2008) | 5 lines * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini. * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide __dso_handle explicitly here. ........ r138298 | hainque | 2008-07-30 03:15:19 -0700 (Wed, 30 Jul 2008) | 3 lines Fix date on entry headline. ........ r138300 | bonzini | 2008-07-30 05:09:47 -0700 (Wed, 30 Jul 2008) | 2 lines move wrong gcc/ChangeLog entry to gnattools/ChangeLog ........ r138301 | bonzini | 2008-07-30 05:17:17 -0700 (Wed, 30 Jul 2008) | 55 lines 2008-07-30 Paolo Bonzini <bonzini@gnu.org> * configure.ac: Add makefile fragments for hpux. * Makefile.def (flags_to_pass): Add ADA_CFLAGS. * Makefile.tpl (HOST_EXPORTS): Pass ADA_CFLAGS. * configure: Regenerate. * Makefile.in: Regenerate. config: 2008-07-30 Paolo Bonzini <bonzini@gnu.org> * mh-pa: New, from gcc/config/pa/x-ada. * mh-pa-hpux10: New, from gcc/config/pa/x-ada-hpux10. gcc: 2008-07-30 Paolo Bonzini <bonzini@gnu.org> * configure.ac: Substitute ADA_CFLAGS. * configure: Regenerate. * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files. * Makefile.in: Remove mention of X_* variables. * config/pa/x-ada-hpux10: Remove. * config/pa/x-ada: Remove. * doc/fragments.texi: Update. gcc/ada: 2008-07-30 Paolo Bonzini <bonzini@gnu.org> * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS. (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS. * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS, X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS, ALL_ADA_CFLAGS): Remove. (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS. (GCC_CFLAGS): Remove X_CFLAGS. (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS. (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS. (ADA_CFLAGS): Substitute. gnattools: 2008-07-30 Paolo Bonzini <bonzini@gnu.org> * configure.ac (x_ada_cflags): Remove. (ADA_CFLAGS): Substitute. * configure: Regenerate. * Makefile.in (ADA_CFLAGS): Substitute. (T_ADA_CFLAGS, X_ADA_CFLAGS, ALL_ADA_CFLAGS): Remove. (TOOLS_FLAGS_TO_PASS_1, TOOLS_FLAGS_TO_PASS_1re, TOOLS_FLAGS_TO_PASS_NATIVE, TOOLS_FLAGS_TO_PASS_CROSS): Pass ADA_CFLAGS. ........ r138302 | charlet | 2008-07-30 06:02:21 -0700 (Wed, 30 Jul 2008) | 4 lines 2008-07-30 Robert Dewar <dewar@adacore.com> * make.adb: Minor reformatting ........ r138303 | charlet | 2008-07-30 06:02:30 -0700 (Wed, 30 Jul 2008) | 4 lines 2008-07-30 Robert Dewar <dewar@adacore.com> * mlib-utl.adb: Minor reformatting ........ r138304 | charlet | 2008-07-30 06:02:39 -0700 (Wed, 30 Jul 2008) | 4 lines 2008-07-30 Robert Dewar <dewar@adacore.com> * osint.ads: Minor reformatting ........ r138305 | charlet | 2008-07-30 06:03:32 -0700 (Wed, 30 Jul 2008) | 32 lines 2008-07-30 Jose Ruiz <ruiz@adacore.com> * adaint.c (__gnat_file_exists): Do not use __gnat_stat for RTX. (__main for RTX in RTSS mode): Create this dummy procedure symbol to avoid the use of this symbol from libgcc.a in RTX kernel mode. * cio.c (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call the function RtPrintf for console output. * argv.c Do not use the environ variable for RTX. * gnatlink.adb (gnatlink): The part that handles the --RTS option has been moved before the call to Osint.Add_Default_Search_Dirs in order to take into account the flags in system.ads (RTX_RTSS_Kernel_Module) from the appropriate run time. * targparm.ads (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if target is a RTSS module for RTX. * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for RTX_RTSS_Kernel_Module (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag. * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc exception handling mechanism for Windows and RTX in Win32 mode, but not for RTX in kernel mode (RTSS). (LIBGNAT_SRCS): Remove ada.h ........ r138306 | charlet | 2008-07-30 06:04:41 -0700 (Wed, 30 Jul 2008) | 2 lines Resync ........ r138307 | charlet | 2008-07-30 06:06:45 -0700 (Wed, 30 Jul 2008) | 21 lines 2008-07-30 Doug Rupp <rupp@adacore.com> * gigi.h (build_vms_descriptor64): New function prototype. (fill_vms_descriptor): Modified function prototype. * utils.c (build_vms_descriptor64): New function. * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems. * trans.c (call_to_gnu): Call fill_vms_descriptor with new third argument. * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a 64bit and 32bit descriptor and save the 64bit version as an alternate TREE_TYPE in the parameter. (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the thin pointer. * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros. ........ r138308 | dodji | 2008-07-30 06:07:50 -0700 (Wed, 30 Jul 2008) | 9 lines 2008-07-30 Dodji Seketeli <dseketel@redhat.com> PR c++/36767 * decl2.c (fix_temporary_vars_context_r): New function. (one_static_initialization_or_destruction): Make sure temporary variables part of the initialiser have their DECL_CONTEXT() properly set. ........ r138310 | espindola | 2008-07-30 06:59:58 -0700 (Wed, 30 Jul 2008) | 15 lines 2008-07-30 Rafael Avila de Espindola <espindola@google.com> * final.c (call_from_call_insn): New. (final_scan_insn): Call assemble_external on FUNCTION_DECLs. 2008-07-30 Rafael Avila de Espindola <espindola@google.com> * gcc.dg/visibility-14.c: New test. * gcc.dg/visibility-15.c: New test. * gcc.dg/visibility-16.c: New test. * gcc.dg/visibility-17.c: New test. * gcc.dg/visibility-18.c: New test. * gcc.dg/visibility-19.c: New test. ........ r138313 | bonzini | 2008-07-30 07:57:07 -0700 (Wed, 30 Jul 2008) | 8 lines config: sync with src 2008-07-25 Keith Seitz <keiths@redhat.com> * acinclude.m4: Remove libide, libgui, and all the other Tcl functions. * tcl.m4: New file. ........ r138314 | bonzini | 2008-07-30 08:04:24 -0700 (Wed, 30 Jul 2008) | 2 lines sync with src ........ r138316 | froydnj | 2008-07-30 08:30:59 -0700 (Wed, 30 Jul 2008) | 5 lines PR target/35866 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for vector modes. ........ r138317 | froydnj | 2008-07-30 08:32:34 -0700 (Wed, 30 Jul 2008) | 3 lines * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec instead of NULL_RTVEC. ........ r138318 | rguenth | 2008-07-30 08:43:42 -0700 (Wed, 30 Jul 2008) | 8 lines 2008-07-30 Richard Guenther <rguenther@suse.de> PR tree-optimization/36967 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p. Release defs of statements we remove. * gfortran.dg/pr36967.f: New testcase. ........ r138320 | charlet | 2008-07-30 08:52:36 -0700 (Wed, 30 Jul 2008) | 4 lines 2008-07-30 Robert Dewar <dewar@adacore.com> * gnatlink.adb: Minor reformatting ........ r138321 | charlet | 2008-07-30 08:52:47 -0700 (Wed, 30 Jul 2008) | 7 lines 2008-07-30 Thomas Quinot <quinot@adacore.com> * rtsfind.adb (Check_RPC): Check version consistency even when not generating RCI stubs. Provide more detailed error message in case of mismatch. ........ r138322 | charlet | 2008-07-30 08:52:58 -0700 (Wed, 30 Jul 2008) | 11 lines 2008-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute as a actual in an instance, check for a missing attribute to prevent program_error on an illegal program. * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program error if primitive is not found, so that exception can be handled elsewhere on illegal programs. ........ r138323 | charlet | 2008-07-30 08:53:08 -0700 (Wed, 30 Jul 2008) | 4 lines 2008-07-30 Robert Dewar <dewar@adacore.com> * uintp.adb (UI_GCD): Fix potential overflow ........ r138324 | charlet | 2008-07-30 08:53:21 -0700 (Wed, 30 Jul 2008) | 59 lines 2008-07-30 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb: Flag245 is now used. (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion check to include functions. (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to include functions. (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive to the list of displayed flags. * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and Wrapped_Entity. These two flags are now present in functions. New flag Is_Private_Primitive. (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. * exp_ch9.adb: (Build_Wrapper_Bodies): New subprogram. (Build_Wrapper_Body): The spec and body have been moved to in Build_Wrapper_ Bodies. Code cleanup. (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup. Wrappers are now generated for primitives declared between the private and full view of a concurrent type that implements an interface. (Build_Wrapper_Specs): New subprogram. (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body creation mechanism with a call to Build_Wrapper_Bodies. (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the wrapper spec creation mechanism with a call to Build_Wrapper_Specs. (Expand_N_Task_Body): Replace the wrapper body creation mechanism with a call to Build_Wrapper_Bodies. (Expand_N_Task_Type_Declaration): Replace the wrapper spec creation mechanism with a call to Build_Wrapper_Specs. (Is_Private_Primitive_Subprogram): New subprogram. (Overriding_Possible): Code cleanup. (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup. * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9. * sem_ch3.adb: Add with and use clause for Exp_Ch9. (Process_Full_View): Build wrapper specs for all primitives that belong to a private view completed by a concurrent type implementing an interface. * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram is a primitive of a concurrent type with a private view that implements an interface, try to find the proper spec. (Analyze_Subprogram_Declaration): Mark a subprogram as a private primitive if the type of its first parameter is a non-generic tagged private type. (Analyze_Subprogram_Specification): Code reformatting. (Disambiguate_Spec): New routine. (Find_Corresponding_Spec): Add a flag to controll the output of errors. (Is_Private_Concurrent_Primitive): New routine. * sem_ch6.ads: (Find_Corresponding_Spec): Add a formal to control the output of errors. ........ r138325 | charlet | 2008-07-30 08:56:34 -0700 (Wed, 30 Jul 2008) | 2 lines Resync. ........ r138327 | andrewjenner | 2008-07-30 09:28:01 -0700 (Wed, 30 Jul 2008) | 12 lines * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New function. (arm_compute_initial_elimination_offset): Use it. (arm_compute_save_reg_mask): Include static chain save slot when calculating alignment. (arm_get_frame_offsets): Ditto. (thumb1_compute_save_reg_mask): Ensure we have a low register saved that we can use to decrement the stack when the stack decrement could be too big for an immediate value in a single insn. (thumb1_expand_prologue): Avoid using r12 for stack decrement. ........ r138328 | charlet | 2008-07-30 10:38:04 -0700 (Wed, 30 Jul 2008) | 4 lines 2008-07-30 Robert Dewar <dewar@adacore.com> * exp_ch9.adb: Minor reformatting ........ r138329 | charlet | 2008-07-30 10:38:16 -0700 (Wed, 30 Jul 2008) | 8 lines 2008-07-30 Robert Dewar <dewar@adacore.com> * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised if no primitive operation is found. * exp_util.adb: (Find_Prim_Op): Add comments for previous change ........ r138330 | charlet | 2008-07-30 10:38:25 -0700 (Wed, 30 Jul 2008) | 4 lines 2008-07-30 Robert Dewar <dewar@adacore.com> * sem_ch8.adb: Minor reformatting ........ r138331 | charlet | 2008-07-30 10:38:55 -0700 (Wed, 30 Jul 2008) | 11 lines 2008-07-30 Laurent Pautet <pautet@adacore.com> * g-pehage.adb: Remove a limitation on the length of the words handled by the minimal perfect hash function generator. * g-pehage.ads: Detail the use of subprograms Insert, Initialize, Compute and Finalize. Fix some typos. ........ r138332 | charlet | 2008-07-30 10:39:56 -0700 (Wed, 30 Jul 2008) | 2 lines Resync. ........ r138333 | schwab | 2008-07-30 11:22:50 -0700 (Wed, 30 Jul 2008) | 5 lines PR rtl-optimization/36929 * dse.c (replace_inc_dec): Use emit_insn_before instead of add_insn_before and fix argument order. (replace_inc_dec_mem): Handle NULL rtx. ........ r138335 | hjl | 2008-07-30 12:20:43 -0700 (Wed, 30 Jul 2008) | 166 lines 2008-07-30 Joey Ye <joey.ye@intel.com> H.J. Lu <hongjiu.lu@intel.com> * builtins.c (expand_builtin_setjmp_receiver): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. (expand_builtin_apply_args_1): Likewise. (expand_builtin_longjmp): Need DRAP for stack alignment. (expand_builtin_apply): Likewise. * caller-save.c (setup_save_areas): Call assign_stack_local_1 instead of assign_stack_local to allow alignment reduction. * calls.c (emit_call_1): Need DRAP for stack alignment if return pops. (expand_call): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. * stmt.c (expand_nl_goto_receiver): Likewise. * cfgexpand.c (get_decl_align_unit): Estimate stack variable alignment and store to stack_alignment_estimated and max_used_stack_slot_alignment. (expand_one_var): Likewise. (expand_stack_alignment): New function. (tree_expand_cfg): Initialize max_used_stack_slot_alignment and stack_alignment_estimated fields in rtl_data. Call expand_stack_alignment at end. * defaults.h (INCOMING_STACK_BOUNDARY): New. (MAX_STACK_ALIGNMENT): Likewise. (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise. (SUPPORTS_STACK_ALIGNMENT): Likewise. * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for stack alignment when generating virtual registers. * function.c (assign_stack_local): Renamed to ... (assign_stack_local_1): This. Add a parameter to indicate if it is OK to reduce alignment. (assign_stack_local): Use it. (instantiate_new_reg): Instantiate virtual incoming args rtx to vDRAP if stack realignment and DRAP is needed. (assign_parms): Collect parameter/return type alignment and contribute to stack_alignment_estimated. (locate_and_pad_parm): Likewise. (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. * function.h (rtl_data): Add new field drap_reg, max_used_stack_slot_alignment, stack_alignment_estimated, stack_realign_needed, need_drap, stack_realign_processed and stack_realign_finalized. (stack_realign_fp): New macro. (stack_realign_drap): Likewise. * global.c (compute_regsets): Frame pointer is needed when stack is realigned. Can eliminate frame pointer when stack is realigned and dynamic realigned argument pointer isn't used. * reload1.c (update_eliminables): Frame pointer is needed when stack is realigned. (init_elim_table): Can eliminate frame pointer when stack is realigned and dynamic realigned argument pointer isn't used. * rtl.h (assign_stack_local_1): Declare new funtion. * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New. (TARGET_GET_DRAP_RTX): Likewise. (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and TARGET_GET_DRAP_RTX. * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx. * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace STACK_BOUNDARY with MAX_STACK_ALIGNMENT. 2008-07-30 Xuepeng Guo <xuepeng.guo@intel.com> H.J. Lu <hongjiu.lu@intel.com> * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg, vdrap_reg, stack_realign and drap_reg_saved. (add_cfi): Don't allow redefining CFA when DRAP is used. (reg_save): Handle stack alignment. (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack alignment. Don't generate DWARF information for (set fp sp) when DRAP is used. (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg to INVALID_REGNUM. (int_loc_descriptor): Move prototype forward. Also define if DWARF2_UNWIND_INFO is true. (output_cfa_loc): Handle DW_CFA_expression. (build_cfa_aligned_loc): New. (based_loc_descr): Update assert for stack realign. For local variables, use sp+offset when stack is aligned without drap and fp+offset when stack is aligned with drap. For arguments, use cfa+offset when drap is used to align stack. 2008-07-30 Joey Ye <joey.ye@intel.com> H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_force_align_arg_pointer_string): Break long line. (ix86_gen_andsp): New. (ix86_user_incoming_stack_boundary): Likewise. (ix86_default_incoming_stack_boundary): Likewise. (ix86_incoming_stack_boundary): Likewise. (ix86_can_eliminate): Likewise. (find_drap_reg): Likewise. (ix86_update_stack_boundary): Likewise. (ix86_get_drap_rtx): Likewise. (ix86_finalize_stack_realign_flags): Likewise. (TARGET_UPDATE_STACK_BOUNDARY): Likewise. (TARGET_GET_DRAP_RTX): Likewise. (override_options): Overide option value for new options. (ix86_function_ok_for_sibcall): Remove check for force_align_arg_pointer. (ix86_handle_cconv_attribute): Likewise. (ix86_function_regparm): Likewise. (setup_incoming_varargs_64): Don't set stack_alignment_needed here. (ix86_va_start): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. (ix86_select_alt_pic_regnum): Check DRAP register. (ix86_save_reg): Replace force_align_arg_pointer with drap_reg. (ix86_compute_frame_layout): Compute frame layout wrt stack realignment. (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx. (ix86_expand_prologue): Decide if stack realignment is needed and generate prologue code accordingly. (ix86_expand_epilogue): Generate epilogue code wrt stack realignment is really needed or not. * config/i386/i386.h (MAIN_STACK_BOUNDARY): New. (ABI_STACK_BOUNDARY): Likewise. (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise. (STACK_REALIGN_DEFAULT): Likewise. (INCOMING_STACK_BOUNDARY): Likewise. (MAX_STACK_ALIGNMENT): Likewise. (ix86_incoming_stack_boundary): Likewise. (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed. (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG. (CAN_ELIMINATE): Defined with ix86_can_eliminate. (machine_function): Remove force_align_arg_pointer. * config/i386/i386.md (BX_REG): New. (R13_REG): Likewise. * config/i386/i386.opt (mforce_drap): New. (mincoming-stack-boundary): Likewise. (mstackrealign): Add Init(-1). * config/i386/i386-protos.h (ix86_can_eliminate): New 2008-07-30 H.J. Lu <hongjiu.lu@intel.com> * doc/extend.texi: Update force_align_arg_pointer. * doc/invoke.texi: Document -mincoming-stack-boundary. Update -mstackrealign. * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro. (INCOMING_STACK_BOUNDARY): Likewise. (TARGET_UPDATE_STACK_BOUNDARY): New target hook. (TARGET_GET_DRAP_RTX): Likewise. ........ r138336 | hjl | 2008-07-30 12:24:02 -0700 (Wed, 30 Jul 2008) | 90 lines 2008-07-30 H.J. Lu <hongjiu.lu@intel.com> Joey Ye <joey.ye@intel.com> * gcc.dg/dfp/func-vararg-alternate-d128-2.c: New. * gcc.dg/dfp/func-vararg-mixed-2.c: Likewise. * gcc.dg/torture/stackalign/alloca-1.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-1.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-3.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-4.c: Likewise. * gcc.dg/torture/stackalign/builtin-return-1.c: Likewise. * gcc.dg/torture/stackalign/check.h: Likewise. * gcc.dg/torture/stackalign/comp-goto-1.c: Likewise. * gcc.dg/torture/stackalign/fastcall-1.c: Likewise. * gcc.dg/torture/stackalign/global-1.c: Likewise. * gcc.dg/torture/stackalign/inline-1.c: Likewise. * gcc.dg/torture/stackalign/inline-2.c: Likewise. * gcc.dg/torture/stackalign/nested-1.c: Likewise. * gcc.dg/torture/stackalign/nested-2.c: Likewise. * gcc.dg/torture/stackalign/nested-3.c: Likewise. * gcc.dg/torture/stackalign/nested-4.c: Likewise. * gcc.dg/torture/stackalign/nested-5.c: Likewise. * gcc.dg/torture/stackalign/nested-6.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-1.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-2.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-3.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-4.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-5.c: Likewise. * gcc.dg/torture/stackalign/pr16660-1.c: Likewise. * gcc.dg/torture/stackalign/pr16660-2.c: Likewise. * gcc.dg/torture/stackalign/pr16660-3.c: Likewise. * gcc.dg/torture/stackalign/regparm-1.c: Likewise. * gcc.dg/torture/stackalign/ret-struct-1.c: Likewise. * gcc.dg/torture/stackalign/setjmp-1.c: Likewise. * gcc.dg/torture/stackalign/setjmp-2.c: Likewise. * gcc.dg/torture/stackalign/setjmp-3.c: Likewise. * gcc.dg/torture/stackalign/setjmp-4.c: Likewise. * gcc.dg/torture/stackalign/sibcall-1.c: Likewise. * gcc.dg/torture/stackalign/stackalign.exp: Likewise. * gcc.dg/torture/stackalign/struct-1.c: Likewise. * gcc.dg/torture/stackalign/vararg-1.c: Likewise. * gcc.dg/torture/stackalign/vararg-2.c: Likewise. * gcc.target/i386/align-main-1.c: Likewise. * gcc.target/i386/align-main-2.c: Likewise. * gcc.target/i386/pr32000-2.c: Likewise. * gcc.target/i386/stackalign/asm-1.c: Likewise. * gcc.target/i386/stackalign/return-1.c: Likewise. * gcc.target/i386/stackalign/return-2.c: Likewise. * gcc.target/i386/stackalign/return-3.c: Likewise. * gcc.target/i386/stackalign/return-4.c: Likewise. * gcc.target/i386/stackalign/return-5.c: Likewise. * gcc.target/i386/stackalign/return-6.c: Likewise. * gcc.target/i386/stackalign/stackalign.exp: Likewise. * g++.dg/torture/stackalign/check.h: Likewise. * g++.dg/torture/stackalign/eh-alloca-1.C: Likewise. * g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise. * g++.dg/torture/stackalign/eh-global-1.C: Likewise. * g++.dg/torture/stackalign/eh-inline-1.C: Likewise. * g++.dg/torture/stackalign/eh-inline-2.C: Likewise. * g++.dg/torture/stackalign/eh-vararg-1.C: Likewise. * g++.dg/torture/stackalign/eh-vararg-2.C: Likewise. * g++.dg/torture/stackalign/stackalign.exp: Likewise. * g++.dg/torture/stackalign/stdcall-1.C: Likewise. * g++.dg/torture/stackalign/test-unwind.h: Likewise. * g++.dg/torture/stackalign/throw-1.C: Likewise. * g++.dg/torture/stackalign/throw-2.C: Likewise. * g++.dg/torture/stackalign/throw-3.C: Likewise. * g++.dg/torture/stackalign/throw-4.C: Likewise. * g++.dg/torture/stackalign/unwind-0.C: Likewise. * g++.dg/torture/stackalign/unwind-1.C: Likewise. * g++.dg/torture/stackalign/unwind-2.C: Likewise. * g++.dg/torture/stackalign/unwind-3.C: Likewise. * g++.dg/torture/stackalign/unwind-4.C: Likewise. * g++.dg/torture/stackalign/unwind-5.C: Likewise. * g++.dg/torture/stackalign/unwind-6.C: Likewise. * gcc.target/i386/20060512-1.c: Add -mpreferred-stack-boundary=4. (main): Move "popl" after check. * gcc.target/i386/20060512-3.c: Likewise. * gcc.target/i386/20060512-2.c: Add -mpreferred-stack-boundary=4. Remove dg-error. * gcc.target/i386/20060512-4.c: Add -mpreferred-stack-boundary=4. Remove dg-warning. * lib/target-supports.exp (check_effective_target_unaligned_stack): Always return 0. (check_effective_target_automatic_stack_alignment): New. ........ r138340 | hjl | 2008-07-30 13:19:53 -0700 (Wed, 30 Jul 2008) | 6 lines 2008-07-30 H.J. Lu <hongjiu.lu@intel.com> * builtins.c (std_gimplify_va_arg_expr): Replace PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT. * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. ........ r138347 | espindola | 2008-07-30 16:23:33 -0700 (Wed, 30 Jul 2008) | 6 lines 2008-07-30 Rafael Avila de Espindola <espindola@google.com> PR 36974 * final.c (call_from_call_insn): Handle COND_EXEC ........ r138348 | ebotcazou | 2008-07-30 16:54:56 -0700 (Wed, 30 Jul 2008) | 20 lines PR ada/36554 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE. ada/ * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi. * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>: Set precision to 1 for subtype of BOOLEAN_TYPE. (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE. (make_type_from_size): Deal with BOOLEAN_TYPE. * gcc-interface/misc.c (gnat_print_type): Likewise. * gcc-interface/trans.c (gigi): Take new standard_boolean parameter. Set boolean_type_node as its translation in the table, as well as boolean_false_node for False and boolean_true_node for True. * gcc-interface/utils.c (gnat_init_decl_processing): Create custom 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM. (create_param_decl): Deal with BOOLEAN_TYPE. (build_vms_descriptor): Likewise. (build_vms_descriptor64): Likewise. (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE. ........ r138351 | gccadmin | 2008-07-30 17:16:40 -0700 (Wed, 30 Jul 2008) | 1 line Daily bump. ........ r138353 | aaronwl | 2008-07-30 17:18:07 -0700 (Wed, 30 Jul 2008) | 6 lines 2008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com> * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]: Add s-winext.o. ........ r138355 | jason | 2008-07-30 22:07:10 -0700 (Wed, 30 Jul 2008) | 9 lines PR c++/11309 * tree.c (build_aggr_init_expr): Split out... (build_cplus_new): ...from here. (stabilize_init): Don't mess with AGGR_INIT_EXPR either. * init.c (build_new_1): new T() means value-initialization, not default-initialization. (build_vec_init): Likewise. (build_value_init_1): Use build_aggr_init_expr. ........ r138356 | charlet | 2008-07-31 00:51:32 -0700 (Thu, 31 Jul 2008) | 5 lines 2008-07-31 Robert Dewar <dewar@adacore.com> * g-pehage.adb, g-pehage.ads: Minor reformatting ........ r138357 | charlet | 2008-07-31 00:51:44 -0700 (Thu, 31 Jul 2008) | 2 lines * mlib-utl.ads, prj-makr.ads: Add comments. ........ r138358 | charlet | 2008-07-31 00:52:12 -0700 (Thu, 31 Jul 2008) | 2 lines Resync ........ r138360 | jakub | 2008-07-31 00:59:18 -0700 (Thu, 31 Jul 2008) | 9 lines PR preprocessor/36649 * c-pch.c (c_common_read_pch): Save and restore line_table->trace_includes across PCH restore. * gcc.dg/pch/cpp-3.c: New test. * gcc.dg/pch/cpp-3.hs: New file. * gcc.dg/pch/cpp-3a.h: New file. * gcc.dg/pch/cpp-3b.h: New file. ........ r138361 | jakub | 2008-07-31 01:01:25 -0700 (Thu, 31 Jul 2008) | 9 lines PR debug/36278 * dwarf2out.c (get_context_die): New function. (force_decl_die, force_type_die): Use it. (dwarf2out_imported_module_or_decl): Likewise. If base_type_die returns NULL, force generation of DW_TAG_typedef and put that into DW_AT_import. * g++.dg/debug/namespace2.C: New test. ........ r138362 | jakub | 2008-07-31 01:02:49 -0700 (Thu, 31 Jul 2008) | 8 lines PR c/36970 * builtins.c (maybe_emit_free_warning): New function. (expand_builtin): Process BUILT_IN_FREE even at -O0. Call maybe_emit_free_warning for BUILT_IN_FREE. * gcc.dg/free-1.c: New test. * gcc.dg/free-2.c: New test. ........ r138363 | charlet | 2008-07-31 01:17:03 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Robert Dewar <dewar@adacore.com> * mlib-utl.ads: Minor reformatting ........ r138364 | charlet | 2008-07-31 01:17:31 -0700 (Thu, 31 Jul 2008) | 11 lines 2008-07-31 Ed Schonberg <schonberg@adacore.com> sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved from context. This attribute must be usable in Ada95 mode. The attribute can appear in the body of a function marked Inline_Always, but in this case the postocondition is not enforced. sem_prag.adb (Check_Precondition_Postcondition): within the expansion of an inlined call pre- and postconditions are legal ........ r138365 | charlet | 2008-07-31 01:18:53 -0700 (Thu, 31 Jul 2008) | 5 lines 2008-07-31 Vincent Celier <celier@adacore.com> * prj.adb, clean.adb, prj-nmsc.adb, prj.ads: Remove declarations that were for gprmake only ........ r138366 | charlet | 2008-07-31 01:19:24 -0700 (Thu, 31 Jul 2008) | 8 lines 2008-07-31 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Update -gnatN documentation. * gnat_rm.texi: Add note about pre/postcondition pragmas not checked in conjunction with front-end inlining. ........ r138367 | charlet | 2008-07-31 01:30:58 -0700 (Thu, 31 Jul 2008) | 2 lines Resync ........ r138370 | charlet | 2008-07-31 02:42:14 -0700 (Thu, 31 Jul 2008) | 10 lines 2008-07-31 Robert Dewar <dewar@adacore.com> * einfo.adb (Spec_PPC): Now defined for generic subprograms * einfo.ads (Spec_PPC): Now defined for generic subprograms * sem_prag.adb (Check_Precondition_Postcondition): Handle generic subprogram case ........ r138371 | charlet | 2008-07-31 02:42:39 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Vincent Celier <celier@adacore.com> * s-os_lib.adb: Minor comment fix ........ r138372 | charlet | 2008-07-31 02:42:51 -0700 (Thu, 31 Jul 2008) | 13 lines 2008-07-31 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis, transfer pre/postconditions from generic copy to original tree, so that they will appear in each instance. (Process_PPCs): Do not transform postconditions into a procedure in a generic context, to prevent double expansion of check pragmas. * sem_attr.adb: In an instance, the prefix of the 'result attribute can be the renaming of the current instance, so check validity of the name accordingly. ........ r138373 | charlet | 2008-07-31 02:43:09 -0700 (Thu, 31 Jul 2008) | 2 lines Resync ........ r138374 | charlet | 2008-07-31 02:46:03 -0700 (Thu, 31 Jul 2008) | 2 lines * gnat.dg/specs/genericppc.ads: New test ........ r138375 | charlet | 2008-07-31 03:25:05 -0700 (Thu, 31 Jul 2008) | 2 lines * mlib-utl.ads: Fix typo. ........ r138376 | rguenth | 2008-07-31 03:25:11 -0700 (Thu, 31 Jul 2008) | 36 lines 2008-07-31 Richard Guenther <rguenther@suse.de> * passes.c (init_optimization_passes): Always call pass_early_warn_uninitialized. * opts.c (decode_options): Do not warn about -Wuninitialized at -O0. * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0. * doc/passes.texi (Warn for uninitialized variables): Adjust. * gcc.dg/uninit-1-O0.c: New testcase. * gcc.dg/uninit-2-O0.c: Likewise. * gcc.dg/uninit-3-O0.c: Likewise. * gcc.dg/uninit-4-O0.c: Likewise. * gcc.dg/uninit-5-O0.c: Likewise. * gcc.dg/uninit-6-O0.c: Likewise. * gcc.dg/uninit-8-O0.c: Likewise. * gcc.dg/uninit-9-O0.c: Likewise. * gcc.dg/uninit-A-O0.c: Likewise. * gcc.dg/uninit-B-O0.c: Likewise. * gcc.dg/uninit-C-O0.c: Likewise. * gcc.dg/uninit-D-O0.c: Likewise. * gcc.dg/uninit-E-O0.c: Likewise. * gcc.dg/uninit-F-O0.c: Likewise. * gcc.dg/uninit-G-O0.c: Likewise. * gcc.dg/uninit-H-O0.c: Likewise. * gcc.dg/uninit-I-O0.c: Likewise. * gcc.dg/uninit-10-O0.c: Likewise. * gcc.dg/uninit-11-O0.c: Likewise. * gcc.dg/uninit-12-O0.c: Likewise. * gcc.dg/uninit-13-O0.c: Likewise. * gcc.dg/uninit-14-O0.c: Likewise. * gcc.dg/uninit-15-O0.c: Likewise. * gcc.dg/Wall.c: Avoid uninitialized warning. * gcc.dg/Wno-all.c: Likewise. * gcc.dg/pr3074-1.c: Likewise. ........ r138377 | charlet | 2008-07-31 03:25:14 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Robert Dewar <dewar@adacore.com> * sem_ch12.adb: Minor reformatting ........ r138378 | charlet | 2008-07-31 03:25:35 -0700 (Thu, 31 Jul 2008) | 7 lines 2008-07-31 Sergey Rybin <rybin@adacore.com> * gnat_ugn.texi: Change the description of the Overly_Nested_Control_Structures: now the rule always requires a positive parameter for '+R' option ........ r138379 | charlet | 2008-07-31 03:25:50 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Thomas Quinot <quinot@adacore.com> * g-pehage.adb: Minor reformatting ........ r138380 | charlet | 2008-07-31 03:26:05 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Pascal Obry <obry@adacore.com> * s-finimp.ads: Minor reformatting. ........ r138381 | charlet | 2008-07-31 03:26:12 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Vincent Celier <celier@adacore.com> * s-regexp.ads: Minor comment fix ........ r138382 | charlet | 2008-07-31 03:26:43 -0700 (Thu, 31 Jul 2008) | 3 lines * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off), so that we can compile this file successfully with -gnatc. ........ r138383 | charlet | 2008-07-31 03:27:04 -0700 (Thu, 31 Jul 2008) | 10 lines 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead of the type when looking for stream subprograms for type String, Wide_String and Wide_Wide_String. * s-ststop.adb: Change the initialization expression of constant Use_Block_IO. ........ r138384 | charlet | 2008-07-31 03:27:20 -0700 (Thu, 31 Jul 2008) | 26 lines 2008-07-31 Geert Bosch <bosch@adacore.com> * arit64.c: New file implementing __gnat_mulv64 signed integer multiplication with overflow checking * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi * gcc-interface/gigi.h: (standard_types): Add ADT_mulv64_decl (mulv64_decl): Define subprogram declaration for __gnat_mulv64 * gcc-interface/utils.c: (init_gigi_decls): Add initialization of mulv64_decl * gcc-interface/trans.c: (build_unary_op_trapv): New function (build_binary_op_trapv): New function (gnat_to_gnu): Use the above functions instead of build_{unary,binary}_op * gcc-interface/Makefile.in (LIBGNAT_SRCS): Add arit64.c (LIBGNAT_OBJS): Add arit64.o ........ r138385 | charlet | 2008-07-31 03:27:30 -0700 (Thu, 31 Jul 2008) | 6 lines 2008-07-31 Vincent Celier <celier@adacore.com> * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or Linker'Default_Switches are declared. Warn if they are declared. ........ r138386 | charlet | 2008-07-31 03:27:42 -0700 (Thu, 31 Jul 2008) | 8 lines 2008-07-31 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use Insert_Actions to place the pointer declaration in the code, rather than Insert_Before_And_Analyze, so that insertions of temporaries are kept in the proper order when transient scopes are present. ........ r138387 | charlet | 2008-07-31 04:04:00 -0700 (Thu, 31 Jul 2008) | 12 lines 2008-07-31 Vincent Celier <celier@adacore.com> * prj-nmsc.adb: (Record_Ada_Source): Do not set Data.Sources, component has been removed * prj.adb: Remove component Sources in record Project_Data * prj.ads: Remove component Sources in record Project_Data * sinput.ads, prj-util.ads: Minor reformatting ........ r138388 | charlet | 2008-07-31 04:04:10 -0700 (Thu, 31 Jul 2008) | 18 lines 2008-07-31 Gary Dismukes <dismukes@adacore.com> * exp_attr.adb (Enclosing_Object): New function local to handling of access attributes, for retrieving the innermost enclosing object prefix of a compound name. (Expand_N_Attribute_Reference, N_Attribute_Access): In the case where an Access attribute has a prefix that is a dereference of an access parameter (or the prefix is a subcomponent selected from such a dereference), apply an accessibility check to the access parameter. Replaces code that rewrote the prefix as a type conversion (and that didn't handle subcomponent cases). Also, this is now only applied in the case of 'Access. * exp_ch6.adb (Expand_Call): Add handling for the case of an access discriminant passed as an actual to an access formal, passing the Object_Access_Level of the object containing the access discriminant. ........ r138389 | charlet | 2008-07-31 05:31:12 -0700 (Thu, 31 Jul 2008) | 2 lines * gnat.dg/missing_acc_check.adb: New test. ........ r138390 | charlet | 2008-07-31 05:37:04 -0700 (Thu, 31 Jul 2008) | 6 lines 2008-07-31 Bob Duff <duff@adacore.com> * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was recognized as two end-of-lines, but it should be just one. ........ r138391 | charlet | 2008-07-31 05:37:14 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Thomas Quinot <quinot@adacore.com> * exp_ch9.adb: Minor reformatting ........ r138392 | charlet | 2008-07-31 05:37:24 -0700 (Thu, 31 Jul 2008) | 5 lines 2008-07-31 Thomas Quinot <quinot@adacore.com> * tbuild.ads: Fix several occurrences of incorrectly referring to Name_Find as Find_Name. ........ r138393 | charlet | 2008-07-31 05:37:33 -0700 (Thu, 31 Jul 2008) | 7 lines 2008-07-31 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component and the context is an object declaration with non-static bounds, treat the aggregate as non-static. ........ r138394 | charlet | 2008-07-31 05:37:42 -0700 (Thu, 31 Jul 2008) | 11 lines 2008-07-31 Vincent Celier <celier@adacore.com> * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb: Move back spec of Parse_Single_Project to body, as it is not called outside of package Prj.Part. (Project_Data): Remove components Linker_Name, Linker_Path and Minimum_Linker_Options as they are no longer set. Remove function There_Are_Ada_Sources from package Prj and move code in the only place it was used, in Prj.Env.Set_Ada_Paths. ........ r138395 | charlet | 2008-07-31 05:40:15 -0700 (Thu, 31 Jul 2008) | 2 lines Resync. ........ r138396 | charlet | 2008-07-31 05:41:23 -0700 (Thu, 31 Jul 2008) | 2 lines Resync. ........ r138397 | hjl | 2008-07-31 05:43:34 -0700 (Thu, 31 Jul 2008) | 5 lines 2008-07-31 H.J. Lu <hongjiu.lu@intel.com> * gcc.dg/torture/stackalign/pr16660-1.c: Include "check.h". (f): Align to 64 byte. Use check instead of asm statement. ........ r138398 | charlet | 2008-07-31 05:46:11 -0700 (Thu, 31 Jul 2008) | 6 lines 2008-07-31 Vincent Celier <celier@adacore.com> * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails, return the empty string, instead of raising Constraint_Error. ........ r138399 | charlet | 2008-07-31 05:46:23 -0700 (Thu, 31 Jul 2008) | 22 lines 2008-07-31 Gary Dismukes <dismukes@adacore.com> * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node. * checks.adb (Apply_Accessibility_Check): Insert the check on Insert_Node. * exp_attr.adb: (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node to new parameter Insert_Node on call to Apply_Accessibility_Check. Necessary to distinguish the insertion node because the dereferenced formal may come from a rename, but the check must be inserted in front of the attribute. * exp_ch4.adb: (Expand_N_Allocator): Pass actual for new Insert_Node parameter on call to Apply_Accessibility_Check. (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter on call to Apply_Accessibility_Check. Minor reformatting ........ r138400 | charlet | 2008-07-31 05:46:35 -0700 (Thu, 31 Jul 2008) | 17 lines 2008-07-31 Javier Miranda <miranda@adacore.com> * sem_type.adb (Has_Compatible_Type): Complete support for synchronized types when the candidate type is a synchronized type. * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized types, and complete management of synchronized types adding missing code to handle formal that is a synchronized type. * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that are not available and cause the compiler to blowup. Found compiling test with switch -gnatc * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram Has_Correct_Formal_Mode plus code cleanup. ........ r138401 | charlet | 2008-07-31 05:47:08 -0700 (Thu, 31 Jul 2008) | 2 lines Resync. ........ r138402 | charlet | 2008-07-31 05:49:43 -0700 (Thu, 31 Jul 2008) | 2 lines * gnat.dg/specs/sync_iface_test.ads: New test. ........ r138404 | charlet | 2008-07-31 06:25:48 -0700 (Thu, 31 Jul 2008) | 7 lines 2008-07-31 Javier Miranda <miranda@adacore.com> * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to handle synchronized types. Required to handle well the object.operation notation applied to synchronized types. ........ r138405 | charlet | 2008-07-31 06:26:20 -0700 (Thu, 31 Jul 2008) | 10 lines 2008-07-31 Quentin Ochem <ochem@adacore.com> * s-stausa.ad? (Fill_Stack): Stack_Used_When_Filling is now stored anymore - just used internally. Added handling of very small tasks - when the theoretical size is already full at the point of the call. (Report_Result): Fixed result computation, Stack_Used_When_Filling does not need to be added to the result. ........ r138406 | charlet | 2008-07-31 06:26:40 -0700 (Thu, 31 Jul 2008) | 6 lines 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the corresponding spec is a primitive wrapper. Update comment. ........ r138407 | charlet | 2008-07-31 06:27:47 -0700 (Thu, 31 Jul 2008) | 37 lines 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> * bindgen.adb Comment reformatting. Update the list of run-time globals. (Gen_Adainit_Ada): Add the declaration, import and value set for configuration flag Canonical_Streams. (Gen_Adainit_C): Add the declaration and initial value of external symbol __gl_canonical_streams. * init.c: Update the list of global values computed by the binder. * opt.ads: Add flag Canonical_Streams. * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of semantically handled pragmas. * sem_prag.adb: Add an entry into enumeration type Sig_Flags. (Analyze_Pragma): Add case for pragma Canonical_Streams. * snames.adb: Add character value for name Canonical_Streams. * snames.ads: Add Name_Canonical_Streams to the list of configuration pragmas. Add Pragma_Canonical_Streams to enumeration type Pragma_Id. * snames.h: Add a definition for Pragma_Canonical_Streams. * s-ststop.adb: Add a flag and import to seize the value of external symbol __gl_canonical_streams. Update comment and initial value of constant Use_Block_IO. * gnat_rm.texi: Add section of pragma Canonical_Streams. * gnat_ugn.texi: Add pragma Canonical_Streams to the list of configuration pragmas. ........ r138408 | charlet | 2008-07-31 06:31:37 -0700 (Thu, 31 Jul 2008) | 7 lines 2008-07-31 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause has the form A.B.C and B is a unit renaming, analyze its compilation unit and add a with_clause on A.b to the context. ........ r138409 | charlet | 2008-07-31 06:42:37 -0700 (Thu, 31 Jul 2008) | 2 lines Resync. ........ r138410 | charlet | 2008-07-31 06:45:32 -0700 (Thu, 31 Jul 2008) | 2 lines * gnat.dg/sync_iface_test.ad[s,b]: New test. ........ r138411 | charlet | 2008-07-31 06:53:45 -0700 (Thu, 31 Jul 2008) | 6 lines 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private tagged type is completed by a concurrent type. ........ r138412 | charlet | 2008-07-31 06:53:55 -0700 (Thu, 31 Jul 2008) | 9 lines 2008-07-31 Gary Dismukes <dismukes@adacore.com> * sem_aggr.adb: (Resolve_Record_Aggregate): Bypass error that a type without components must have a "null record" aggregate when compiling for Ada 2005, since it's legal to give an aggregate of form (others => <>) for such a type. ........ r138413 | charlet | 2008-07-31 06:55:12 -0700 (Thu, 31 Jul 2008) | 2 lines * gnat.dg/specs/null_aggr_bug.ads: New test. ........ r138414 | charlet | 2008-07-31 06:58:21 -0700 (Thu, 31 Jul 2008) | 2 lines Resync. ........ r138415 | rguenth | 2008-07-31 07:12:24 -0700 (Thu, 31 Jul 2008) | 8 lines 2008-07-31 Richard Guenther <rguenther@suse.de> PR tree-optimization/36978 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold the generated condition. * gcc.dg/torture/pr36978.c: New testcase. ........ r138416 | hjl | 2008-07-31 07:33:43 -0700 (Thu, 31 Jul 2008) | 7 lines 2008-07-31 H.J. Lu <hongjiu.lu@intel.com> PR debug/36976 * dwarf2out.c (dwarf2out_args_size_adjust): New. (dwarf2out_stack_adjust): Use it. (dwarf2out_frame_debug_expr): Likewise. ........ r138417 | charlet | 2008-07-31 07:40:48 -0700 (Thu, 31 Jul 2008) | 5 lines 2008-07-31 Pascal Obry <obry@adacore.com> * prj-nmsc.adb: Keep Object and Exec directory casing. ........ r138418 | charlet | 2008-07-31 07:41:01 -0700 (Thu, 31 Jul 2008) | 12 lines 2008-07-31 Jose Ruiz <ruiz@adacore.com> * s-parame-vxworks.adb Document that this body is used for RTX in RTSS (kernel) mode. * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the s-parame-vxworks.adb body in order to have reasonable stack sizes in RTX RTSS kernel mode. Virtual memory is not used in that case, so we cannot ask for too big values. ........ r138419 | charlet | 2008-07-31 07:41:10 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Robert Dewar <dewar@adacore.com> * exp_aggr.adb: Minor reformatting ........ r138420 | charlet | 2008-07-31 07:41:22 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Robert Dewar <dewar@adacore.com> * makeutl.adb: Minor reformatting ........ r138421 | charlet | 2008-07-31 07:41:32 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 Robert Dewar <dewar@adacore.com> * prj-env.adb: Minor reformatting ........ r138422 | charlet | 2008-07-31 07:46:14 -0700 (Thu, 31 Jul 2008) | 2 lines Resync. ........ r138424 | hjl | 2008-07-31 08:32:51 -0700 (Thu, 31 Jul 2008) | 6 lines 2008-07-31 H.J. Lu <hongjiu.lu@intel.com> PR debug/36980 * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before rule 19. ........ r138425 | jason | 2008-07-31 10:38:08 -0700 (Thu, 31 Jul 2008) | 4 lines PR c++/36633 * init.c (build_new_1): Don't convert pointer to the data type until we're actually going to treat it as that type. ........ r138426 | jakub | 2008-07-31 11:07:20 -0700 (Thu, 31 Jul 2008) | 6 lines PR c++/36405 * rtti.c (get_tinfo_decl_dynamic, get_typeid): Call complete_type_or_else even for UNKNOWN_TYPE to get diagnostics. * g++.dg/rtti/typeid8.C: New test. ........ r138427 | jakub | 2008-07-31 11:08:36 -0700 (Thu, 31 Jul 2008) | 11 lines PR rtl-optimization/36419 * dwarf2out.c (barrier_args_size): New variable. (compute_barrier_args_size, compute_barrier_args_size_1): New functions. (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size if not called yet in the current function, use barrier_args_size array to find the new args_size value. (dwarf2out_frame_debug): Free and clear barrier_args_size. * g++.dg/eh/async-unwind2.C: New test. ........ r138428 | paolo | 2008-07-31 11:43:08 -0700 (Thu, 31 Jul 2008) | 6 lines 2008-07-31 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/lib/libstdc++.exp (libstdc++_init): Set v3-libgomp. (check_v3_target_parallel_mode): Robustify, just follow the structure of testsuite/Makefile.am. ........ r138429 | jakub | 2008-07-31 11:56:35 -0700 (Thu, 31 Jul 2008) | 6 lines * mkstemps.c (mkstemps): If open failed with errno other than EEXIST, return immediately. * make-temp-file.c: Include errno.h. (make_temp_file): If mkstemps failed, print an error message before aborting. ........ r138432 | jakub | 2008-07-31 12:12:14 -0700 (Thu, 31 Jul 2008) | 17 lines PR preprocessor/36649 * files.c (struct report_missing_guard_data): New type. (report_missing_guard): Put paths into an array instead of printing them right away. Return 1 rather than 0. (report_missing_guard_cmp): New function. (_cpp_report_missing_guards): Sort and print paths gathered by report_missing_guard callback. * gcc.dg/pch/cpp-3.hs: Add include guards. * gcc.dg/pch/cpp-3a.h: Likewise. * gcc.dg/pch/cpp-3b.h: Likewise. * gcc.dg/cpp/mi8.c: New test. * gcc.dg/cpp/mi8a.h: New file. * gcc.dg/cpp/mi8b.h: New file. * gcc.dg/cpp/mi8c.h: New file. * gcc.dg/cpp/mi8d.h: New file. ........ r138434 | paolo | 2008-07-31 12:37:21 -0700 (Thu, 31 Jul 2008) | 10 lines 2008-07-31 Chris Fairles <chris.fairles@gmail.com> * include/std/chrono (duration): Use explicitly defaulted ctor, cctor, dtor and assignment. Add diagnostics as per 20.8.3 paragraphs 2, 3 and 4 in WD. Other minor tweaks. * testsuite/20_util/duration/cons/1_neg.cc: Adjust line numbers. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: New. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. ........ r138435 | jakub | 2008-07-31 13:37:21 -0700 (Thu, 31 Jul 2008) | 3 lines PR target/35100 * gcc.target/powerpc/longcall-1.c: New test. ........ r138436 | jakub | 2008-07-31 14:22:09 -0700 (Thu, 31 Jul 2008) | 2 lines * mkstemps.c (mkstemps): Keep looping even for EISDIR. ........ r138437 | kkojima | 2008-07-31 14:23:04 -0700 (Thu, 31 Jul 2008) | 4 lines * config/sh/sh.c (sh_canonical_va_list_type): Remove. (TARGET_CANONICAL_VA_LIST_TYPE): Remove. ........ r138438 | hjl | 2008-07-31 14:28:54 -0700 (Thu, 31 Jul 2008) | 11 lines 2008-07-31 H.J. Lu <hongjiu.lu@intel.com> PR debug/36977 * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried. * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried for stack alignment. * function.h (rtl_data): Add stack_realign_tried. Update comments. ........ r138439 | sje | 2008-07-31 14:42:16 -0700 (Thu, 31 Jul 2008) | 2 lines * expr.c (expand_assignment): Check for complete type. ........ r138440 | ebotcazou | 2008-07-31 15:04:03 -0700 (Thu, 31 Jul 2008) | 3 lines * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting. * gcc-interface/utils.c (create_field_decl): Avoid superfluous work. ........ r138444 | gccadmin | 2008-07-31 17:16:31 -0700 (Thu, 31 Jul 2008) | 1 line Daily bump. ........ r138446 | hjl | 2008-07-31 17:31:46 -0700 (Thu, 31 Jul 2008) | 4 lines 2008-07-31 H.J. Lu <hongjiu.lu@intel.com> * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128. ........ r138448 | nemet | 2008-07-31 18:18:16 -0700 (Thu, 31 Jul 2008) | 24 lines * config.gcc (mipsisa64*-*-linux*): New configuration. Set ISA to MIPS64r2 for mipsisa64r2*. * config/mips/mips.h (GENERATE_MIPS16E): Update comment. (ISA_MIPS64R2): New macro. (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it. (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2. (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2. (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): Move up to keep list alphabetically sorted. (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise. * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2 processor. * doc/invoke.texi (MIPS Options): Add -mips64r2. (-march=@var{arch}): Add mips64r2. testsuite/ * gcc.target/mips/ext-1.c: New test. ........ r138450 | bstarynk | 2008-07-31 22:19:40 -0700 (Thu, 31 Jul 2008) | 9 lines 2008-08-01 Basile Starynkevitch <basile@starynkevitch> * gcc/tree-pass.h: Added comment about not dumping passes with name starting with star in struct opt_pass. * gcc/passes.c (register_dump_files_1): Don't do dump for a pass with name starting with star. * gcc/doc/passes.texi (Pass manager): Mention pass names and special meaning of star prefix to avoid dump. ........ r138455 | charlet | 2008-08-01 00:37:28 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Minor editing, remove uncomfortable use of semicolon ........ r138456 | charlet | 2008-08-01 00:37:40 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * s-ststop.adb: Add some ??? comments ........ r138457 | charlet | 2008-08-01 00:37:50 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sem_ch10.adb: Minor reformatting ........ r138458 | charlet | 2008-08-01 00:37:59 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * snames.ads: Minor comment fixes, some pragmas were not properly categorized in the comments, documentation change only ........ r138459 | charlet | 2008-08-01 00:38:08 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * xref_lib.adb: Minor reformatting ........ r138460 | charlet | 2008-08-01 00:38:17 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Jose Ruiz <ruiz@adacore.com> * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the current directory so only fully qualified names are allowed. ........ r138461 | charlet | 2008-08-01 00:38:26 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sinput.adb: Minor reformatting ........ r138462 | charlet | 2008-08-01 00:38:36 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * gnatchop.adb: Minor reformatting ........ r138463 | charlet | 2008-08-01 00:38:45 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Ed Schonberg <schonberg@adacore.com> * exp_disp.adb (Expand_Interface_Conversion): If the target type is a tagged synchronized type, use corresponding record type. ........ r138464 | charlet | 2008-08-01 00:38:54 -0700 (Fri, 01 Aug 2008) | 8 lines 2008-08-01 Doug Rupp <rupp@adacore.com> * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a dummy transfer address for debugging. * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise. ........ r138465 | charlet | 2008-08-01 00:39:03 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sem_util.ads: Minor reformatting. ........ r138466 | charlet | 2008-08-01 00:39:11 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * opt.ads: Minor documentation fix ........ r138467 | charlet | 2008-08-01 00:39:22 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Doug Rupp <rupp@adacore.com> * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING ........ r138468 | charlet | 2008-08-01 00:39:30 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * scng.adb: Minor reformatting ........ r138469 | charlet | 2008-08-01 00:41:55 -0700 (Fri, 01 Aug 2008) | 2 lines Update comments. ........ r138470 | charlet | 2008-08-01 00:43:16 -0700 (Fri, 01 Aug 2008) | 2 lines Resync. ........ r138472 | charlet | 2008-08-01 00:56:07 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer ........ r138473 | charlet | 2008-08-01 00:56:20 -0700 (Fri, 01 Aug 2008) | 47 lines 2008-08-01 Doug Rupp <rupp@adacore.com> * gnat_rm.texi: Document new mechanism Short_Descriptor. * types.ads (Mechanism_Type): Modify range for new Short_Descriptor mechanism values. * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor mechanism and Short_Descriptor mechanism values. * snames.adb (preset_names): Add short_descriptor entry. * snames.ads: Add Name_Short_Descriptor. * types.h: Add new By_Short_Descriptor mechanism values. * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor mechanism and Short_Descriptor mechanism values. * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism values. (Descriptor_Codes): Modify range for new mechanism values. * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor mechanism values. * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor. (gnat_to_gnu_param): Handle By_Short_Descriptor. * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype. (build_vms_descriptor32): New prototype. (fill_vms_descriptor): Remove unneeded gnat_actual parameter. * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual argument in call fill_vms_descriptor. * gcc-interface/utils.c (build_vms_descriptor32): Renamed from build_vms_descriptor and enhanced to hande Short_Descriptor mechanism. (build_vms_descriptor): Renamed from build_vms_descriptor64. (convert_vms_descriptor32): New function. (convert_vms_descriptor64): New function. (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit descriptors. * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes, no longer needed. ........ r138474 | charlet | 2008-08-01 00:56:32 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Jose Ruiz <ruiz@adacore.com> * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary name. ........ r138475 | charlet | 2008-08-01 00:56:48 -0700 (Fri, 01 Aug 2008) | 2 lines Resync. ........ r138479 | bonzini | 2008-08-01 01:18:13 -0700 (Fri, 01 Aug 2008) | 36 lines gcc: 2008-08-01 Paolo Bonzini <bonzini@gnu.org> * configure.ac: Do not generate libada-mk. Do not subst host_cc_for_libada. * libada-mk.in: Remove. * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars. * configure: Regenerate. libada: 2008-08-01 Paolo Bonzini <bonzini@gnu.org> * configure.ac (warn_cflags): Substitute. * configure: Regenerate. * Makefile.in (libdir, WARN_CFLAGS): Substitute. (GCC_WARN_CFLAGS): Remove NOCOMMON_FLAG. (ADA_CFLAGS, T_ADA_CFLAGS, X_ADA_CFLAGS, ALL_ADA_CFLAGS): Remove, they were unused. (libada-mk): Do not include. Include libgcc.mvars instead. (tmake_file): Remove, do not include. (FLAGS_TO_PASS): Pass dummy values for exeext and CC. * configure: Regenerate. gnattools: 2008-08-01 Paolo Bonzini <bonzini@gnu.org> * configure.ac (warn_cflags): Substitute. * configure: Regenerate. * Makefile.in (libdir, exeext, WARN_CFLAGS): Substitute. (GCC_WARN_CFLAGS): Remove NOCOMMON_FLAG. (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Remove as they were unused. (libsubdir): Remove. (libada-mk): Do not include. Include libgcc.mvars instead. (xmake_file): Remove, do not include. ........ r138480 | charlet | 2008-08-01 01:19:04 -0700 (Fri, 01 Aug 2008) | 14 lines 2008-08-01 Ed Schonberg <schonberg@adacore.com> * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create a pending instantiation for the body of a subprogram that is to be inlined. * sem_ch12.adb: (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body. * sem_prag.adb (Make_Inline): If the pragma applies to an instance, create a pending instance for its body, so that calls to the subprogram can be inlined by the back-end. ........ r138481 | charlet | 2008-08-01 01:19:29 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Jose Ruiz <ruiz@adacore.com> * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and rts-rtx-w32). ........ r138482 | charlet | 2008-08-01 01:34:50 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Jose Ruiz <ruiz@adacore.com> * adaint.c (__gnat_tmp_name): Refine the generation of temporary names for RTX. Adding a suffix that is incremented at each iteration. ........ r138483 | charlet | 2008-08-01 01:35:04 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of Raise_Exception ........ r138484 | charlet | 2008-08-01 01:35:21 -0700 (Fri, 01 Aug 2008) | 7 lines 2008-08-01 Jerome Lambourg <lambourg@adacore.com> * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in paths, which are authorized by Windows but can lead to errors when used elsewhere. ........ r138485 | charlet | 2008-08-01 02:02:34 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not generating code ........ r138486 | charlet | 2008-08-01 02:02:44 -0700 (Fri, 01 Aug 2008) | 8 lines 2008-08-01 Ed Schonberg <schonberg@adacore.com> * checks.adb (Apply_Float_Conversion_Check): If the expression to be converted is a real literal and the target type has static bounds, perform the conversion exactly to prevent floating-point anomalies on some targets. ........ r138487 | charlet | 2008-08-01 02:02:58 -0700 (Fri, 01 Aug 2008) | 20 lines 2008-08-01 Vincent Celier <celier@adacore.com> * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>) * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax * prj.adb (Object_Exist_For): Use Object_Generated, not Objects_Generated that is removed and was never modified anyway. * prj.ads: (Path_Syntax_Kind): New enumeration type (Language_Config): New component Path_Syntax, defaulted to Host. Components PIC_Option and Objects_Generated removed, as they are not used. * snames.adb: New standard name Path_Syntax * snames.ads: New standard name Path_Syntax ........ r138488 | charlet | 2008-08-01 02:03:11 -0700 (Fri, 01 Aug 2008) | 11 lines 2008-08-01 Vincent Celier <celier@adacore.com> * mlib-utl.adb: (Adalib_Path): New variable to store the path of the adalib directory when procedure Specify_Adalib_Dir is called. (Lib_Directory): If Adalib_Path is not null, return its value (Specify_Adalib_Dir): New procedure * mlib-utl.ads (Specify_Adalib_Dir): New procedure ........ r138489 | charlet | 2008-08-01 02:03:23 -0700 (Fri, 01 Aug 2008) | 8 lines 2008-08-01 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb: (Check_Precondition_Postcondition): If not generating code, analyze the expression in a postcondition that appears in a subprogram body, so that it is properly decorated for ASIS use. ........ r138490 | charlet | 2008-08-01 02:03:35 -0700 (Fri, 01 Aug 2008) | 10 lines 2008-08-01 Gary Dismukes <dismukes@adacore.com> * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets Orig_Prev to Prev in the case where the actual is N_Function_Call or N_Identifier. This was interfering with other cases that are rewritten as N_Identifier, such as allocators, resulting in passing of the wrong accessibility level, and based on testing this code is apparently no longer needed at all. ........ r138491 | charlet | 2008-08-01 02:04:06 -0700 (Fri, 01 Aug 2008) | 7 lines 2008-08-01 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a procedure call whose prefix is a parameterless function call that returns an access_to_procedure. ........ r138492 | charlet | 2008-08-01 02:10:16 -0700 (Fri, 01 Aug 2008) | 7 lines 2008-08-01 Eric Botcazou <ebotcazou@adacore.com> * gcc-interface/utils.c (convert_vms_descriptor): Add gnu_expr_alt_type parameter. Convert the expression to it instead of changing its type in place. (build_function_stub): Adjust call to above function. ........ r138493 | charlet | 2008-08-01 02:29:30 -0700 (Fri, 01 Aug 2008) | 8 lines 2008-08-01 Gary Dismukes <dismukes@adacore.com> * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing correct accessibility levels. In the "when others" case, retrieve the access level of the Etype of Prev rather than Prev_Orig, because the original exression has not always been analyzed. ........ r138494 | charlet | 2008-08-01 02:29:39 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * prj-nmsc.adb: Minor reformatting ........ r138495 | charlet | 2008-08-01 02:29:48 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sem_ch4.adb: Minor reformatting Minor code reorganization ........ r138496 | charlet | 2008-08-01 02:30:05 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * prj.ads: Minor reformatting ........ r138497 | charlet | 2008-08-01 02:30:14 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * s-os_lib.adb: Minor reformatting ........ r138498 | charlet | 2008-08-01 02:30:26 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper half encodings ........ r138499 | charlet | 2008-08-01 02:30:37 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * scans.ads: Minor reformatting. ........ r138500 | charlet | 2008-08-01 02:30:53 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Analyze_Pragma): Put entries in alpha order (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma ........ r138501 | charlet | 2008-08-01 02:31:06 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sem_res.adb: (Resolve_Call): Check violation of No_Specific_Termination_Handlers ........ r138502 | charlet | 2008-08-01 02:31:18 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Thomas Quinot <quinot@adacore.com> * sem_ch12.adb: Minor comment reformatting ........ r138503 | charlet | 2008-08-01 02:31:42 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * par-ch3.adb (P_Type_Declaration): Properly handle missing type keyword ........ r138506 | charlet | 2008-08-01 03:33:21 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve warnings ........ r138507 | charlet | 2008-08-01 03:33:29 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * lib-xref.adb: Add error defense. ........ r138508 | charlet | 2008-08-01 03:33:45 -0700 (Fri, 01 Aug 2008) | 4 lines 2008-08-01 Bob Duff <duff@adacore.com> * ioexcept.ads, sequenio.ads, directio.ads: Correct comment. ........ r138509 | hainque | 2008-08-01 03:36:01 -0700 (Fri, 01 Aug 2008) | 10 lines ada/ * decl.c (gnat_to_gnu_entity) <case E_Function>: Do not turn Ada Pure into GCC const, now implicitely implying nothrow as well. testsuite/ * gnat.dg/raise_from_pure.ad[bs], * gnat.dg/wrap_raise_from_pure.ad[bs]: Support for ... * gnat.dg/test_raise_from_pure.adb: New test. ........ r138510 | charlet | 2008-08-01 03:44:17 -0700 (Fri, 01 Aug 2008) | 6 lines 2008-08-01 Robert Dewar <dewar@adacore.com> * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to convert plain identifier into defining identifier. ........ r138511 | charlet | 2008-08-01 03:47:27 -0700 (Fri, 01 Aug 2008) | 21 lines 2008-08-01 Hristian Kirtchev <kirtchev@adacore.com> * rtsfind.ads: Add block IO versions of stream routines for Strings. * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads, sem_prag.adb, snames.adb, snames.ads, snames.h, par-prag.adb: Undo Canonical_Streams related changes. * s-rident.ads: Add new restriction No_Stream_Optimizations. * s-ststop.ads, s-ststop.adb: Comment reformatting. Define enumeration type to designate different IO mechanisms. Enchance generic package Stream_Ops_Internal to include an implementation of Input and Output. * exp_attr.adb (Find_Stream_Subprogram): If restriction No_Stream_Optimization is active, choose the default byte IO implementations of stream attributes for Strings. Otherwise use the corresponding block IO version. ........ r138512 | rguenth | 2008-08-01 04:18:36 -0700 (Fri, 01 Aug 2008) | 8 lines 2008-08-01 Richard Guenther <rguenther@suse.de> PR tree-optimization/36988 * tree-ssa-ccp.c (ccp_fold): Conversions of constants only do not matter if that doesn't change volatile qualification. * gcc.c-torture/compile/pr36988.c: New testcase. ........ r138513 | ebotcazou | 2008-08-01 05:39:57 -0700 (Fri, 01 Aug 2008) | 16 lines 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com> * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead code.  Do not get full definition of deferred constants with address clause for a use.  Do not ignore deferred constant definitions with address clause.  Ignore constant definitions already marked with the error node. <object>: Remove obsolete comment.  For a deferred constant with address clause, get the initializer from the full view. * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>: Rework and remove obsolete comment. <N_Object_Declaration>: For a deferred constant with address clause, mark the full view with the error node. *  gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix formatting nits. ........ r138514 | ebotcazou | 2008-08-01 06:11:51 -0700 (Fri, 01 Aug 2008) | 2 lines Revert incorrect patch. ........ r138515 | rguenth | 2008-08-01 06:12:38 -0700 (Fri, 01 Aug 2008) | 7 lines 2008-08-01 Richard Guenther <rguenther@suse.de> PR middle-end/36997 * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR. * gcc.dg/pr36997.c: New testcase. ........ r138516 | schwab | 2008-08-01 06:14:39 -0700 (Fri, 01 Aug 2008) | 2 lines Remove conflict marker. ........ r138517 | hjl | 2008-08-01 06:30:03 -0700 (Fri, 01 Aug 2008) | 11 lines 2008-08-01 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY with MIN_STACK_BOUNDARY. (ix86_update_stack_boundary): Likewise. (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of STACK_BOUNDARY. * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ... (MIN_STACK_BOUNDARY): This. ........ r138518 | ebotcazou | 2008-08-01 07:02:10 -0700 (Fri, 01 Aug 2008) | 8 lines * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE. * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify and adjust for above renaming. * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new gnu_expr_alt_type parameter. Convert the expression to it instead of changing its type in place. (build_function_stub): Adjust call to above function. ........ r138519 | paolo | 2008-08-01 07:06:38 -0700 (Fri, 01 Aug 2008) | 14 lines 2008-08-01 Paolo Bonzini <bonzini@gnu.org> Chris Fairles <chris.fairles@gmail.com> * acinclude.m4 ([GLIBCXX_CHECK_CLOCK_GETTIME]): Reinstate clock_gettime search, but only in libposix4, never link librt. * src/Makefile.am: Reinstate previous change to add GLIBCXX_LIBS. * configure: Regenerate. * configure.in: Likewise. * Makefile.in: Likewise. * src/Makefile.in: Likewise. * libsup++/Makefile.in: Likewise. * po/Makefile.in: Likewise. * doc/Makefile.in: Likewise. ........ r138520 | ebotcazou | 2008-08-01 07:10:10 -0700 (Fri, 01 Aug 2008) | 2 lines * gnat.dg/boolean_expr.ad[sb]: Rename to boolean_expr1.ad[sb]. ........ r138522 | rguenth | 2008-08-01 07:42:42 -0700 (Fri, 01 Aug 2008) | 9 lines 2008-08-01 Richard Guenther <rguenther@suse.de> * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free loop information only if we initialized it. (execute_pre): Call fini_pre with in_fre. * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump if we do not unroll because we hit max-completely-peeled-insns. Use our estimation for consistency, do allow shrinking. ........ r138524 | hjl | 2008-08-01 09:05:50 -0700 (Fri, 01 Aug 2008) | 9 lines 2008-08-01 H.J. Lu <hongjiu.lu@intel.com> * cfgexpand.c (expand_stack_alignment): Assert that stack_realign_drap and drap_rtx must match. * function.c (instantiate_new_reg): If DRAP is used to realign stack, replace virtual_incoming_args_rtx with internal arg pointer. ........ r138525 | hjl | 2008-08-01 09:10:28 -0700 (Fri, 01 Aug 2008) | 2 lines Add missing ChangeLog entry for revision 138517. ........ r138530 | jakub | 2008-08-01 12:01:33 -0700 (Fri, 01 Aug 2008) | 5 lines 2008-08-01 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/36991 * gcc.dg/pr36991.c: New test. ........ r138537 | jakub | 2008-08-01 13:30:09 -0700 (Fri, 01 Aug 2008) | 6 lines * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size for labels for which it hasn't been set yet. If it has been set, stop walking insns and continue with next worklist item. (dwarf2out_stack_adjust): Don't call compute_barrier_args_size if the only BARRIER is at the very end of a function. ........ r138541 | gccadmin | 2008-08-01 17:16:48 -0700 (Fri, 01 Aug 2008) | 1 line Daily bump. ........ r138544 | dougkwan | 2008-08-01 18:25:48 -0700 (Fri, 01 Aug 2008) | 44 lines 2008-08-01 Doug Kwan <dougkwan@google.com> * matrix-reorg.c: Re-enable all code. (struct malloc_call_data): Change CALL_STMT to gimple type. (collect_data_for_malloc_call): Tuplify. (struct access_site_info): Change STMT to gimple type. (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT, and MALLOC_FOR_LEVEL to gimple and gimple pointer type. (struct free_info): Change STMT to gimple type. (struct matrix_access_phi_node): Change PHI to gimple type. (get_inner_of_cast_expr): Remove. (may_flatten_matrices_1): Tuplify. (may_flatten_matrices): Ditto. (mark_min_matrix_escape_level): Ditto. (ssa_accessed_in_tree): Refactor statement RHS related code into ... (ssa_accessed_in_call_rhs): New (ssa_accessed_in_assign_rhs): New (record_access_alloc_site_info): Tuplify. (add_allocation_site): Ditto. (analyze_matrix_allocation_site): Ditto. (analyze_transpose): Ditto. (get_index_from_offset): Ditto. (update_type_size): Ditto. (analyze_accesses_for_call_expr): Tuplify and renamed into ... (analyze_accesses_for_call_stmt): New. Also handle LHS of a call. (analyze_accesses_for_phi_node): Tuplify. (analyze_accesses_for_modify_stmt): Tuplify and renamed into ... (analyze_accesses_for_assign_stmt): Remove code for handling call LHS. (analyze_matrix_accesses): Tuplify. (check_var_data): New call-back type for check_var_notmodified_p. (check_var_notmodified_p): Tuplify and use call-back struct to return statement found. (can_calculate_expr_before_stmt): Factor out statement related code into ... (can_calculate_stmt_before_stmt): New. (check_allocation_function): Tuplify. (find_sites_in_func): Ditto. (record_all_accesses_in_func): Ditto. (transform_access_sites): Ditto. (transform_allocation_sites): Ditto. (matrix_reorg): Re-enable. (gate_matrix_reorg): Re-enable. ........ r138552 | ebotcazou | 2008-08-02 03:49:51 -0700 (Sat, 02 Aug 2008) | 3 lines * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>: New case. Convert BOOLEAN_TYPE operation to the default integer type. ........ r138553 | rguenth | 2008-08-02 05:05:47 -0700 (Sat, 02 Aug 2008) | 33 lines 2008-08-02 Richard Guenther <rguenther@suse.de> PR target/35252 * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators. (ssedoublesizemode): New mode attribute. (sse_shufps): Call gen_sse_shufps_v4sf. (sse_shufps_1): Macroize. (sse2_shufpd): Call gen_Sse_shufpd_v2df. (sse2_shufpd_1): Macroize. (vec_extract_odd, vec_extract_even): New expanders. (vec_interleave_highv4sf, vec_interleave_lowv4sf, vec_interleave_highv2df, vec_interleave_lowv2df): Likewise. * i386.c (ix86_expand_vector_init_one_nonzero): Call gen_sse_shufps_v4sf instead of gen_sse_shufps_1. (ix86_expand_vector_set): Likewise. (ix86_expand_reduc_v4sf): Likewise. * lib/target-supports.exp (vect_extract_even_odd_wide) Add. (vect_strided_wide): Likewise. * gcc.dg/vect/fast-math-pr35982.c: Enable for vect_extract_even_odd_wide. * gcc.dg/vect/fast-math-vect-complex-3.c: Likewise. * gcc.dg/vect/vect-1.c: Likewise. * gcc.dg/vect/vect-107.c: Likewise. * gcc.dg/vect/vect-98.c: Likewise. * gcc.dg/vect/vect-strided-float.c: Likewise. * gcc.dg/vect/slp-11.c: Enable for vect_strided_wide. * gcc.dg/vect/slp-12a.c: Likewise. * gcc.dg/vect/slp-12b.c: Likewise. * gcc.dg/vect/slp-19.c: Likewise. * gcc.dg/vect/slp-23.c: Likewise. * gcc.dg/vect/slp-5.c: Likewise. ........ r138555 | kseitz | 2008-08-02 15:56:04 -0700 (Sat, 02 Aug 2008) | 4 lines * tcl.m4 (SC_PATH_TCLCONFIG): Add some simple logic to deal with cygwin. (SC_PATH_TKCONFIG): Likewise. ........ r138560 | gccadmin | 2008-08-02 17:16:39 -0700 (Sat, 02 Aug 2008) | 1 line Daily bump. ........ r138562 | amodra | 2008-08-02 20:37:55 -0700 (Sat, 02 Aug 2008) | 3 lines * mt-spu (all-ld): Update for ld Makefile changes. ........ r138564 | uros | 2008-08-02 23:13:04 -0700 (Sat, 02 Aug 2008) | 17 lines PR target/36992 * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to alternative 0 of operand 1. (*vec_concatv2di_rex64_sse): Ditto. (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0 of operand 1. (*sse2_storeq_rex64): Penalize allocation of "r" registers. * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves. (*movv2sf_internal_rex64): Ditto. testsuite/ChangeLog: PR target/36992 * gcc.target/i386/pr36992-1.c: New test. * gcc.target/i386/pr36992-2.c: Ditto. ........ r138565 | hubicka | 2008-08-03 05:04:49 -0700 (Sun, 03 Aug 2008) | 4 lines * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi, expand_builtin_strcat): Upse optimize_insn_for_speed predicate. * expmed.c (expand_smod_pow2): Likewise. ........ r138566 | uros | 2008-08-03 11:45:17 -0700 (Sun, 03 Aug 2008) | 5 lines * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES. (*movv2sf_internal_rex64): Ditto. ........ r138568 | jvdelisle | 2008-08-03 15:02:22 -0700 (Sun, 03 Aug 2008) | 4 lines 2008-08-03 Jerry DeLisle <jvdelisle@gcc.gnu.org> * gfortran.dg/fmt_t_7.f: Replace CR-LF with LF. ........ r138573 | gccadmin | 2008-08-03 17:16:36 -0700 (Sun, 03 Aug 2008) | 1 line Daily bump. ........ r138575 | charlet | 2008-08-04 01:37:31 -0700 (Mon, 04 Aug 2008) | 9 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * restrict.adb: Improved messages for restriction warnings * restrict.ads: Improved messages for restriction messages * s-rident.ads (Profile_Name): Add No_Profile ........ r138576 | charlet | 2008-08-04 01:37:40 -0700 (Mon, 04 Aug 2008) | 5 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus ........ r138577 | charlet | 2008-08-04 01:37:47 -0700 (Mon, 04 Aug 2008) | 5 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * freeze.adb (Freeze_Entity): Check for size clause for boolean warning ........ r138578 | charlet | 2008-08-04 01:37:57 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Vincent Celier <celier@adacore.com> * prj-proc.adb: (Copy_Package_Declarations): When inheriting package Naming from a project being extended, do not inherit source exception names. ........ r138579 | charlet | 2008-08-04 01:38:06 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Check_Precondition_Postcondition): When scanning the list of declaration to find previous subprogram, do not go to the original node of a generic unit. ........ r138580 | charlet | 2008-08-04 01:40:22 -0700 (Mon, 04 Aug 2008) | 2 lines Resync. ........ r138581 | charlet | 2008-08-04 02:05:01 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * par-ch10.adb: Minor reformatting ........ r138582 | charlet | 2008-08-04 02:05:29 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Pascal Obry <obry@adacore.com> * i-cobol.adb: Minor reformatting. ........ r138583 | charlet | 2008-08-04 02:05:40 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Access_Definition): Create an itype reference for an anonymous access return type of a regular function that is not a compilation unit. ........ r138584 | charlet | 2008-08-04 02:05:56 -0700 (Mon, 04 Aug 2008) | 9 lines 2008-08-04 Vincent Celier <celier@adacore.com> * prj-attr.adb: New Builder attribute Global_Compilation_Switches * snames.adb: New standard name Global_Compilation_Switches * snames.ads: New standard name Global_Compilation_Switches ........ r138585 | charlet | 2008-08-04 02:06:16 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Vincent Celier <celier@adacore.com> * make.adb: Correct spelling error in comment ........ r138586 | charlet | 2008-08-04 02:06:36 -0700 (Mon, 04 Aug 2008) | 6 lines 2008-08-04 Arnaud Charlet <charlet@adacore.com> * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI target. ........ r138587 | charlet | 2008-08-04 02:06:45 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Thomas Quinot <quinot@adacore.com> * sem_ch10.adb: Minor comment fix. ........ r138588 | charlet | 2008-08-04 02:07:31 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Doug Rupp <rupp@adacore.com> * gcc-interface/utils2.c: (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer in 32bit descriptor. ........ r138589 | charlet | 2008-08-04 02:16:54 -0700 (Mon, 04 Aug 2008) | 6 lines 2008-08-04 Doug Rupp <rupp@adacore.com> * utils2.c (fill_vms_descriptor): Use long_integer for comparison. Call add_stmt_with_node to set locus. ........ r138590 | charlet | 2008-08-04 02:17:44 -0700 (Mon, 04 Aug 2008) | 31 lines 2008-08-04 Vincent Celier <celier@adacore.com> * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean variable, but don't check the resulting value as it has no impact on the processing. * opt.ads: (Generate_Processed_File): New Boolean flag, set to True in the compiler when switch -gnateG is used. * prep.adb: (Preprocess): new Boolean out parameter Source_Modified. Set it to True when the source is modified by the preprocessor and there is no preprocessing errors. * prep.ads (Preprocess): new Boolean out parameter Source_Modified * sinput-l.adb: (Load_File): Output the result of preprocessing if the source text was modified. * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG * ug_words: Add VMS equivalent for -gnateG * vms_data.ads: Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG ........ r138591 | charlet | 2008-08-04 02:36:10 -0700 (Mon, 04 Aug 2008) | 19 lines 2008-08-04 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Access_Definition): A formal object declaration is a legal context for an anonymous access to subprogram. * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an indirect call, report success to the caller to include possible interpretation. * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance check when the type of the extended return is an anonymous access_to_subprogram type. * sem_res.adb: (Resolve_Call): Insert a dereference if the type of the subprogram is an access_to_subprogram and the context requires its return type, and a dereference has not been introduced previously. ........ r138592 | charlet | 2008-08-04 02:36:26 -0700 (Mon, 04 Aug 2008) | 6 lines 2008-08-04 Arnaud Charlet <charlet@adacore.com> * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve gnatcheck support in GPS. ........ r138593 | charlet | 2008-08-04 02:36:46 -0700 (Mon, 04 Aug 2008) | 6 lines 2008-08-04 Vincent Celier <celier@adacore.com> * mlib.adb (Create_Sym_Links): Create relative symbolic links when requested ........ r138594 | charlet | 2008-08-04 02:38:06 -0700 (Mon, 04 Aug 2008) | 8 lines 2008-08-04 Doug Rupp <rupp@adacore.com> * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter. * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and use it. Calculate pointer range overflow using 64bit types. ........ r138595 | charlet | 2008-08-04 02:40:33 -0700 (Mon, 04 Aug 2008) | 2 lines Minor reformatting. ........ r138596 | charlet | 2008-08-04 02:49:33 -0700 (Mon, 04 Aug 2008) | 8 lines 2008-08-04 Jerome Lambourg <lambourg@adacore.com> * g-comlin.adb (Group_Switches): Preserve the switch order when grouping and allow switch grouping of switches with more than one character extension (e.g. gnatw.x). (Args_From_Expanded): Remove this now obsolete method. ........ r138597 | charlet | 2008-08-04 02:49:42 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for chain at once, to ensure that type is properly decorated for back-end, when allocator appears within a loop. ........ r138598 | charlet | 2008-08-04 02:50:09 -0700 (Mon, 04 Aug 2008) | 15 lines 2008-08-04 Kevin Pouget <pouget@adacore.com> * snames.h, snames.adb, snames.ads: Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines. * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call, Build_To_Any_Call and Build_TypeCode_Call procedures. * exp_attr.adb, sem_attr.adb: Add corresponding cases. * rtsfind.ads: Add corresponding names. * tbuild.adb: Update prefix restrictions to allow '_' character. ........ r138599 | charlet | 2008-08-04 03:22:39 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb: Add comments ........ r138600 | charlet | 2008-08-04 03:22:48 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null access type and the allocator is not initialized, warn rather than reporting an error. ........ r138601 | charlet | 2008-08-04 03:22:58 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * exp_ch4.adb: Minor reformatting ........ r138602 | charlet | 2008-08-04 03:23:07 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * exp_dist.adb: Minor reformatting ........ r138603 | charlet | 2008-08-04 03:23:16 -0700 (Mon, 04 Aug 2008) | 19 lines 2008-08-04 Gary Dismukes <dismukes@adacore.com> * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the target to the type of the aggregate in the case where the target object is class-wide. * exp_ch5.adb (Expand_Simple_Function_Return): When the function's result type is class-wide and inherently limited, and the expression has a specific type, create a return object of the specific type, for more efficient handling of returns of build-in-place aggregates (avoids conversions of the class-wide return object to the specific type on component assignments). * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error about a type mismatch for a class-wide function with a return object having a specific type when the object declaration doesn't come from source. Such an object can result from the expansion of a simple return. ........ r138604 | charlet | 2008-08-04 03:23:25 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * g-comlin.adb: Minor reformatting ........ r138605 | charlet | 2008-08-04 03:25:26 -0700 (Mon, 04 Aug 2008) | 8 lines 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com> * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files. * gcc-interface/Makefile.in: Use 64bit-specific system files when compiling for 64bit windows. ........ r138606 | charlet | 2008-08-04 03:28:30 -0700 (Mon, 04 Aug 2008) | 2 lines * gnat.dg/bip_aggregate_bug.adb: New test. ........ r138608 | paolo | 2008-08-04 05:05:41 -0700 (Mon, 04 Aug 2008) | 9 lines 2008-08-04 Paolo Carlini <paolo.carlini@oracle.com> * include/bits/postypes.h: Reinstate inclusion of <stdint.h>; also define the __STDC_* macros. (streamoff): Adjust. * include/tr1_impl/cstdint: Check that the __STDC_* macros are not defined before defining. ........ r138609 | charlet | 2008-08-04 05:13:10 -0700 (Mon, 04 Aug 2008) | 2 lines * gnat.dg/test_ai254.adb: New test. ........ r138610 | charlet | 2008-08-04 05:14:25 -0700 (Mon, 04 Aug 2008) | 38 lines 2008-08-04 Javier Miranda <miranda@adacore.com> * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support for N_Formal_Object_Declaration nodes. Adding kludge required by First_Formal to provide its functionality with access to functions. (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support for anonymous access types returned by functions. * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate conversion of null-excluding access types (required only once to force the generation of the required runtime check). * sem_type.adb (Covers): minor reformating * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors with internally generated nodes. Avoid generating the error inside init procs. * sem_res.adb (Resolve_Membership_Test): Minor reformating. (Resolve_Null): Generate the null-excluding check in case of assignment to a null-excluding object. (Valid_Conversion): Add missing support for anonymous access to subprograms. * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for anonymous access types whose designated type is an itype. This case occurs with anonymous access to protected subprograms types. (Analyze_Return_Type): Add missing support for anonymous access to protected subprogram. * sem_eval.adb (Subtypes_Statically_Match): In case of access to subprograms addition of missing check on matching convention. Required to properly handle access to protected subprogram types. * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on null excluding access types. ........ r138611 | hjl | 2008-08-04 05:29:08 -0700 (Mon, 04 Aug 2008) | 5 lines 2008-08-04 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo in comments. ........ r138612 | charlet | 2008-08-04 05:34:16 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * sem_ch13.ads: Minor comment update * sem_res.adb: (Large_Storage_Type): Improve previous change. ........ r138613 | charlet | 2008-08-04 05:35:08 -0700 (Mon, 04 Aug 2008) | 6 lines 2008-08-04 Pascal Obry <obry@adacore.com> * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with file attributes. ........ r138614 | charlet | 2008-08-04 05:50:41 -0700 (Mon, 04 Aug 2008) | 5 lines 2008-08-04 Pascal Obry <obry@adacore.com> * adaint.h: Add missing prototype. ........ r138615 | charlet | 2008-08-04 05:51:00 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * sem_res.adb: (Valid_Conversion): Catch case of designated types having different sizes, even though they statically match. ........ r138616 | charlet | 2008-08-04 05:51:10 -0700 (Mon, 04 Aug 2008) | 6 lines 2008-08-04 Javier Miranda <miranda@adacore.com> * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch added in previous patch to handle access to subprograms. ........ r138617 | charlet | 2008-08-04 05:51:19 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * freeze.adb: (Freeze_Entity): Only check No_Default_Initialization restriction for constructs that come from source ........ r138618 | charlet | 2008-08-04 05:51:30 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Thomas Quinot <quinot@adacore.com> * exp_ch6.adb: Minor comment fix. ........ r138619 | charlet | 2008-08-04 05:51:41 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Thomas Quinot <quinot@adacore.com> * sem_ch4.adb: Minor reformatting. ........ r138620 | charlet | 2008-08-04 05:52:38 -0700 (Mon, 04 Aug 2008) | 5 lines 2008-08-04 Pascal Obry <obry@adacore.com> * adaint.c: Refine support for Windows file attributes. ........ r138631 | hjl | 2008-08-04 07:56:12 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 H.J. Lu <hongjiu.lu@intel.com> PR target/37012 * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack. (ix86_expand_epilogue): Likewise. ........ r138633 | simonb | 2008-08-04 08:09:56 -0700 (Mon, 04 Aug 2008) | 7 lines PR c++/36999 * parser.c (cp_parser_elaborated_type_specifier): Warn only when the declaration's id is followed by a semicolon. * g++.dg/warn/pr36999.C: New. ........ r138635 | charlet | 2008-08-04 08:33:55 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Thomas Quinot <quinot@adacore.com> * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting ........ r138636 | charlet | 2008-08-04 08:34:04 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com> * g-soccon-mingw.ads: Fix value for MSG_WAITALL ........ r138637 | charlet | 2008-08-04 08:34:13 -0700 (Mon, 04 Aug 2008) | 6 lines 2008-08-04 Javier Miranda <miranda@adacore.com> * sem_prag.adb (Process_Convention): Add missing support for N_Private_Extension_Declaration nodes. ........ r138638 | charlet | 2008-08-04 08:34:39 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * exp_ch4.adb: Minor reformatting ........ r138640 | pbrook | 2008-08-04 09:27:17 -0700 (Mon, 04 Aug 2008) | 10 lines 2008-08-04 Paul Brook <paul@codesourcery.com> gcc/ * cofig/arm/arm.c (thumb_core_reg_alloc_order): New. (arm_order_regs_for_local_alloc): New function. * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add prototype. * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define. ........ r138642 | rguenth | 2008-08-04 10:22:17 -0700 (Mon, 04 Aug 2008) | 4 lines 2008-08-04 Richard Guenther <rguenther@suse.de> * tree-vect-transform.c (vectorizable_call): Fix tuplification. ........ r138643 | victork | 2008-08-04 10:25:13 -0700 (Mon, 04 Aug 2008) | 5 lines 2008-08-04 Victor Kaplansky <victork@il.ibm.com> * gcc.dg/vect/vect-complex-5.c: New test. ........ r138645 | rguenth | 2008-08-04 11:29:08 -0700 (Mon, 04 Aug 2008) | 8 lines 2008-08-04 Richard Guenther <rguenther@suse.de> PR middle-end/36691 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly check for no_overflow. * gcc.c-torture/execute/pr36691.c: New testcase. ........ r138647 | rguenth | 2008-08-04 11:35:20 -0700 (Mon, 04 Aug 2008) | 6 lines 2008-08-04 Richard Guenther <rguenther@suse.de> * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add the candidate with the stripped base if that base is different from the original base even for offset zero. ........ r138648 | jason | 2008-08-04 11:39:16 -0700 (Mon, 04 Aug 2008) | 4 lines PR c++/37006 * pt.c (tsubst_decl): Leave DECL_INITIAL set on deleted instantiations. ........ r138649 | charlet | 2008-08-04 11:50:33 -0700 (Mon, 04 Aug 2008) | 5 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances ........ r138650 | charlet | 2008-08-04 11:50:45 -0700 (Mon, 04 Aug 2008) | 16 lines 2008-08-04 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb: (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an anonymous access to protected subprogram that is the return type of the specification of a subprogram body. * sem_ch6.adb: (Analyze_Subprogram_Body): if the return type is an anonymous access to subprogram, freeze it now to prevent access anomalies in the back-end. * exp_ch9.adb: Minor code cleanup. Make sure that new declarations are inserted into the tree before analysis (from code reading). ........ r138651 | charlet | 2008-08-04 11:51:10 -0700 (Mon, 04 Aug 2008) | 7 lines 2008-08-04 Robert Dewar <dewar@adacore.com> * exp_ch5.adb: (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction at point of return. ........ r138652 | jason | 2008-08-04 12:53:57 -0700 (Mon, 04 Aug 2008) | 4 lines PR c++/36963 * typeck2.c (check_narrowing): Allow narrowing conversion from an explicit floating-point constant. ........ r138661 | gccadmin | 2008-08-04 17:16:33 -0700 (Mon, 04 Aug 2008) | 1 line Daily bump. ........ r138664 | tromey | 2008-08-04 18:28:26 -0700 (Mon, 04 Aug 2008) | 2 lines PR libgcj/31890: * gcj/javaprims.h: Regenerate class list. ........ r138667 | charlet | 2008-08-05 01:16:11 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * sem_ch3.adb: Minor reformatting ........ r138668 | charlet | 2008-08-05 01:16:22 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * checks.adb: Minor reformatting ........ r138669 | charlet | 2008-08-05 01:16:33 -0700 (Tue, 05 Aug 2008) | 6 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * tbuild.ads (New_External_Name): Update spec to reflect relaxed restriction on Prefix. ........ r138670 | charlet | 2008-08-05 01:16:44 -0700 (Tue, 05 Aug 2008) | 17 lines 2008-08-05 Jerome Lambourg <lambourg@adacore.com> * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal methods needed to handle switch sections when building a command line. (Define_Section, Add_Switch, Remove_Switch, Is_New_Section, Current_Section): New public methods or methods modified to handle building command lines with sections. (Set_Command_Line): Take into account sections when analysing a switch string. (Start): Sort the switches by sections before iterating the command line elements. * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch, Is_New_Section, Current_Section): New methods or methods modified to handle building command lines with sections. ........ r138671 | charlet | 2008-08-05 01:17:02 -0700 (Tue, 05 Aug 2008) | 8 lines 2008-08-05 Ed Schonberg <schonberg@adacore.com> * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access discriminants, indicate that the corresponding object declaration has no initialization, to prevent spurious warnings when the access type is null-excluding. ........ r138672 | charlet | 2008-08-05 01:17:24 -0700 (Tue, 05 Aug 2008) | 6 lines 2008-08-05 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Call): If this is a call to the predefined Abort_Task, warn if the call appears within a protected operation. ........ r138673 | charlet | 2008-08-05 01:21:05 -0700 (Tue, 05 Aug 2008) | 2 lines * gnat.dg/access_discr2.adb: New test. ........ r138674 | charlet | 2008-08-05 01:34:58 -0700 (Tue, 05 Aug 2008) | 6 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * exp_strm.adb: Minor reformatting (comments) * sem_ch12.adb: Minor reformatting. ........ r138675 | charlet | 2008-08-05 01:41:07 -0700 (Tue, 05 Aug 2008) | 7 lines 2008-08-05 Javier Miranda <miranda@adacore.com> * sem_util.adb (Collect_Interfaces_Info): Minor reformating. * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the implementation of this routine has been simplified. ........ r138676 | charlet | 2008-08-05 01:41:30 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Pascal Obry <obry@adacore.com> * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the Set_Read_Only Win32 implementation. ........ r138678 | charlet | 2008-08-05 02:04:18 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * a-rttiev.adb: Minor reformatting (comments) ........ r138679 | charlet | 2008-08-05 02:05:08 -0700 (Tue, 05 Aug 2008) | 9 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * gen-soccon.c: Rename to gen-oscons.c * gen-oscons.c: New file. Now generate System.OS_Constants instead of GNAT.Sockets.Constants. Add new constants for GNAT.Serial_Communications and System.File_IO. ........ r138680 | charlet | 2008-08-05 02:13:53 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Vincent Celier <celier@adacore.com> * mlib.adb: Update comments. ........ r138681 | charlet | 2008-08-05 02:14:03 -0700 (Tue, 05 Aug 2008) | 7 lines 2008-08-05 Vincent Celier <celier@adacore.com> * prj-proc.adb: (Process_Declarative_Items): Skip associative array attribute when index is reserved word "others". ........ r138682 | charlet | 2008-08-05 02:14:13 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Vasiliy Fofanov <fofanov@adacore.com> * gen-oscons.c: Adapt for VMS where termios.h is not available. ........ r138683 | charlet | 2008-08-05 02:14:48 -0700 (Tue, 05 Aug 2008) | 38 lines 2008-08-05 Vincent Celier <celier@adacore.com> * make.adb (Switches_Of): Check for Switches (others), before checking for Default_Switches ("Ada"). (Gnatmake): Use Builder'Switches (others) in preference to Builder'Default_Switches ("Ada") if there are several mains. * prj-attr-pm.adb: (Add_Attribute): Add component Others_Allowed in Attribute_Record aggregate. * prj-attr.adb: Add markers to indicates that attributes Switches allow others as index (Others_Allowed_For): New Boolean function, returning True for attributes with the mark. (Initialize): Recognize optional letter 'O' as the marker for associative array attributes where others is allowed as the index. * prj-attr.ads: (Others_Allowed_For): New Boolean function (Attribute_Record): New Boolean component Others_Allowed * prj-dect.adb: (Parse_Attribute_Declaration): For associative array attribute where others is allowed as the index, allow others as an index. * prj-nmsc.adb: (Process_Binder): Skip associative array attributes with index others (Process_Compiler): Ditto * prj-util.adb: (Value_Of (Index, In_Array)): Make no attempt to put in lower case when index is All_Other_Names. * prj.ads: (All_Other_Names): New constant ........ r138684 | charlet | 2008-08-05 02:27:49 -0700 (Tue, 05 Aug 2008) | 13 lines 2008-08-05 Jose Ruiz <ruiz@adacore.com> * init.c (__gnat_install_handler for linux): If we are building the Xenomai run time then we need to do two additional things: avoid memory swapping and transform the Linux environment task into a native Xenomai task. * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run time): Use interface to Xenomai native skin and avoid linux-specific way of setting CPU affinity. (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism. ........ r138685 | charlet | 2008-08-05 02:28:03 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Bob Duff <duff@adacore.com> * checks.ads: Minor comment fix ........ r138686 | charlet | 2008-08-05 02:28:12 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * make.adb: Minor reformatting ........ r138687 | charlet | 2008-08-05 02:28:44 -0700 (Tue, 05 Aug 2008) | 7 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and CS8. ........ r138688 | charlet | 2008-08-05 02:28:55 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * mlib.adb: Minor code reorganization Minor reformatting ........ r138689 | charlet | 2008-08-05 02:29:03 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * prj-attr.ads: Minor reformatting ........ r138690 | charlet | 2008-08-05 02:29:12 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * s-os_lib.adb: Minor reformatting ........ r138691 | charlet | 2008-08-05 02:29:20 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * s-fileio.adb: Minor code reorganization Minor reformatting ........ r138692 | charlet | 2008-08-05 02:29:28 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * prj.ads: Minor reformatting ........ r138693 | charlet | 2008-08-05 02:30:53 -0700 (Tue, 05 Aug 2008) | 7 lines 2008-08-05 Bob Duff <duff@adacore.com> * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in unresolved initial value of "null", because it causes implicitly generated "=" operators to be ambiguous, and because this type should not be passed to gigi. ........ r138694 | charlet | 2008-08-05 02:33:21 -0700 (Tue, 05 Aug 2008) | 2 lines * gnat.dg/not_null.adb: New test. ........ r138695 | charlet | 2008-08-05 02:39:05 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * sem_ch3.adb: Minor reformatting ........ r138696 | charlet | 2008-08-05 02:39:23 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * prj-nmsc.adb: Minor reformatting ........ r138697 | charlet | 2008-08-05 02:40:19 -0700 (Tue, 05 Aug 2008) | 6 lines 2008-08-05 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex visibility check on the component type if the simple test fails. ........ r138700 | rguenth | 2008-08-05 04:42:33 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Richard Guenther <rguenther@suse.de> PR middle-end/37026 * gcc.c-torture/compile/pr37026.c: New testcase. ........ r138701 | charlet | 2008-08-05 06:23:44 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Pascal Obry <obry@adacore.com> * a-coinve.adb: Reorder the code to avoid uninitialized warning. ........ r138702 | charlet | 2008-08-05 06:23:53 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * socket.c: Minor reformatting. ........ r138703 | charlet | 2008-08-05 06:24:02 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Pascal Obry <obry@adacore.com> * adaint.c: In UNIX cases do not call __gnat_stat but stat directly. ........ r138704 | charlet | 2008-08-05 06:24:27 -0700 (Tue, 05 Aug 2008) | 16 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * opt.ads (Warn_On_Biased_Representation): New flag * sem_ch13.adb: (Analyze_Attribute_Definition_Clause): Issue warning when biased representation is required. (Minimum_Size): Don't allow biasing if enum rep clause case * sem_warn.adb: (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws * usage.adb: Add lines for -gnatw.b/B switches ........ r138705 | charlet | 2008-08-05 06:26:24 -0700 (Tue, 05 Aug 2008) | 7 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files. * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate s-oscons.ads ........ r138706 | charlet | 2008-08-05 06:29:05 -0700 (Tue, 05 Aug 2008) | 3 lines * Makefile.in (gnatlib*): Now depend on oscons target. (oscons): New target. ........ r138708 | charlet | 2008-08-05 06:42:08 -0700 (Tue, 05 Aug 2008) | 12 lines 2008-08-05 Vincent Celier <celier@adacore.com> * s-wchwts.adb: (Wide_String_To_String): Returns a String with the same 'First as its parameter S. (Wide_Wide_String_To_String): Ditto * s-wchwts.ads: (Wide_String_To_String): Document that the lowest index of the returned String is equal to S'First. ........ r138709 | charlet | 2008-08-05 06:42:47 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Pascal Obry <obry@adacore.com> * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the readable attribute. ........ r138710 | charlet | 2008-08-05 06:53:04 -0700 (Tue, 05 Aug 2008) | 8 lines 2008-08-05 Vincent Celier <celier@adacore.com> * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put (File). * a-ztdeio.adb: Ditto. ........ r138711 | uweigand | 2008-08-05 06:53:20 -0700 (Tue, 05 Aug 2008) | 5 lines * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized SUBREG of multi-word hard register. * config/spu/spu.c (valid_subreg): Likewise. (adjust_operand): Handle SUBREGs of multi-word hard registers. ........ r138714 | uweigand | 2008-08-05 07:04:56 -0700 (Tue, 05 Aug 2008) | 27 lines * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus. Reword some comments throughout the file. (MFC_MIN_DMA_LIST_ELEMENTS): New define. (MFC_MAX_DMA_LIST_ELEMENTS): Likewise. (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS. (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS. (MFC_START_ENABLE): Remove PPU-only define. (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise. (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise. (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants. (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise. (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise. (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise. (MFC_GETB_CMD, MFC_GETF_CMD): Likewise. (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise. (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise. (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines. (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise. (mfc_sdcrt, mfc_sdcrtst): Likewise. (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise. (spu_read_machine_status): Fix typo. ........ r138716 | charlet | 2008-08-05 07:10:38 -0700 (Tue, 05 Aug 2008) | 7 lines 2008-08-05 Sergey Rybin <rybin@adacore.com> * gnat_ugn.texi: Changing the description of the gnatcheck metrics rule according to the change in the rule option. Add documentation for -gnatw.b/-gnatw.B ........ r138717 | charlet | 2008-08-05 07:10:54 -0700 (Tue, 05 Aug 2008) | 6 lines 2008-08-05 Robert Dewar <dewar@adacore.com> * ug_words: Add entries for -gnatw.b/-gnatw.B * vms_data.ads: Add entries for -gnatw.b/-gnatw.B ........ r138718 | pbrook | 2008-08-05 07:24:08 -0700 (Tue, 05 Aug 2008) | 16 lines 2008-08-05 Paul Brook <paul@codesourcery.com> gcc/ * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options. * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16. (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16. (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3. * config/arm/arm.h (TARGET_VFPD32): Define. (TARGET_VFP3): Use TARGET_VFPD32. (fputype): Add FPUTYPE_VFP3D16. (LAST_VFP_REGNUM): Use TARGET_VFPD32. * config/arm/constraints.md ("w"): Use TARGET_VFPD32. * config/arm/arm-cores.def: Add cortex-r4f. * config/arm/arm-tune.md: Regenerate. ........ r138719 | charlet | 2008-08-05 07:36:21 -0700 (Tue, 05 Aug 2008) | 2 lines * gnat.dg/post_block.adb: New test. ........ r138720 | charlet | 2008-08-05 07:37:01 -0700 (Tue, 05 Aug 2008) | 8 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * gsocket.h: Make this file includable in a Nucleus environment, which does not support sockets. * socket.c: Remove Nucleus-specific hack. ........ r138721 | charlet | 2008-08-05 07:37:10 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Pascal Obry <obry@adacore.com> * adaint.c: Remove support for readable attribute on vxworks and nucleus ........ r138722 | charlet | 2008-08-05 07:37:19 -0700 (Tue, 05 Aug 2008) | 8 lines 2008-08-05 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb: (Analyze_Attribute, case 'Result): handle properly the case where some operand of the expression in a post-condition generates a transient block. ........ r138723 | charlet | 2008-08-05 07:37:44 -0700 (Tue, 05 Aug 2008) | 7 lines 2008-08-05 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to right-hand side when it is an anonymous access_to_subprogram, to force static accessibility check when needed. ........ r138724 | charlet | 2008-08-05 07:49:51 -0700 (Tue, 05 Aug 2008) | 2 lines Remove test, premature. ........ r138725 | charlet | 2008-08-05 08:11:19 -0700 (Tue, 05 Aug 2008) | 7 lines 2008-08-05 Ed Schonberg <schonberg@adacore.com> * freeze.adb: (Freeze_Entity): A deferred constant does not violate the restriction No_Default_Initialization, ........ r138726 | charlet | 2008-08-05 08:13:05 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Thomas Quinot <quinot@adacore.com> * Makefile.rtl: Compile s-oscons.ads as part of the runtime library. ........ r138727 | charlet | 2008-08-05 08:13:25 -0700 (Tue, 05 Aug 2008) | 5 lines 2008-08-05 Doug Rupp <rupp@adacore.com> * vms_data.ads: Translation for /POINTER_SIZE qualifier. ........ r138728 | charlet | 2008-08-05 08:14:29 -0700 (Tue, 05 Aug 2008) | 13 lines 2008-08-05 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that can carry a null exclusion indicator, and on which an error may be posted if the indicator is redundant. * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion does not apply to a subtype mark that already excludes null. * sem_ch12.adb (Formal_Object_Declaration): Verify that a null exclusion does not apply to a subtype mark that already excludes null. ........ r138732 | doko | 2008-08-05 08:46:22 -0700 (Tue, 05 Aug 2008) | 4 lines 2008-08-05 Matthias Klose <doko@ubuntu.com> * HACKING: Update instructions how to build gcj/javaprims.h. ........ r138733 | rth | 2008-08-05 10:24:37 -0700 (Tue, 05 Aug 2008) | 20 lines * Makefile.in (c-cppbuiltin.o): Depend on debug.h. * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM. * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it. * common.opt (fdwarf2-cfi-asm): New. * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New. * config.in, configure: Rebuild. * dwarf2asm.c (dw2_asm_output_data_raw): New. (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New. (dw2_force_const_mem): Externalize. * dwarf2asm.h: Update. * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't generate a real label. (output_cfi_directive): New. (add_fde_cfi): If flag_dwarf2_cfi_asm, use it. (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm. (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality, and .cfi_lsda. (dwarf2out_end_epilogue): Emit .cfi_endproc. (output_loc_operands_raw, output_loc_sequence_raw): New. (output_cfa_loc_raw): New. ........ r138735 | pinskia | 2008-08-05 11:23:07 -0700 (Tue, 05 Aug 2008) | 13 lines 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com> PR tree-opt/37024 * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment is a conversion. 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com> PR tree-opt/37024 * gcc.dg/tree-ssa/tailcall-4.c: New testcase. ........ r138737 | paolo | 2008-08-05 13:39:48 -0700 (Tue, 05 Aug 2008) | 28 lines 2008-08-05 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/util/testsuite_api.h (diamond_derivation<>::test): Expect ambiguity together with the standard exception classes. * testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc: Remove xfail. * testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc: Likewise. * testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc: Likewise. * testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc: Likewise. * testsuite/18_support/bad_alloc/cons_virtual_derivation.cc: Likewise. * testsuite/18_support/bad_cast/cons_virtual_derivation.cc: Likewise. * testsuite/18_support/bad_exception/cons_virtual_derivation.cc: Likewise. * testsuite/18_support/bad_typeid/cons_virtual_derivation.cc: Likewise. * testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc: Likewise. * testsuite/ext/forced_exception_error/cons_virtual_derivation.cc: Likewise. * testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc: Likewise. * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc: Likewise. ........ r138738 | rth | 2008-08-05 14:25:48 -0700 (Tue, 05 Aug 2008) | 2 lines * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality. * configure: Rebuild. ........ r138740 | jason | 2008-08-05 15:22:00 -0700 (Tue, 05 Aug 2008) | 4 lines PR c++/37016 * tree-ssa.c (useless_type_conversion_p_1): Call langhook if TYPE_STRUCTURAL_EQUALITY_P is true for both types. ........ r138747 | bwilson | 2008-08-05 16:06:33 -0700 (Tue, 05 Aug 2008) | 4 lines * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist. (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array, va_size, and type_size. ........ r138748 | bwilson | 2008-08-05 16:16:51 -0700 (Tue, 05 Aug 2008) | 2 lines * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h. ........ r138751 | gccadmin | 2008-08-05 17:16:51 -0700 (Tue, 05 Aug 2008) | 1 line Daily bump. ........ r138756 | jason | 2008-08-05 19:25:20 -0700 (Tue, 05 Aug 2008) | 8 lines PR c++/37016 * decl.c (build_ptrmemfunc_type): Don't require structural comparison of PMF types. * tree.c (cp_build_qualified_type_real): Don't clear a valid TYPE_PTRMEMFUNC_TYPE. * typeck.c (cp_build_unary_op): Still do build_ptrmemfunc in templates. ........ r138757 | mkuvyrkov | 2008-08-05 23:20:02 -0700 (Tue, 05 Aug 2008) | 4 lines * sched-rgn.c (new_ready): Check if instruction can be speculatively scheduled before attempting speculation. (debug_rgn_dependencies): Remove wrongful assert. ........ r138758 | mkuvyrkov | 2008-08-05 23:22:33 -0700 (Tue, 05 Aug 2008) | 6 lines * haifa-sched.c (extend_global): Split to extend_global_data and extend_region_data. Update all uses. (extend_all): Rename to extend_block_data. * gcc.target/ia64/20080802-1.c: New test. ........ r138759 | mkuvyrkov | 2008-08-05 23:23:47 -0700 (Tue, 05 Aug 2008) | 7 lines PR target/35659 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ... * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here. Don't allow predicated instructions for data speculation. * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move declaration. ........ r138763 | krebbel | 2008-08-05 23:51:11 -0700 (Tue, 05 Aug 2008) | 11 lines 2008-08-06 Andreas Krebbel <krebbel1@de.ibm.com> * reload.c (find_reloads): Force constants into literal pool also if they are wrapped in a SUBREG. 2008-08-06 Andreas Krebbel <krebbel1@de.ibm.com> * gcc.c-torture/compile/20080806-1.c: New testcase. ........ r138764 | hubicka | 2008-08-06 00:50:52 -0700 (Wed, 06 Aug 2008) | 3 lines * predict.c (maybe_hot_frequency_p): When profile is absent, all frequencies might be hot. ........ r138765 | charlet | 2008-08-06 00:56:04 -0700 (Wed, 06 Aug 2008) | 12 lines 2008-08-06 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper null exclusion in a discriminant declaration * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion indicators when type is not an access type. * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion indicators when type is not an access type. ........ r138766 | charlet | 2008-08-06 00:56:23 -0700 (Wed, 06 Aug 2008) | 7 lines 2008-08-06 Javier Miranda <miranda@adacore.com> * exp_disp (Expand_Interface_Conversion): Freeze the entity associated with the target interface before expanding the code of the interface conversion. ........ r138767 | charlet | 2008-08-06 00:57:04 -0700 (Wed, 06 Aug 2008) | 8 lines 2008-08-06 Doug Rupp <rupp@adacore.com> * gcc-interface/utils2.c (snames.h) Include (TARGET_ABI_OPEN_VMS): Initialize. (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap for Convention C. ........ r138768 | charlet | 2008-08-06 01:07:32 -0700 (Wed, 06 Aug 2008) | 12 lines 2008-08-06 Doug Rupp <rupp@adacore.com> * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if TARGET_MALLOC64 clear. * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc if TARGET_MALLOC64 clear. * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c (TARGET_MALLC64): New macro. Default to clear. ........ r138769 | charlet | 2008-08-06 01:31:51 -0700 (Wed, 06 Aug 2008) | 5 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * xnmake.adb: Use new XUtil package for platform independent text output. ........ r138770 | charlet | 2008-08-06 01:32:00 -0700 (Wed, 06 Aug 2008) | 5 lines 2008-08-06 Vincent Celier <celier@adacore.com> * gnat_ugn.texi: Document compiler switch -gnateG ........ r138771 | charlet | 2008-08-06 01:32:09 -0700 (Wed, 06 Aug 2008) | 9 lines 2008-08-06 Quentin Ochem <ochem@adacore.com> * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark in the case of an empty pattern size. (Compute_Result): Do not do any computation in the case of an empty pattern size. (Report_Result): Fixed computation of the overflow guard. ........ r138772 | charlet | 2008-08-06 01:32:32 -0700 (Wed, 06 Aug 2008) | 7 lines 2008-08-06 Ed Schonberg <schonberg@adacore.com> * g-awk.adb (Finalize): Do not use directly objects of the type in the finalization routine to prevent elaboration order anomalies in new finalization scheme. ........ r138773 | charlet | 2008-08-06 01:32:42 -0700 (Wed, 06 Aug 2008) | 6 lines 2008-08-06 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete declaration for the same type. ........ r138774 | charlet | 2008-08-06 01:32:52 -0700 (Wed, 06 Aug 2008) | 4 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * sem.adb: Minor rewording (comment) ........ r138775 | charlet | 2008-08-06 01:33:21 -0700 (Wed, 06 Aug 2008) | 29 lines 2008-08-06 Jerome Lambourg <lambourg@adacore.com> * g-comlin.adb (Define_Switch, Get_Switches): New. (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when ungrouping switches. (For_Each_Simple_Switch): Allow more control over parameters handling. This generic method now allows ungrouping of switches with parameters and switches with more than one letter after the prefix. (Set_Command_Line): Take care of switches that are prefixed with a switch handling parameters without delimiter (-gnatya and -gnaty3 for example). (Add_Switch, Remove_Switch): Handle parameters possibly present inside a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of the operation. (Start, Alias_Switches, Group_Switches): Take care of parameters possibly present inside a group. * g-comlin.ads (Define_Switch): New method used to define a list of expected switches, that are necessary for correctly ungrouping switches with more that one character after the prefix. (Get_Switches): Method that builds a getopt string from the list of switches as set previously by Define_Switch. (Add_Switch, Remove_Switch): New versions of the methods, reporting the status of the operation. Also allow the removal of switches with parameters only. (Command_Line_Configuration_Record): Maintain a list of expected switches. ........ r138776 | charlet | 2008-08-06 01:52:10 -0700 (Wed, 06 Aug 2008) | 4 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * sem_ch3.adb: Minor reformatting ........ r138777 | charlet | 2008-08-06 01:52:19 -0700 (Wed, 06 Aug 2008) | 5 lines 2008-08-06 Pascal Obry <obry@adacore.com> * adaint.c: Another fix for ACL support on Windows. ........ r138778 | charlet | 2008-08-06 01:52:28 -0700 (Wed, 06 Aug 2008) | 6 lines 2008-08-06 Javier Miranda <miranda@adacore.com> * exp_disp (Expand_Interface_Actuals): Adds missing support for expansion of calls to subprograms using selected components. ........ r138779 | charlet | 2008-08-06 01:52:36 -0700 (Wed, 06 Aug 2008) | 7 lines 2008-08-06 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Call): Use base type to determine whether a dereference is needed because a subtype of an access_to_subprogram is simply an access-subtype ........ r138780 | charlet | 2008-08-06 01:52:44 -0700 (Wed, 06 Aug 2008) | 6 lines 2008-08-06 Jerome Lambourg <lambourg@adacore.com> * g-comlin.adb (Set_Command_Line): Now that aliases can contain parameters, always specify the expected separator. ........ r138781 | charlet | 2008-08-06 01:57:21 -0700 (Wed, 06 Aug 2008) | 10 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb, g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads, g-sttsne-dummy.ads: New files. * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources with pragma Unimplemented_Unit for sockets packages on Nucleus. ........ r138782 | charlet | 2008-08-06 02:16:07 -0700 (Wed, 06 Aug 2008) | 2 lines New tests. ........ r138783 | charlet | 2008-08-06 02:35:06 -0700 (Wed, 06 Aug 2008) | 4 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * sem_res.adb: Minor reformatting ........ r138784 | charlet | 2008-08-06 02:35:17 -0700 (Wed, 06 Aug 2008) | 10 lines 2008-08-06 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is incomplete, add the access_to_subprogram type to the list of private dependents only if the incomplete type will be completed in the current scope. (Build_Discriminant_Constraints): If the type of the discriminant is access_to_variable, reject a constraint that is access_to_constant. ........ r138785 | charlet | 2008-08-06 02:35:27 -0700 (Wed, 06 Aug 2008) | 4 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * exp_ch11.adb: Minor reformatting ........ r138786 | charlet | 2008-08-06 02:41:04 -0700 (Wed, 06 Aug 2008) | 7 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * s-fileio.adb (Open): When file open operation fails, raise Name_Error only when the operating system reports a non-existing file or directory (ENOENT), otherwise raise Name_Error. ........ r138787 | charlet | 2008-08-06 02:42:31 -0700 (Wed, 06 Aug 2008) | 9 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove obsolete targets referencing gen-soccon When generating s-oscons.ads, use a file name that includes the THREAD_KIND, to ensure that the (potentially different) version from a previous build with a different threads flavour does not get reused. ........ r138788 | charlet | 2008-08-06 02:43:10 -0700 (Wed, 06 Aug 2008) | 8 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove obsolete targets referencing gen-soccon When generating s-oscons.ads, use a file name that includes the THREAD_KIND, to ensure that the (potentially different) version from a previous build with a different threads flavour does not get reused. ........ r138789 | charlet | 2008-08-06 02:43:33 -0700 (Wed, 06 Aug 2008) | 4 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * Makefile.in: Now generate s-oscons-$(THREAD_KIND). ........ r138790 | charlet | 2008-08-06 03:03:21 -0700 (Wed, 06 Aug 2008) | 10 lines 2008-08-06 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse of incomplete type. * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming of a formal parameter of an incomplete type. Improve error message for other improper uses of incomplete types. ........ r138791 | charlet | 2008-08-06 03:03:52 -0700 (Wed, 06 Aug 2008) | 5 lines 2008-08-06 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Clarify -gnato documentation ........ r138792 | charlet | 2008-08-06 03:08:09 -0700 (Wed, 06 Aug 2008) | 16 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * gcc-interface/Makefile.in, g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads, g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads, g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads, g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads, g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads, g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads, g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads, g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads: Remove GNAT.Sockets.Constants. This internal package is replaced by System.OS_Constants. ........ r138793 | aldyh | 2008-08-06 03:25:22 -0700 (Wed, 06 Aug 2008) | 7 lines PR middle-end/35432 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types if want_value. testsuite/ * gcc.c-torture/compile/pr35432.c: New file. ........ r138797 | paolo | 2008-08-06 05:25:00 -0700 (Wed, 06 Aug 2008) | 9 lines 2008-08-06 Paolo Carlini <paolo.carlini@oracle.com> * acinclude.m4 ([GLIBCXX_CHECK_INT64_T]): Also check whether int64_t is actually a typedef to long or long long. * include/bits/postypes.h: If int64_t is actually a typedef for long or long long don't include <stdint.h> unnecessarily. * configure: Regenerate. * config.h.in: Likewise. ........ r138799 | sam | 2008-08-06 06:54:31 -0700 (Wed, 06 Aug 2008) | 2 lines gcc/ada/ * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove. ........ r138800 | sam | 2008-08-06 06:55:07 -0700 (Wed, 06 Aug 2008) | 7 lines gcc/ada/ * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing with s-oscons-tmplt.i. libada/ * Makefile.in: Pass FLAGS_TO_PASS to sub-make for target oscons. ........ r138804 | jsm28 | 2008-08-06 08:20:14 -0700 (Wed, 06 Aug 2008) | 4 lines * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset for unrepresentable subregs or treat them as equal to other regs or subregs with the same register number. ........ r138806 | hjl | 2008-08-06 08:29:37 -0700 (Wed, 06 Aug 2008) | 31 lines gcc/ 2008-08-06 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/37009 * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary for incoming stack boundary. * function.c (assign_parm_find_entry_rtl): Update parm_stack_boundary. * function.h (rtl_data): Add parm_stack_boundary. * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check parm_stack_boundary for incoming stack boundary. gcc/testsuite/ 2008-08-06 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/37009 * gcc.dg/torture/stackalign/alloca-2.c: New. * gcc.dg/torture/stackalign/alloca-3.c: Likewise. * gcc.dg/torture/stackalign/alloca-4.c: Likewise. * gcc.dg/torture/stackalign/vararg-3.c: Likewise. * gcc.target/i386/incoming-1.c: Likewise. * gcc.target/i386/incoming-2.c: Likewise. * gcc.target/i386/incoming-3.c: Likewise. * gcc.target/i386/incoming-4.c: Likewise. * gcc.target/i386/incoming-5.c: Likewise. ........ r138807 | matz | 2008-08-06 08:34:45 -0700 (Wed, 06 Aug 2008) | 7 lines PR target/36613 * reload.c (push_reload): Merge in,out,in_reg,out_reg members for reused reload, instead of overwriting them. * gcc.target/i386/pr36613.c: New testcase. ........ r138808 | hjl | 2008-08-06 08:43:46 -0700 (Wed, 06 Aug 2008) | 15 lines gcc/ 2008-08-06 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/37010 * calls.c (expand_call): Use the biggest preferred stack boundary. gcc/testsuite/ 2008-08-06 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/37010 * gcc.dg/torture/stackalign/push-1.c: New. ........ r138809 | ghazi | 2008-08-06 08:57:09 -0700 (Wed, 06 Aug 2008) | 44 lines * builtins.c (expand_builtin_profile_func): Avoid C++ keywords. * calls.c (avoid_likely_spilled_reg): Likewise. * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise. * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise. * config/i386/i386.c (ix86_expand_special_args_builtin, ix86_secondary_reload): Likewise. * except.c (struct eh_region, gen_eh_region_catch, remove_unreachable_regions, duplicate_eh_regions, assign_filter_values, build_post_landing_pads, sjlj_find_directly_reachable_regions, remove_eh_handler, reachable_next_level, foreach_reachable_handler, can_throw_internal_1, can_throw_external_1, collect_one_action_chain): Likewise. * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise. * fold-const.c (twoval_comparison_p, eval_subst): Likewise. * function.c (update_temp_slot_address, instantiate_new_reg, instantiate_virtual_regs_in_rtx, instantiate_virtual_regs_in_insn): Likewise. * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise. * gimplify.c (gimplify_call_expr, gimplify_init_constructor, gimplify_cleanup_point_expr): Likewise. * ipa-cp.c (ipcp_lattice_changed): Likewise. * passes.c (next_pass_1): Likewise. * print-tree.c (print_node_brief, print_node): Likewise. * profile.c (branch_prob): Likewise. * tree-dump.c (dump_register): Likewise. * tree-eh.c (replace_goto_queue_cond_clause, lower_catch): Likewise. * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks, copy_statement_list, remap_gimple_op_r, copy_tree_body_r, copy_edges_for_bb, copy_cfg_body, copy_tree_r, copy_arguments_for_versioning, copy_static_chain): Likewise. * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl, add_new_name_mapping, register_new_name_mapping): Likewise. * tree-mudflap.c (mf_xform_derefs): Likewise. * tree-predcom.c (struct chain, dump_chain, replace_ref_with, get_init_expr, combine_chains): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree-ssa-structalias.c (create_variable_info_for): Likewise. * tree-vrp.c (simplify_cond_using_ranges): Likewise. * tree.c (substitute_in_expr, iterative_hash_expr): Likewise. * value-prof.c (gimple_duplicate_stmt_histograms): Likewise. ........ r138810 | bwilson | 2008-08-06 09:02:16 -0700 (Wed, 06 Aug 2008) | 14 lines 2008-08-06 Marc Gauthier <marc@tensilica.com> * config.gcc: Match more processor names for Xtensa. * configure.ac: Likewise. * doc/install.texi (Specific): Likewise. * configure: Regenerate. testsuite/ * lib/target-supports.exp (check_profiling_available): Match more processor names for Xtensa. * g++.old-deja/g++.jason/thunk3.C: Likewise. * gcc.dg/intmax_t-1.c: Likewise. * gcc.dg/sibcall-3.c: Likewise. * gcc.dg/sibcall-4.c: Likewise. * gcc.c-torture/compile/20001226-1.c: Likewise. ........ r138811 | bwilson | 2008-08-06 09:03:03 -0700 (Wed, 06 Aug 2008) | 3 lines libgcc/ * config.host: Match more processor names for Xtensa. ........ r138812 | matz | 2008-08-06 09:10:22 -0700 (Wed, 06 Aug 2008) | 3 lines * Makefile.in (write_entries_to_file): Quote words. * gengtype.c: (read_input_line): Skip over leading white-space. ........ r138813 | ghazi | 2008-08-06 09:12:51 -0700 (Wed, 06 Aug 2008) | 89 lines * config/alpha/alpha.c (alpha_preferred_reload_class, alpha_secondary_reload, alpha_emit_set_const_1, function_value, alpha_output_mi_thunk_osf): Avoid C++ keywords. * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise. * config/arm/arm.md: Likewise. * config/avr/avr-protos.h (preferred_reload_class, test_hard_reg_class, avr_simplify_comparison_p, out_shift_with_cnt, class_max_nregs): Likewise. * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p, output_movqi, output_movhi, output_movsisf, out_shift_with_cnt, preferred_reload_class, test_hard_reg_class): Likewise. * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok, bfin_memory_move_cost, bfin_secondary_reload, bfin_output_mi_thunk): Likewise. * config/crx/crx.c (crx_secondary_reload_class, crx_memory_move_cost): Likewise. * config/frv/frv-protos.h (frv_secondary_reload_class, frv_class_likely_spilled_p, frv_class_max_nregs): Likewise. * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg, frv_secondary_reload_class, frv_class_likely_spilled_p, frv_class_max_nregs): Likewise. * config/h8300/h8300.c (h8300_classify_operand, h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count): Likewise. * config/i386/winnt.c (i386_pe_declare_function_type): Likewise. * config/ia64/ia64.c (ia64_preferred_reload_class, ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise. * config/iq2000/iq2000.c (gen_int_relational): Likewise. * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare): Likewise. * config/m68hc11/m68hc11.c (preferred_reload_class, m68hc11_memory_move_cost): Likewise. * config/mcore/mcore.c (mcore_secondary_reload_class, mcore_reload_class): Likewise. * config/mips/mips.c (mips_hard_regno_mode_ok_p, mips_class_max_nregs, mips_cannot_change_mode_class, mips_preferred_reload_class, mips_secondary_reload_class, mips_output_mi_thunk): Likewise. * config/mmix/mmix.c (mmix_preferred_reload_class, mmix_preferred_output_reload_class, mmix_secondary_reload_class): Likewise. * config/mn10300/mn10300.c (mn10300_secondary_reload_class): Likewise. * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions, pa_can_combine_p, pa_cannot_change_mode_class): Likewise. * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. * config/rs6000/rs6000.c (paired_expand_vector_init, rs6000_secondary_reload_class, rs6000_output_mi_thunk, compare_section_name, rs6000_memory_move_cost): Likewise. * config/s390/s390.c (s390_emit_compare_and_swap, s390_preferred_reload_class, s390_secondary_reload, legitimize_pic_address, legitimize_tls_address, legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic, s390_class_max_nregs): Likewise. * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. * config/s390/s390.md: Likewise. * config/score/score-protos.h (score_secondary_reload_class, score_preferred_reload_class): Likewise. * config/score/score.c (score_preferred_reload_class, score_secondary_reload_class): Likewise. * config/score/score3.c (score3_output_mi_thunk, score3_preferred_reload_class, score3_secondary_reload_class, score3_hard_regno_mode_ok): Likewise. * config/score/score3.h (score3_preferred_reload_class, score3_secondary_reload_class): Likewise. * config/score/score7.c (score7_output_mi_thunk, score7_preferred_reload_class, score7_secondary_reload_class, score7_hard_regno_mode_ok): Likewise. * config/score/score7.h (score7_preferred_reload_class, score7_secondary_reload_class): Likewise. * config/sh/sh.c (prepare_move_operands, output_far_jump, output_branchy_insn, add_constant, gen_block_redirect, sh_insn_length_adjustment, sh_cannot_change_mode_class, sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise. * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi, xstormy16_output_cbranch_si, xstormy16_secondary_reload_class, xstormy16_preferred_reload_class): Likewise. * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap, xtensa_expand_atomic, override_options, xtensa_preferred_reload_class, xtensa_secondary_reload_class): Likewise. * reorg.c (try_merge_delay_insns): Likewise. * tree.c (merge_dllimport_decl_attributes): Likewise. * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA. ........ r138814 | manu | 2008-08-06 09:17:41 -0700 (Wed, 06 Aug 2008) | 12 lines 2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 8715 * c-common.c (warn_for_sign_compare): New. Handle separately the case that 'constant' is zero. * c-typeck.c (build_binary_op): Move code to c-common.c cp/ * typeck.c (cp_build_binary_op): Move code to c-common.c. testsuite/ * gcc.dg/pr8715.c: New. * g++.dg/warn/pr8715.C: New. ........ r138815 | victork | 2008-08-06 09:26:46 -0700 (Wed, 06 Aug 2008) | 19 lines 2008-08-06 Victor Kaplansky <victork@il.ibm.com> Ira Rosen <irar@il.ibm.com> * tree-vect-transform.c (vect_model_simple_cost): Return immediately if stmt is pure SLP. (vect_model_store_cost): Ditto. (vect_model_load_cost): Ditto. (vectorizable_store): Remove PURE_SLP check before call to vect_model_store_cost. (vect_model_store_cost): When checking whether stmt describe strided access, add a check that it is not slp_node. Testsute * gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c: New test. ........ r138816 | manu | 2008-08-06 09:37:06 -0700 (Wed, 06 Aug 2008) | 11 lines 2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 26785 * diagnostic.c (permerror_at): New. * toplev.h (permerror_at): Declare. cp/ * decl.c (grokdeclarator): Use explicit location with permerror_at. testsuite/ * g++.dg/warn/pr26785.C: New. ........ r138817 | ghazi | 2008-08-06 10:22:05 -0700 (Wed, 06 Aug 2008) | 9 lines * matrix-reorg.c (compute_offset): Avoid C++ keywords. * c-common.c: Fix typo. (c_common_reswords): Activate more C++ keyword warnings. testsuite: * gcc.dg/Wcxx-compat-2.c: Adjust test for more warnings. ........ r138819 | dgregor | 2008-08-06 12:08:12 -0700 (Wed, 06 Aug 2008) | 14 lines 2008-08-06 Douglas Gregor <doug.gregor@gmail.com> PR c++/36460 * parser.c (cp_parser_template_argument): Don't assume that '>>' following a type-id is an error when in C++0x mode. 2008-08-06 Douglas Gregor <doug.gregor@gmail.com> PR c++/36460 * g++.dg/cpp0x/bracket3.C: Add another test case for the >> warning under -Wc++0x-compat. * g++.dg/cpp0x/bracket4.C: Add testcase for PR c++/36460. ........ r138829 | paolo | 2008-08-06 16:17:05 -0700 (Wed, 06 Aug 2008) | 14 lines 2008-08-06 Paolo Carlini <paolo.carlini@oracle.com> * acinclude.m4 ([GLIBCXX_CHECK_STDIO_MACROS]): New, checks for common values of EOF, SEEK_CUR, SEEK_END. * configure.ac: Use it. * include/bits/ios_base.h: Likewise. * include/bits/char_traits.h: Likewise. * config/locale/gnu/ctype_members.cc: Include <cstdio>. * config/locale/generic/ctype_members.cc: Likewise. * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust dg-error lines. * testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise. * configure: Regenerate. * config.h.in: Likewise. ........ r138832 | gccadmin | 2008-08-06 17:16:41 -0700 (Wed, 06 Aug 2008) | 1 line Daily bump. ........ r138834 | krebbel | 2008-08-07 00:18:53 -0700 (Thu, 07 Aug 2008) | 6 lines 2008-08-07 Andreas Krebbel <krebbel1@de.ibm.com> * gcc.c-torture/compile/20080806-1.c: Move testcase ... * gcc.target/s390/20080806-1.c: ... to here. ........ r138835 | hubicka | 2008-08-07 00:35:51 -0700 (Thu, 07 Aug 2008) | 21 lines * optabs.c (emit_unop_insn): Break out to ... (maybe_emit_unop_insn): ... this one. (expand_sfix_optab): Use maybe variant. * optabs.h (maybe_emit_unop_insn): Declare. * i386.md (mov0 patterns): Enable by default. (FP conversion expanders): Disable expansion of code expanding sequences when instruction should be optimized for size. (single strinop patterns): Enable when optimizing for size. (string expanders): Disable expanding of code expanding sequences when optimizning instruction for size. * i386.c (ix86_expand_vector_move_misalign): Do code size optimization per BB basis. (ix86_fp_comparison_sahf_cost): Likewise. (ix86_expand_branch): Likewise. (ix86_expand_ashl_const): Likewise. (ix86_split_ashl): Likewise. (ix86_expand_strlen): Likewise. (ix86_emit_fp_unordered_jump): Likewie. ........ r138837 | rguenth | 2008-08-07 03:01:48 -0700 (Thu, 07 Aug 2008) | 8 lines 2008-08-07 Richard Guenther <rguenther@suse.de> PR middle-end/37042 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all pointers can access anything. * gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c: New testcase. ........ r138839 | hjl | 2008-08-07 06:16:23 -0700 (Thu, 07 Aug 2008) | 24 lines gcc/ 2008-08-07 H.J. Lu <hongjiu.lu@intel.com> PR target/36992 * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128. * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128. (bdesc_args): Add IX86_BUILTIN_MOVQ128. * config/i386/sse.md (sse2_movq128): New. * doc/extend.texi: Document __builtin_ia32_movq128. gcc/testsuite/ 2008-08-07 H.J. Lu <hongjiu.lu@intel.com> PR target/36992 * gcc.target/i386/pr36992-1.c: Scan movq. * gcc.target/i386/pr36992-2.c: Use "-O2 -msse4" instead of "-O0 -msse2". Scan movq. ........ r138840 | aph | 2008-08-07 07:19:15 -0700 (Thu, 07 Aug 2008) | 5 lines 2008-08-07 Andrew Haley <aph@redhat.com> * testsuite/libjava.lang/StackTrace2.java: Rewrite to prevent spurious failure when some methods are inlined. ........ r138841 | hubicka | 2008-08-07 07:55:32 -0700 (Thu, 07 Aug 2008) | 3 lines PR target/37048 * i386.md (single stringop patterns): Enable unconditionally. ........ r138842 | smw | 2008-08-07 08:06:28 -0700 (Thu, 07 Aug 2008) | 1 line * include/tr1_impl/regex (match_results): Add cbegin()/cend() per N2691 WD. ........ r138843 | dgregor | 2008-08-07 08:38:59 -0700 (Thu, 07 Aug 2008) | 9 lines 2008-08-07 Douglas Gregor <doug.gregor@gmail.com> * semantics.c (finish_decltype_type): Handle calls to function pointers and references to functions properly. 2008-08-07 Douglas Gregor <doug.gregor@gmail.com> * g++.dg/cpp0x/decltype12.C: New. ........ r138844 | jsm28 | 2008-08-07 08:43:28 -0700 (Thu, 07 Aug 2008) | 4 lines * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal, movv2si_internal): Combine into mov<mode>_internal. (movv2si_internal_2): Remove. ........ r138846 | rth | 2008-08-07 09:29:22 -0700 (Thu, 07 Aug 2008) | 7 lines * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New. * configure, config.in: Rebuild. * debug.h (dwarf2out_do_cfi_asm): Declare. * c-cppbuiltin.c (c_cpp_builtins): Use it. * dwarf2out.c (dwarf2out_do_cfi_asm): New. (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info, dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it. ........ r138847 | jsm28 | 2008-08-07 09:58:29 -0700 (Thu, 07 Aug 2008) | 9 lines * config/arm/arm.c (output_move_neon): Update comment describing big-endian vector layout. (arm_assemble_integer): Do not handle big-endian NEON vectors specially. * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>, neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust element indices for big-endian. ........ r138848 | hjl | 2008-08-07 11:28:23 -0700 (Thu, 07 Aug 2008) | 4 lines 2008-08-07 H.J. Lu <hongjiu.lu@intel.com> * semantics.c (finish_decltype_type): Initialize type. ........ r138849 | aaronwl | 2008-08-07 12:30:14 -0700 (Thu, 07 Aug 2008) | 5 lines 2008-08-07 Aaron W. LaFramboise <aaronavay62@aaronwl.com> * pex-win32.c (argv_to_argc): New function. (spawn_script): Duplicate argv before calling win32_spawn. ........ r138850 | rth | 2008-08-07 13:06:36 -0700 (Thu, 07 Aug 2008) | 2 lines PR debug/37033 * gcc.c (cpp_options): Pass along -g*. ........ r138851 | bwilson | 2008-08-07 16:44:31 -0700 (Thu, 07 Aug 2008) | 3 lines * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming value in a6 after the set_frame_ptr insn. ........ r138854 | gccadmin | 2008-08-07 17:16:46 -0700 (Thu, 07 Aug 2008) | 1 line Daily bump. ........ r138859 | ghazi | 2008-08-07 18:42:33 -0700 (Thu, 07 Aug 2008) | 6 lines * c-common.c (c_common_reswords): Also warn about keyword "bool". testsuite: * gcc.dg/Wcxx-compat-2.c: Check for bool/_Bool. ........ r138862 | paolo | 2008-08-08 02:54:09 -0700 (Fri, 08 Aug 2008) | 6 lines 2008-08-08 Paolo Carlini <paolo.carlini@oracle.com> * include/bits/ios_base.h: Undef _IOS_BASE_SEEK_CUR and _IOS_BASE_SEEK_END at the end of the file. * include/bits/char_traits.h: Likewise for _CHAR_TRAITS_EOF. ........ r138863 | hubicka | 2008-08-08 03:04:51 -0700 (Fri, 08 Aug 2008) | 6 lines * recog.c (split_all_insns): Set RTL profile (peephole2_optimize): Likewise. * function.c (thread_prologue_and_epilogue_insns): Likewise. * combine.c (combine_instructions): Likewise. ........ r138864 | hubicka | 2008-08-08 03:09:37 -0700 (Fri, 08 Aug 2008) | 14 lines * i386.h (ix86_size_cost): Declare. (ix86_cur_cost): New function macro. * i386.md (peepholes expanding size and splitters): Predicate by optimize_insn_for_speed_p. (peepholes reduce size and splitters): Predicate by optimize_insn_for_size_p. * i386.c (ix86_size_cost): Rename from ... (size_cost): This one. (override_options): Update. (decide_alg): Likewise. (ix86_expand_clear): Use RTL profile. (ix86_pad_returns): Use RTL profile. ........ r138865 | rguenth | 2008-08-08 04:30:13 -0700 (Fri, 08 Aug 2008) | 9 lines 2008-08-08 Richard Guenther <rguenther@suse.de> PR tree-optimization/37056 * gimple.h (gimple_assign_rhs_class): New helper function. * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle unary operations properly. * gcc.c-torture/compile/pr37056.c: New testcase. ........ r138866 | charlet | 2008-08-08 05:22:02 -0700 (Fri, 08 Aug 2008) | 6 lines 2008-08-08 Robert Dewar <dewar@adacore.com> * g-comlin.adb: Minor code reorganization Minor reformatting ........ r138867 | charlet | 2008-08-08 05:22:10 -0700 (Fri, 08 Aug 2008) | 4 lines 2008-08-08 Robert Dewar <dewar@adacore.com> * g-comlin.ads: Minor reformatting ........ r138868 | charlet | 2008-08-08 05:22:18 -0700 (Fri, 08 Aug 2008) | 5 lines 2008-08-08 Robert Dewar <dewar@adacore.com> * s-fileio.adb: Minor reformatting ........ r138869 | charlet | 2008-08-08 05:22:26 -0700 (Fri, 08 Aug 2008) | 5 lines 2008-08-08 Robert Dewar <dewar@adacore.com> * sem_attr.adb: Minor code reorganization (use Nkind_In) Minor reformatting ........ r138870 | charlet | 2008-08-08 05:22:51 -0700 (Fri, 08 Aug 2008) | 6 lines 2008-08-08 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Expand_Allocator_Expression): add check if null exclusion indicator is present ........ r138871 | charlet | 2008-08-08 05:23:28 -0700 (Fri, 08 Aug 2008) | 6 lines 2008-08-08 Thomas Quinot <quinot@adacore.com> * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert previous change, not needed after all. ........ r138872 | charlet | 2008-08-08 05:23:48 -0700 (Fri, 08 Aug 2008) | 5 lines 2008-08-06 Thomas Quinot <quinot@adacore.com> * Makefile.in: generate s-oscons.ads again, previous change was unneeded. ........ r138873 | charlet | 2008-08-08 05:37:51 -0700 (Fri, 08 Aug 2008) | 7 lines 2008-08-08 Thomas Quinot <quinot@adacore.com> * g-sercom.ads: (Name): Document application scope (only legacy PC serial ports on Linux and Windows). ........ r138874 | charlet | 2008-08-08 05:58:36 -0700 (Fri, 08 Aug 2008) | 7 lines 2008-08-08 Thomas Quinot <quinot@adacore.com> * gsocket.h: On Windows, include <errno.h> and redefine only selected errno values from their <winsock2.h> definitions. ........ r138875 | charlet | 2008-08-08 05:58:46 -0700 (Fri, 08 Aug 2008) | 4 lines 2008-08-08 Thomas Quinot <quinot@adacore.com> * s-osinte-freebsd.ads: Minor reformatting ........ r138876 | charlet | 2008-08-08 05:59:14 -0700 (Fri, 08 Aug 2008) | 4 lines 2008-08-08 Thomas Quinot <quinot@adacore.com> * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting ........ r138877 | charlet | 2008-08-08 05:59:28 -0700 (Fri, 08 Aug 2008) | 12 lines 2008-08-08 Thomas Quinot <quinot@adacore.com> * g-soccon.ads: New file. * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb, g-stsifd-sockets.adb, g-socket.adb, g-socket.ads, g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child unit, to allow building software that depends on this internal unit with both older and newer compilers. ........ r138878 | charlet | 2008-08-08 05:59:38 -0700 (Fri, 08 Aug 2008) | 4 lines 2008-08-08 Robert Dewar <dewar@adacore.com> * s-strxdr.adb: Minor reformatting ........ r138879 | charlet | 2008-08-08 06:00:00 -0700 (Fri, 08 Aug 2008) | 10 lines 2008-08-08 Bob Duff <duff@adacore.com> * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow checking for integer operations (including division by zero)", which is wrong -- divide by zero is not part of overflow checking. Also added misc clarification about what check-suppression means. * gnat_rm.texi: Clarify the meaning of pragma Suppress. ........ r138880 | charlet | 2008-08-08 06:03:37 -0700 (Fri, 08 Aug 2008) | 5 lines 2008-08-08 Thomas Quinot <quinot@adacore.com> * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a compatibility shim. ........ r138881 | charlet | 2008-08-08 06:09:37 -0700 (Fri, 08 Aug 2008) | 7 lines 2008-08-08 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted from Freeze_Entity. Used to generate cross-reference information for types declared in generic packages. ........ r138882 | rguenth | 2008-08-08 08:01:05 -0700 (Fri, 08 Aug 2008) | 9 lines 2008-08-08 Richard Guenther <rguenther@suse.de> * tree-ssa-ccp.c (likely_value): Calls are not all varying. (surely_varying_stmt_p): Calls are varying only if they are non-builtin and not indirect or have no result. (ccp_fold): Re-instantiate code before the tuples merge. * gcc.dg/tree-ssa/ssa-ccp-20.c: New testcase. ........ r138884 | domob | 2008-08-08 11:19:46 -0700 (Fri, 08 Aug 2008) | 23 lines 2008-08-08 Daniel Kraft <d@domob.eu> * gfortran.h (gfc_finalizer): Replaced member `procedure' by two new members `proc_sym' and `proc_tree' to store the symtree after resolution. (gfc_find_sym_in_symtree): Made public. * decl.c (gfc_match_final_decl): Adapted for new member name. * interface.c (gfc_find_sym_in_symtree): Made public. (gfc_extend_expr), (gfc_extend_assign): Changed call accordingly. * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived): New methods for module-file IO of f2k_derived. (mio_symbol): Do IO of f2k_derived namespace. * resolve.c (gfc_resolve_finalizers): Adapted for new member name and finding the symtree for the symbol here. * symbol.c (gfc_free_finalizer): Adapted for new members. 2008-08-08 Daniel Kraft <d@domob.eu> * gfortran.dg/finalize_9.f03: New test. * gfortran.dg/module_md5_1.f90: Adapted MD5-sum for changed module file format. ........ r138885 | dorit | 2008-08-08 12:00:36 -0700 (Fri, 08 Aug 2008) | 15 lines 2008-08-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vectorizable_conversion): Pass the integral type to vectorize.builtin_conversion. (vectorizable_conversion): Likewise. * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes integral type as input. * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for FIX_TRUNC_EXPR. (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS and ALTIVEC_BUILTIN_VCTSXS. (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix formatting. ........ r138886 | reichelt | 2008-08-08 14:17:54 -0700 (Fri, 08 Aug 2008) | 6 lines PR c++/35985 * decl.c (xref_basetypes): Check base for MAYBE_CLASS_TYPE_P, and make sure it is not a union. * g++.dg/inherit/base3.C: New. ........ r138887 | pthaugen | 2008-08-08 14:40:18 -0700 (Fri, 08 Aug 2008) | 15 lines 2008-08-08 Peter Bergner <bergner@vnet.ibm.com> * doc/invoke.texi: Add cpu_type power7. * config.in (HAVE_AS_VSX): New. * config.gcc: Add cpu_type power7. * configure.ac (HAVE_AS_VSX): Check for assembler support of the VSX instructions. * configure: Regenerate. * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to power5. * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define. (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7. (EXTRA_SPECS): Add asm_cpu_power7 spec string. ........ r138889 | manu | 2008-08-08 16:07:49 -0700 (Fri, 08 Aug 2008) | 12 lines Property changes on: libcpp ___________________________________________________________________ Name: svn:ignore - autom4te.cache + TAGS TAGS.sub GPATH GRTAGS GSYMS GTAGS autom4te.cache ........ r138890 | manu | 2008-08-08 16:15:31 -0700 (Fri, 08 Aug 2008) | 26 lines 2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 28875 * flags.h (set_Wunused): Delete * toplev.c (process_options): Handle Wunused flags here. * opts.c (maybe_warn_unused_parameter): Delete. (common_handle_option): Replace set_Wunused by warn_unused. (set_Wextra): Do not handle Wunused-parameter here. (set_Wunused): Delete. * c-opts.c (c_common_handle_option): Replace set_Wunused by warn_unused. * common.opt (Wunused): Add Var and Init. (Wunused-function): Likewise. (Wunused-label): Likewise. (Wunused-parameter): Likewise. (Wunused-value): Likewise. (Wunused-variable): Likewise. fortran/ * options.c (set_Wall): Replace set_Wunused by warn_unused. java/ * lang.c (java_handle_option): Replace set_Wunused with warn_unused. testsuite/ * gcc.dg/unused-6-no.c: New. * gcc.dg/unused-6-WallWextra.c: New. ........ r138891 | pault | 2008-08-08 16:22:51 -0700 (Fri, 08 Aug 2008) | 9 lines 2008-08-09 Paul Thomas <pault@gcc.gnu.org> PR fortran/37011 * symbol.c (gfc_add_extension): New function. * decl.c (gfc_get_type_attr_spec): Call it. (gfc_match_derived_decl): Set symbol extension attribute from attr.extension. * gfortran.h : Add prototype for gfc_add_extension. ........ r138892 | manu | 2008-08-08 16:32:23 -0700 (Fri, 08 Aug 2008) | 12 lines 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 7651 * doc/invoke.texi (-Wextra): Move warning from here... (-Wuninitialized): ... to here. cp/ * class.c (check_bases_and_members): Warn with -Wuninitialized instead of -Wextra. testsuite/ * g++.dg/warn/Wuninitializable-member.C: New. * g++.dg/warn/Wuninitializable-member-no.C: New. ........ r138893 | manu | 2008-08-08 16:57:19 -0700 (Fri, 08 Aug 2008) | 111 lines 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 36901 * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New. * diagnostic.c (pedantic_warning_kind, permissive_error_kind): Moved from diagnostic.h (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and DK_PERMERROR. (emit_diagnostic): New. (warning0, pedwarn0): Delete. (warning, warning_at, pedwarn, permerror): Return bool. * diagnostic.h (pedantic_warning_kind, permissive_error_kind): Moved to diagnostic.c. (struct diagnostic_context): Use correct type for classify_diagnostic. (diagnostic_report_diagnostic): Update declaration. (emit_diagnostic): Declare. * errors.c (warning): Return bool. * errors.h (warning): Update declaration. * toplev.h (warning0, pedwarn0): Delete. (warning, warning_at, pedwarn, permerror): Return bool. * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN. * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use inform. Update all calls. (diagnose_mismatched_decls): Check return value of warning/pedwarn before giving informative note. (implicit_decl_warning): Likewise. * c-typeck.c (build_function_call): Likewise. * tree-sssa.c (warn_uninit): Likewise. * builtins.c (gimplify_va_arg_expr): Likewise. fortran/ * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of 'pedwarn0'. cp/ * cp-tree.h (struct diagnostic_context, struct diagnostic_info): Delete forward declarations. Check that toplev.h has not been included before this file. Include toplev.h and diagnostic.h. * error.c (cp_cpp_error): Use DK_PEDWARN. (cxx_incomplete_type_diagnostic): Update declaration. (cxx_incomplete_type_error): Use DK_ERROR. * typeck2.c (cxx_incomplete_type_diagnostic): Take a diagnostic_t as argument. Use emit_diagnostic. (cxx_incomplete_type_error): Use DK_ERROR. (add_exception_specifier): Use diagnostic_t instead of custom codes. * typeck.c (complete_type_or_else): Update call to cxx_incomplete_type_diagnostic. * init.c (build_delete): Likewise. * call.c (diagnostic_fn_t): Remove unused typedef. (build_temp): Pass a pointer to diagnostic_t. (convert_like_real): Use emit_diagnostic. (joust): Check return value of warning before giving informative note. * friend.c (do_friend): Check return value of warning before giving informative note. * parser.c (cp_parser_template_id): Likewise. testsuite/ * gcc.dg/pr36901-1.c: New. * gcc.dg/pr36901-3.c: New. * gcc.dg/pr36901-2.c: New. * gcc.dg/pr36901-4.c: New. * gcc.dg/pr36901-system.h: New. * gcc.dg/pr36901.h: New. * gcc.target/powerpc/altivec-macros.c: Update. * gcc.target/i386/regparm.c: Update. * gcc.dg/funcdef-var-1.c: Update. * gcc.dg/parm-mismatch-1.c: Update. * gcc.dg/attr-noinline.c: Update. * gcc.dg/wtr-static-1.c: Update. * gcc.dg/redecl-11.c: Update. * gcc.dg/pr27953.c: Update. * gcc.dg/proto-1.c: Update. * gcc.dg/decl-3.c: Update. * gcc.dg/redecl-13.c: Update. * gcc.dg/pr15360-1.c: Update. * gcc.dg/redecl-15.c: Update. * gcc.dg/enum-compat-1.c: Update. * gcc.dg/dll-3.c: Update. * gcc.dg/array-5.c: Update. * gcc.dg/Wredundant-decls-2.c: Update. * gcc.dg/inline4.c: Update. * gcc.dg/redecl-2.c: Update. * gcc.dg/inline-14.c: Update. * gcc.dg/tls/diag-3.c: Update. * gcc.dg/funcdef-var-2.c: Update. * gcc.dg/20041213-1.c: Update. * gcc.dg/old-style-then-proto-1.c: Update. * gcc.dg/decl-2.c: Update. * gcc.dg/redecl-12.c: Update. * gcc.dg/decl-4.c: Update. * gcc.dg/Wshadow-1.c: Update. * gcc.dg/transparent-union-2.c: Update. * gcc.dg/visibility-7.c: Update. * gcc.dg/dll-2.c: Update. * gcc.dg/redecl-16.c: Update. * gcc.dg/inline1.c: Update. * gcc.dg/decl-8.c: Update. * gcc.dg/nested-redef-1.c: Update. * gcc.dg/inline3.c: Update. * gcc.dg/redecl-1.c: Update. * gcc.dg/inline5.c: Update. * gcc.dg/pr35899.c: Update. * gcc.dg/noncompile/label-lineno-1.c: Update. * gcc.dg/noncompile/label-1.c: Update. * gcc.dg/noncompile/20020220-1.c: Update. * gcc.dg/noncompile/redecl-1.c: Update. * gcc.dg/redecl-5.c: Update. * gcc.dg/qual-return-3.c: Update. * gcc.dg/label-decl-4.c: Update. ........ r138896 | gccadmin | 2008-08-08 17:16:37 -0700 (Fri, 08 Aug 2008) | 1 line Daily bump. ........ r138898 | manu | 2008-08-08 17:30:41 -0700 (Fri, 08 Aug 2008) | 9 lines 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c++/12242 cp/ * cvt.c (ocp_convert): Warn for out-of-range conversions to enum. testsuite/ * g++.dg/warn/pr12242.C: New. ........ r138903 | manu | 2008-08-09 02:37:57 -0700 (Sat, 09 Aug 2008) | 6 lines 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> ada/ * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused by warn_unused. ........ r138904 | manu | 2008-08-09 05:37:32 -0700 (Sat, 09 Aug 2008) | 15 lines 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c/17880 * c-typeck.c (digest_init): Call verify_sequence_points from here. (c_finish_return): Likewise. (c_start_case): Likewise. * c-common.c (warn_for_collisions_1): Use explicit location in warning. * c-parser.c (c_parser_condition): New. Call verify_sequence_points. (c_parser_paren_condition): Call c_parser_condition. (c_parser_for_statement): Call c_parser_condition. testsuite/ * gcc.dg/sequence-pt-pr17880.c: New. ........ r138905 | paolo | 2008-08-09 08:02:30 -0700 (Sat, 09 Aug 2008) | 5 lines 2008-08-09 Paolo Carlini <paolo.carlini@oracle.com> * config/locale/darwin/ctype_members.cc: Include <cstdio>. ........ r138906 | paolo | 2008-08-09 08:58:52 -0700 (Sat, 09 Aug 2008) | 8 lines 2008-08-09 Paolo Carlini <paolo.carlini@oracle.com> Revert fix for libstdc++/35637, thanks to other/36901. * include/tr1_impl/type_traits (__is_function_helper): New, uses variadic templates. (is_function): Forward to the latter. (__in_array): Remove. ........ r138907 | rguenth | 2008-08-09 10:28:39 -0700 (Sat, 09 Aug 2008) | 31 lines 2008-08-09 Richard Guenther <rguenther@suse.de> * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn. * gimple.h (gimple_call_fn): Adjust comment. (gimple_call_set_fndecl): New function. (gimple_call_fndecl): Adjust for GIMPLE_CALL no longer having bare FUNCTION_DECL operand. (gimple_call_return_type): Likewise. * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL. * value-prof.c (gimple_divmod_fixed_value): Do not emit labels. (gimple_mod_pow2): Likewise. (gimple_mod_subtract): Likewise. (gimple_ic): Likewise. (gimple_stringop_fixed_value): Likewise. (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no longer having bare FUNCTION_DECL operand. * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl. * omp-low.c (optimize_omp_library_calls): Likewise. * cgraphunit.c (update_call_expr): Likewise. * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise. (execute_convert_to_rsqrt): Likewise. * cfgexpand.c (gimple_to_tree): Simplify. (release_stmt_tree): Fix for GIMPLE_CALL no longer having bare FUNCTION_DECL operand. * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type. (convert_gimple_call): Use gimple_call_fndecl. * c-common.c (c_warn_unused_result): Likewise. * gcc.dg/tree-ssa/inline-2.c: New testcase. ........ r138908 | rsandifo | 2008-08-09 11:10:18 -0700 (Sat, 09 Aug 2008) | 15 lines gcc/ 2008-08-09 Richard Sandiford <rdsandiford@googlemail.com> Daniel Jacobowitz <dan@codesourcery.com> * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete. * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete. (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete. * config/mips/mips.c (mips_start_function_definition): New function. (mips_end_function_definition): Likewise. (mips_output_function_prologue): Use mips_start_function_definition. (mips_output_function_epilogue): Use mips_end_function_definition. (build_mips16_function_stub): Use mips_start_function_definition and mips_end_function_definition. (build_mips16_call_stub): Likewise. ........ r138909 | rsandifo | 2008-08-09 11:11:19 -0700 (Sat, 09 Aug 2008) | 13 lines gcc/ * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15. (FUNCTION_PROFILER): Save the static chain pointer into $2 beforehand and restore it aftewards. (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target address directly into $25 and call the function through $25; do not clobber $3. Pad the DImode version to cover the space left by the deleted $25 <- $3 move. (TRAMPOLINE_SIZE): Adjust the size of the SImode version after the removal of the $25 <- $3 move. (INITIALIZE_TRAMPOLINE): Update offsets accordingly. * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h. ........ r138910 | rsandifo | 2008-08-09 11:19:32 -0700 (Sat, 09 Aug 2008) | 5 lines gcc/ * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary. * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2 rather than 4 to PC. ........ r138911 | rsandifo | 2008-08-09 11:21:50 -0700 (Sat, 09 Aug 2008) | 6 lines gcc/ * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file. (mips_unspec_address, mips_unspec_offset_high): Likewise. (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise. (mips16_cfun_returns_in_fpr_p): Likewise. ........ r138912 | rsandifo | 2008-08-09 12:08:15 -0700 (Sat, 09 Aug 2008) | 148 lines * configure.ac (mips*-*-*linux*, mips*-*-gnu*): Use mt-mips-gnu. * configure: Regenerate. config/ * mt-mips16-compat: New file, taken from mt-mips-elfoabi. * mt-mips-elfoabi: Include mt-mips16-compat. * mt-mips-gnu: New file. gcc/ * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add mips/t-libgcc-mips16 to tmake_file. * config/mips/mips-protos.h (mips_call_type): New enum. (mips_pic_base_register, mips_got_load): Declare. (mips_restore_gp): Take an rtx argument. (mips_use_pic_fn_addr_reg_p): Declare. (mips_expand_call): Replace the sibcall_p argument with a mips_call_type argument. Add a lazy_p parameter. (mips_split_call): Declare. * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro. (MIPS16_PIC_TEMP): Likewise. (reg_class): Delete M16_NA_REGS. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros. (mips_split_hi_p): Declare. * config/mips/mips.c (mips_split_hi_p): New array. (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS. (mips_got_symbol_type_p): New function. (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P. (mips16_stub_function_p): New function. (mips16_local_function_p): Likewise. (mips_use_pic_fn_addr_reg_p): Likewise. (mips_cannot_force_const_mem): Return false for HIGHs. Extend CONST_INT and symbolic handling to MIPS16, using mips_symbol_insns to check that the base symbol type is a legitimate constant. Reject GOT-based constants if TARGET_MIPS16_PCREL_LOADS. (mips_const_insns): Check targetm.cannot_force_const_mem when decomposing a symbolic base and a large offset. (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters. When calling a function that needs $25 from MIPS16 code, move the target address into $25 separately and add a USE to the call insn. (mips16_gp_pseudo_reg): Insert the initializer immediately before the first real insn. (mips_pic_base_register, mips_got_load): New functions. (mips_split_symbol): Generalize the name of the LO_SUM_OUT parameter to LOW_OUT. Say that it can be any valid SET_SRC when splitting a load-address operation. Split SYMBOL_GOT_DISP constants and highs of SYMBOL_GOT_PAGE_OFST constants. (mips_call_tls_get_addr): Update the call to mips_expand_call, also passing NULL_RTX rather than const0_rtx as the aux argument. (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p instead of TARGET_EXPLICIT_RELOCS. (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P. (mips_load_call_address): Replace the sibcall_p argument with a mips_call_type argument. Use mips_got_load. (mips16_local_alias): New structure. (mips16_local_aliases): New variable. (mips16_local_aliases_hash): New function. (mips16_local_aliases_eq): Likewise. (mips16_local_alias): Likewise. (mips16_stub_function): Likewise. (mips16_build_function_stub): Create a local alias for the target function. Handle TARGET_ABICALLS. For PIC abicalls, emit a .cpload directive and an R_MIPS_NONE relocation for the target function, then load the alias rather than the function itself. Wrap the non-PIC abicalls version in ".option pic0/.option pic2". (mips16_copy_fpr_return_value): Use mips16_stub_function and mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol. (mips16_build_call_stub): Replace the FN parameter with an FN_PTR parameter. Force the address into a register if it isn't a call_insn_operand; don't rely on the caller to do this. If a call to a locally-defined and locally-binding MIPS16 function must be made indirectly, redirect the call to the function's local alias. Use mips16_stub_function_p, mips16_stub_function, mips_expand_call and use_reg. Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols. Use explicit %hi and %lo accesses where possible. Use MIPS_CALL to generate the correct code form of a jal instruction. Add clobbers of $18 instead of uses. Update the call to mips_emit_call_insn. (mips_expand_call): Replace the SIBCALL_P argument with a mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value. Take a LAZY_P parameter. Call mips16_build_call_stub first, allowing it to modify the call address. Update the calls to mips_load_call_address and mips_emit_call_insn. (mips_split_call): New function. (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of SYMBOL_GOT_PAGE_OFST, for MIPS16 code. (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p. (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM if TARGET_MIPS16. (mips_cprestore_slot): New function. (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16 and use mips_cprestore_slot. (mips_output_function_prologue): Handle TARGET_MIPS16 for LOADGP_OLDABI. (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16, then use a copygp_mips16 instruction to set up $28. (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too. (mips16_lay_out_constants): Call split_all_insns_noflow. (mips_reorg_process_insns): Explicitly set all_noreorder_p to false if TARGET_MIPS16. (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16. (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the mips_dangerous_for_la25_p approach for MIPS16 PIC calls too. (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for MIPS16 code. Allow MIPS16 o32 PIC. (mips_override_options): Allow MIPS16 o32 PIC. * config/mips/mips.md: Lower CONST_GP_P moves into register moves after reload if TARGET_USE_GOT. (UNSPEC_COPYGP): New constant. (length): Use a default length of 8 for MIPS16 GOT loads. (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT. (*got_page<mode>): Check mips_split_hi_p. (*got_disp<mode>, *got_page<mode>): Use mips_got_load. (unspec_got<mode>, unspec_call<mode>): New expanders. (load_got<mode>, load_call<mode>): Remove the length attributes. Use a got attribute instead of a type attribute. (copygp_mips16): New insn. (restore_gp): Add a scratch clobber and pass it to mips_restore_gp. (load_call<mode>): Use a "d" constraint instead of an "r" constraint. (sibcall, sibcall_value, call, call_value): Update the calls to mips_expand_call. (call_internal, call_value_internal): Use mips_split_call. (call_value_multiple_internal): Likewise. (call_split): Move after call_internal (the insn it is split from). (call_internal_direct, call_value_internal_direct): Turn into define_insn_and_splits. Split if TARGET_SPLIT_CALLS. (call_direct_split, call_value_direct_split): New patterns. * config/mips/constraints.md (c): Handle TARGET_MIPS16 first and use M16_REGS instead of M16_NA_REGS. * config/mips/predicates.md (const_call_insn_operand): Replace the TARGET_ABSOLUTE_ABICALLS-based check with a more general mips_use_pic_fn_addr_reg_p check. (move_operand): Reject HIGHs if mips_split_hi_p. * config/mips/mips16.S: Assembly as empty if the ABI is not suitable. (__mips16_floatunsisf): Inline __mips16_floatsisf. (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25. * config/mips/libgcc-mips16.ver: New file. * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add $(srcdir)/config/mips/libgcc-mips16.ver. gcc/testsuite/ * lib/target-supports.exp (check_profiling_available): Return false for -p and -pg on MIPS16 targets. ........ r138914 | jvdelisle | 2008-08-09 12:17:24 -0700 (Sat, 09 Aug 2008) | 6 lines 2008-07-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/36582 * io/list_read.c: If variable rank is zero, do not adjust the found namelist object pointer. Fix ChangeLog. ........ r138915 | aesok | 2008-08-09 12:58:25 -0700 (Sat, 09 Aug 2008) | 6 lines * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to avr31 architecture. * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.). * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). ........ r138916 | hjl | 2008-08-09 14:47:28 -0700 (Sat, 09 Aug 2008) | 8 lines 2008-08-09 Jan Hubicka <jh@suse.cz> PR target/37055 * optabs.c (maybe_emit_unop_insn): Remove produced code if expansion failed. (expand_fix): Be prepared for expansion to fail. (expand_sfix_optab): Remove instructions if expansion failed. ........ r138917 | jsm28 | 2008-08-09 16:30:44 -0700 (Sat, 09 Aug 2008) | 2 lines * sv.po: Update. ........ r138921 | gccadmin | 2008-08-09 17:16:36 -0700 (Sat, 09 Aug 2008) | 1 line Daily bump. ........ r138924 | pinskia | 2008-08-09 21:54:37 -0700 (Sat, 09 Aug 2008) | 13 lines 2008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com> PR middle-end/36238 * reload1.c (gen_reload): Guard calls to get_secondary_mem for memory subregs. 2008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com> PR middle-end/36238 * gcc.c-torture/compile/pr36238.c: New testcase. ........ r138925 | paolo | 2008-08-10 03:11:46 -0700 (Sun, 10 Aug 2008) | 14 lines 2008-08-10 Paolo Carlini <paolo.carlini@oracle.com> * include/tr1_impl/type_traits (_DEFINE_SPEC*): Simplify. (_DEFINE_SPEC_BODY): Remove. (__is_void_helper, __is_integral_helper, __is_floating_point_helper, __is_member_object_pointer_helper, __is_member_function_pointer_helper, __remove_pointer_helper): Add. (is_void, is_integral, is_floating_point, is_member_object_pointer, is_member_function_pointer, remove_pointer): Use the latter. * include/tr1/type_traits (_DEFINE_SPEC): Simplify. (_DEFINE_SPEC_HELPER): Remove. (__is_signed_helper, __is_unsigned_helper): Add. (is_signed, is_unsigned): Use the latter. ........ r138932 | manu | 2008-08-10 11:32:52 -0700 (Sun, 10 Aug 2008) | 8 lines 2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 36901 testsuite/ * gcc.dg/pr36901.h: Do not depend on limits.h. * gcc.dg/pr36901-3.c: Update. * gcc.dg/pr36901-4.c: Update. ........ r138933 | manu | 2008-08-10 11:46:10 -0700 (Sun, 10 Aug 2008) | 13 lines 2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR middle-end/20644 * tree-ssa.c (struct walk_data): Add new flag warn_possibly_uninitialized. (warn_uninitialized_var): Use it. (warn_uninitialized_vars): New. (execute_early_warn_uninitialized): Call it. (execute_late_warn_uninitialized): Likewise. testsuite/ * gcc.dg/uninit-pr20644-O0.c: New. * gcc.dg/uninit-pr20644.c: New. ........ r138934 | sam | 2008-08-10 13:13:24 -0700 (Sun, 10 Aug 2008) | 13 lines 2008-08-10 Samuel Tardieu <sam@rfc1149.net> Robert Dewar <dewar@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of left argument even when right argument is 0. (Expand_N_Op_Mod): Ditto when right argument is 1. (Expand_N_Op_Multiply): Ditto when any argument is 0. (Expand_N_Op_Rem): Ditto when right argument is 1. 2008-08-10 Samuel Tardieu <sam@rfc1149.net> gcc/testsuite/ * gnat.dg/exp0_eval.adb: New. ........ r138936 | dje | 2008-08-10 16:37:04 -0700 (Sun, 10 Aug 2008) | 2 lines Fix typo in "Software". ........ r138939 | gccadmin | 2008-08-10 17:16:51 -0700 (Sun, 10 Aug 2008) | 1 line Daily bump. ........ r138950 | krebbel | 2008-08-10 23:55:39 -0700 (Sun, 10 Aug 2008) | 7 lines 2008-08-11 Andreas Krebbel <krebbel1@de.ibm.com> * gcc.target/s390/20080806-1.c: Move testcase ... * gcc.c-torture/compile/20080806-1.c: ... to here and make it stack size sensitive. ........ r138951 | jakub | 2008-08-11 03:23:08 -0700 (Mon, 11 Aug 2008) | 6 lines PR rtl-optimization/36998 * dwarf2out.c (compute_barrier_args_size_1, compute_barrier_args_size): Temporarily remove assertions. * gcc.dg/pr36998.c: New test. ........ r138953 | matz | 2008-08-11 05:15:37 -0700 (Mon, 11 Aug 2008) | 4 lines * i386/i386.c: (override_options): Move initialisation from flag_schedule_insns_after_reload to here from ... (optimization_options): ... here. ........ r138954 | paolo | 2008-08-11 08:08:20 -0700 (Mon, 11 Aug 2008) | 5 lines 2008-08-11 Paolo Carlini <paolo.carlini@oracle.com> * configure.ac: Run GLIBCXX_CHECK_STDIO_MACROS unconditionally. * configure: Regenerate. ........ r138957 | sam | 2008-08-11 10:04:07 -0700 (Mon, 11 Aug 2008) | 6 lines 2008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com> gcc/ada/ * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it. * gsocket.h, socket.c: Update to support RTEMS. * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross. ........ r138966 | paolo | 2008-08-11 12:28:35 -0700 (Mon, 11 Aug 2008) | 4 lines 2008-08-11 Paolo Carlini <paolo.carlini@oracle.com> * config/locale/generic/c_locale.cc: Include <cstdio>. ........ r138967 | smw | 2008-08-11 14:06:00 -0700 (Mon, 11 Aug 2008) | 1 line Formatting fixes for include/tr1_impl/regex. ........ r138970 | gccadmin | 2008-08-11 17:16:43 -0700 (Mon, 11 Aug 2008) | 1 line Daily bump. ........ r138974 | dannysmith | 2008-08-11 22:42:28 -0700 (Mon, 11 Aug 2008) | 5 lines * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM with SOSC.SOCK__STREAM. * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with SOSC.MSG_OOB. ........ r138978 | dannysmith | 2008-08-11 23:01:59 -0700 (Mon, 11 Aug 2008) | 4 lines * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]: Remove duplicate s-win32.o. Add s-winext.o. ........ r138988 | irar | 2008-08-11 23:31:57 -0700 (Mon, 11 Aug 2008) | 15 lines * tree-vectorizer.c: Depend on langhooks.h. (supportable_widening_operation): Add two arguments. Support double type conversions. (supportable_narrowing_operation): Likewise. * tree-vectorizer.h (supportable_widening_operation): Add two arguments. (supportable_narrowing_operation): Likewise. * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call supportable_widening_operation with correct arguments. * tree-vect-transform.c (vectorizable_conversion): Likewise. (vectorizable_type_demotion): Support double type conversions. (vectorizable_type_promotion): Likewise. * Makefile.in (tree-vectorizer.o): Depend on langhooks.h. ........ r138995 | reichelt | 2008-08-11 23:57:53 -0700 (Mon, 11 Aug 2008) | 2 lines Fix my email address. ........ r139004 | jakub | 2008-08-12 01:07:57 -0700 (Tue, 12 Aug 2008) | 6 lines PR c++/36688 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY on the VAR_DECL instead of TYPE_READONLY on its type. * g++.dg/init/const6.C: New test. ........ r139005 | jakub | 2008-08-12 01:28:30 -0700 (Tue, 12 Aug 2008) | 2 lines dg-do run the test instead of compile. ........ r139008 | paolo | 2008-08-12 03:41:26 -0700 (Tue, 12 Aug 2008) | 10 lines 2008-08-12 Paolo Carlini <paolo.carlini@oracle.com> * configure.ac: Run unconditionally GLIBCXX_CHECK_INT64_T and GLIBCXX_CHECK_C99_TR1; remove sigsetjmp and mmap checks (unused). * crossconfig.m4: Adjust; remove HAVE_GETPAGESIZE defines (unused). * configure: Regenerate. * config.h.in: Likewise. * acinclude.m4: Minor formatting fixes. ........ r139009 | uweigand | 2008-08-12 06:06:32 -0700 (Tue, 12 Aug 2008) | 2 lines * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define. ........ r139011 | uweigand | 2008-08-12 06:09:09 -0700 (Tue, 12 Aug 2008) | 2 lines * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA. ........ r139013 | uweigand | 2008-08-12 06:13:38 -0700 (Tue, 12 Aug 2008) | 17 lines ChangeLog: * real.c (spu_single_format): New variable. * real.h (spu_single_format): Declare. * config/spu/spu.c (spu_override_options): Install SFmode format. (spu_split_immediate): Use integer mode to operate on pieces of floating-point values in all cases. * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New. ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND. ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE. testsuite/ChangeLog: * gcc.c-torture/execute/ieee/inf-2.c (testf): Skip on the SPU. ........ r139014 | uweigand | 2008-08-12 06:19:40 -0700 (Tue, 12 Aug 2008) | 38 lines ChangeLog: * real.h (struct real_format): New member round_towards_zero. * real.c (round_for_format): Respect fmt->round_towards_zero. (ieee_single_format, mips_single_format, motorola_single_format, spu_single_format, ieee_double_format, mips_double_format, motorola_double_format, ieee_extended_motorola_format, ieee_extended_intel_96_format, ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format, ibm_extended_format, mips_extended_format, ieee_quad_format, mips_quad_format, vax_f_format, vax_d_format, vax_g_format): Initialize it. * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise. * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of real_format to choose rounding mode when calling MPFR functions. (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise. (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise. * real.h (real_to_decimal_for_mode): Add prototype. * real.c (real_to_decimal_for_mode): Renames old real_to_decimal. Respect target rounding mode when generating decimal representation. (real_to_decimal): New stub for backwards compatibility. * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use real_to_decimal_for_mode instead of real_to_decimal. * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New. testsuite/ChangeLog: * gcc.c-torture/execute/20031003-1.c (main): Update test to accommodate SPU single-precision rounding mode. * gcc.c-torture/execute/conversion.c (test_float_to_integer, test_float_to_longlong_integer): Likewise. * gcc.c-torture/execute/ieee/rbug.c (main): Likewise. * gcc.dg/hex-round-1.c: Skip test on SPU. * gcc.dg/hex-round-2.c: Likewise. ........ r139015 | uweigand | 2008-08-12 06:22:27 -0700 (Tue, 12 Aug 2008) | 5 lines * config/spu/float_disf.c: New file. * config/spu/float_unsdisf.c: New file. * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them. (LIB2FUNCS_EXCLUDE): Define. ........ r139016 | uweigand | 2008-08-12 06:25:22 -0700 (Tue, 12 Aug 2008) | 36 lines * real.h (struct real_format): New member has_sign_dependent_rounding. * real.c (ieee_single_format, mips_single_format, motorola_single_format, spu_single_format, ieee_double_format, mips_double_format, motorola_double_format, ieee_extended_motorola_format, ieee_extended_intel_96_format, ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format, ibm_extended_format, mips_extended_format, ieee_quad_format, mips_quad_format, vax_f_format, vax_d_format, vax_g_format): Initialize it. * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise. * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove. * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove. (ROUND_TOWARDS_ZERO): Likewise. * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion. (FLOAT_MODE_FORMAT): New macro. (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ... (MODE_COMPOSITE_P): ... this new macro. (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros. * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode. * flags.h: Include "real.h". * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of REAL_MODE_FORMAT_COMPOSITE_P. * simplify-rtx.c (simplify_const_binary_operation): Likewise. * doc/tm.texi (Storage Layout): Remove documentation of MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify they only apply to libgcc2.a. ........ r139017 | uweigand | 2008-08-12 06:27:30 -0700 (Tue, 12 Aug 2008) | 21 lines ChangeLog: * defaults.h (TARGET_FLOAT_FORMAT): Remove. (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove. * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove. * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove. * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove. * config/score/score.h (TARGET_FLOAT_FORMAT): Remove. * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove. * doc/tm.texi (Storage Layout): Remove documentation for TARGET_FLOAT_FORMAT. * simplify-rtx.c (simplify_binary_operation_1): Replace TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks. java/ChangeLog: * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT. ........ r139019 | uweigand | 2008-08-12 07:35:54 -0700 (Tue, 12 Aug 2008) | 8 lines PR bootstrap/37097 * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced by last change. -This line, and those below, will be ignored-- M gcc/builtins.c M gcc/ChangeLog ........ r139024 | aesok | 2008-08-12 10:13:45 -0700 (Tue, 12 Aug 2008) | 2 lines * final.c (final_scan_insn): Use app_enable/app_disable functions. ........ r139025 | aesok | 2008-08-12 10:22:28 -0700 (Tue, 12 Aug 2008) | 1 line Fix final.c. ........ r139026 | singler | 2008-08-12 10:23:00 -0700 (Tue, 12 Aug 2008) | 7 lines 2008-08-12 Johannes Singler <singler@ira.uka.de> * include/paralle/losertree.h (LoserTreePointerBase<>::~LoserTreePointerBase): Replace delete by appropriate delete[]. ........ r139028 | jakub | 2008-08-12 10:57:49 -0700 (Tue, 12 Aug 2008) | 6 lines PR tree-optimization/37084 * tree-inline.c (copy_bb): Call gimple_regimplify_operands if id->regimplify, don't assume stmt is a cast assignment. * g++.dg/tree-ssa/pr37084.C: New test. ........ r139029 | jakub | 2008-08-12 11:05:43 -0700 (Tue, 12 Aug 2008) | 7 lines PR middle-end/37014 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR. * dojump.c (do_jump): Likewise. * gcc.c-torture/compile/20080812-1.c: New test. ........ r139031 | froydnj | 2008-08-12 11:19:08 -0700 (Tue, 12 Aug 2008) | 4 lines PR libgomp/26165 * gcc.c (include_spec_function): Tweak call to find_a_file. ........ r139034 | paolo | 2008-08-12 12:38:02 -0700 (Tue, 12 Aug 2008) | 15 lines /cp 2008-08-12 Paolo Carlini <paolo.carlini@oracle.com> PR c++/37087 * parser.c (cp_parser_class_head): Early return error_mark_node in case of global qualification of class name or qualified name that does not name a class. /testsuite 2008-08-12 Paolo Carlini <paolo.carlini@oracle.com> PR c++/37087 * g++.dg/template/crash80.C: New. * g++.old-deja/g++.other/decl5.C: Adjust. ........ r139035 | paolo | 2008-08-12 13:05:02 -0700 (Tue, 12 Aug 2008) | 4 lines 2008-08-12 Paolo Carlini <paolo.carlini@oracle.com> * g++.old-deja/g++.other/decl5.C: Expand new expected errors. ........ r139036 | paolo | 2008-08-12 13:05:15 -0700 (Tue, 12 Aug 2008) | 4 lines 2008-08-12 Paolo Carlini <paolo.carlini@oracle.com> * g++.old-deja/g++.other/decl5.C: Expand new expected errors. ........ r139037 | janis | 2008-08-12 14:18:54 -0700 (Tue, 12 Aug 2008) | 3 lines PR testsuite/36087 * gcc.dg/var-expand3.c: Fix name of dump file. ........ r139038 | janis | 2008-08-12 14:20:57 -0700 (Tue, 12 Aug 2008) | 2 lines * doc/invoke.texi: Revert unintended checkin. ........ r139039 | janis | 2008-08-12 14:23:11 -0700 (Tue, 12 Aug 2008) | 6 lines * gcc.target/i386/pr32000-2.c: Use dg-skip-if for target expression. * gcc.target/i386/stackalign/return-3.c: Ditto. * gcc.target/sparc/ultrasp3.c: Ditto. * lib/target-supports-dg.exp (dg-require-effective-target): Error if argument is not a single effective-target keyword. ........ r139040 | paolo | 2008-08-12 16:14:10 -0700 (Tue, 12 Aug 2008) | 5 lines 2008-08-12 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/37100 * include/bits/stl_pair.h: Fix documentation URL in comment. ........ r139042 | janis | 2008-08-12 16:46:45 -0700 (Tue, 12 Aug 2008) | 2 lines * doc/invoke.texi (-fipa-pta): Say the option is experimental. ........ r139045 | gccadmin | 2008-08-12 17:16:36 -0700 (Tue, 12 Aug 2008) | 1 line Daily bump. ........ r139048 | rguenth | 2008-08-13 01:57:20 -0700 (Wed, 13 Aug 2008) | 30 lines 2008-08-13 Richard Guenther <rguenther@suse.de> PR tree-optimization/15255 * tree-ssa-reassoc.c (linearize_expr_tree): Declare. (struct oecount_s): New struct and VEC types. (cvec): New global. (oecount_hash): New function. (oecount_eq): Likewise. (oecount_cmp): Likewise. (zero_one_operation): New function. (build_and_add_sum): Likewise. (undistribute_ops_list): Perform un-distribution of multiplication and division on the chain of summands. (should_break_up_subtract): Also break up subtracts for factors. (reassociate_bb): Delete dead visited statements. Call undistribute_ops_list. Re-sort and optimize if it did something. * passes.c (init_optimization_passes): Move DSE before reassociation. * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle PHI nodes. * gcc.dg/tree-ssa/reassoc-14.c: New testcase. * gcc.dg/tree-ssa/reassoc-15.c: Likewise. * gcc.dg/tree-ssa/reassoc-16.c: Likewise. * gcc.dg/torture/reassoc-1.c: Likewise. * gcc.dg/tree-ssa/recip-2.c: Adjust. * gcc.dg/tree-ssa/recip-6.c: Likewise. * gcc.dg/tree-ssa/recip-7.c: Likewise. * gfortran.dg/reassoc_4.f: Likewise. ........ r139049 | manu | 2008-08-13 03:01:52 -0700 (Wed, 13 Aug 2008) | 15 lines 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 35635 * c-common.c (conversion_warning): Use a switch. Ignore boolean expressions except for conversions to signed:1 bitfields. Handle COND_EXPR with constant operands. testsuite/ * gcc.dg/pr35635.c: New. * gcc.dg/Wconversion-integer.c: Update. * gcc.dg/Wconversion-integer-no-sign.c: Update. * gcc.dg/Wsign-conversion.c: Update. * g++.dg/warn/pr35635.C: New. * g++.dg/warn/Wconversion-integer.C: Update. * g++.dg/warn/Wsign-conversion.C: Update. ........ r139050 | manu | 2008-08-13 03:19:03 -0700 (Wed, 13 Aug 2008) | 15 lines 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c/15236 * diagnostic.c (pedwarn_at): New. * toplev.h (pedwarn_at): Declare. * c-tree.h (build_enumerator): Update declaration. * c-decl.c (finish_enum): Update comment. (build_enumerator): Take a location parameter. Give a pedwarn but do not perform any conversion. * c-parser.c (c_parser_enum_specifier): Set correct location for enumerator. testsuite/ * gcc.dg/pr15236.c: New. * gcc.dg/torture/pr25183.c: Update. ........ r139051 | sam | 2008-08-13 03:57:43 -0700 (Wed, 13 Aug 2008) | 14 lines gcc/ada/ PR ada/36777 * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New. * sem_attr.adb (Check_Type): The current instance of a protected object is not a type name. (Analyze_Access_Attribute): Accept instances of protected objects. (Analyze_Attribute, Attribute_Address clause): Ditto. * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the prefix as being the current instance if needed. gcc/testsuite/ PR ada/36777 * gnat.dg/protected_self_ref1.adb, gnat.dg/protected_self_ref2.adb: New. ........ r139052 | aldyh | 2008-08-13 03:58:47 -0700 (Wed, 13 Aug 2008) | 2 lines new file ........ r139053 | jsm28 | 2008-08-13 04:51:41 -0700 (Wed, 13 Aug 2008) | 3 lines * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, LINK_SPEC): Use %R in -Y P argument. ........ r139054 | manu | 2008-08-13 05:26:18 -0700 (Wed, 13 Aug 2008) | 4 lines 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * toplev.h (pedwarn_at): Fix declaration. ........ r139061 | rguenth | 2008-08-13 07:22:19 -0700 (Wed, 13 Aug 2008) | 17 lines 2008-08-13 Richard Guenther <rguenther@suse.de> * tree.h (maybe_fold_offset_to_address): Declare. * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit. (ccp_fold): Handle pointer conversions the same as fold_stmt. Likewise for POINTER_PLUS_EXPR. (maybe_fold_offset_to_reference): Enable disabled code. (maybe_fold_offset_to_address): New function. (fold_stmt_r): Use it. (fold_gimple_assign): Likewise. * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address. (gimplify_expr): Likewise. * gcc.dg/tree-ssa/ssa-ccp-21.c: New testcase. * gcc.dg/tree-ssa/ssa-ccp-22.c: Likewise. * gcc.dg/tree-ssa/ssa-ccp-23.c: Likewise. ........ r139062 | hjl | 2008-08-13 09:20:42 -0700 (Wed, 13 Aug 2008) | 6 lines 2008-08-13 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/36701 * expr.c (emit_group_store): Allocate stack temp with the largest alignment when copying from register to stack. ........ r139063 | manu | 2008-08-13 10:57:47 -0700 (Wed, 13 Aug 2008) | 30 lines 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 30551 * doc/invoke.texi (Wmain): Update. * c-decl.c (start_decl): warn_main is only 0 or 1. (start_function): Likewise. Fix formatting. (finish_function): Delete redundant warning. * c.opt (Wmain): Add Var(warn_main) and Init(-1). * c-opts (c_common_handle_option): -Wall only has effect if warn_main is uninitialized. OPT_Wmain is automatically handled. -pedantic also enables Wmain. (c_common_post_options): Handle all logic for Wmain here. * c-common.c (warn_main): Delete. (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain. * c-common.h (warn_main): Delete. cp/ * decl.c (grokfndecl): Call check_main_parameters_type only if -Wmain. testsuite/ * gcc.dg/pr30551.c: New. * gcc.dg/pr30551-2.c: New. * gcc.dg/pr30551-3.c: New. * gcc.dg/pr30551-4.c: New. * gcc.dg/pr30551-5.c: New. * gcc.dg/pr30551-6.c: New. * gcc.dg/tree-ssa/reassoc-3.c: Don't compile with -pedantic-errors. * g++.dg/warn/pr30551.C: New. * g++.dg/warn/pr30551-2.C: New. ........ r139064 | paolo | 2008-08-13 11:14:51 -0700 (Wed, 13 Aug 2008) | 35 lines 2008-08-13 Sebastian Redl <sebastian.redl@getdesigned.at> Add exception propagation support as per N2179. * libsupc++/exception_ptr.h (exception_ptr, current_exception, copy_exception, rethrow_exception): New file, implement exception propagation. * libsupc++/eh_ptr.cc (exception_ptr, current_exception, rethrow_exception, __gxx_dependent_exception_cleanup): Likewise. * libsupc++/unwind-cxx.h (__cxa_exception): Add reference count. (__cxa_dependent_exception, __cxa_allocate_dependent_exception, __cxa_free_dependent_exception, __get_dependent_exception_from_ue, __GXX_INIT_DEPENDENT_EXCEPTION_CLASS, __is_dependent_exception, __gxx_dependent_exception_class, __get_object_from_ue, __get_object_from_ambiguous_exception): Add. (__GXX_INIT_EXCEPTION_CLASS, __gxx_exception_class): Rename. (__is_gxx_exception_class): Handle dependent exceptions. * libsupc++/eh_arm.cc (__cxa_type_match): Likewise. * libsupc++/eh_call.cc (__cxa_call_unexpected): Likewise. * libsupc++/eh_personality.cc (__gxx_personality_*): Likewise. * libsupc++/eh_type.cc (__cxa_current_exception_type): Likewise. * libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception, __cxa_free_dependent_exception): Add. * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Handle reference counting. * libsupc++/exception: Conditionally include exception_ptr.h. * libsupc++/Makefile.am: Register new files. * libsupc++/Makefile.in: Regenerate. * config/abi/pre/gnu.ver: Add new symbols. * testsuite/18_support/exception_ptr/current_exception.cc: Test the core functionality of current_exception(). * testsuite/18_support/exception_ptr/rethrow_exception.cc: Test the core functionality of rethrow_exception(). * testsuite/18_support/exception_ptr/lifespan.cc: Test the life span of exception objects during exception propagation. ........ r139065 | hjl | 2008-08-13 11:25:14 -0700 (Wed, 13 Aug 2008) | 15 lines 2008-08-13 H.J. Lu <hongjiu.lu@intel.com> * dwarf2out.c (dwarf_stack_op_name): Remove prototype. (new_loc_descr): Likewise. (add_loc_descr): Likewise. (size_of_loc_descr): Likewise. (size_of_locs): Likewise. (output_loc_operands): Likewise. (output_loc_sequence): Likewise. (new_reg_loc_descr): New. (build_cfa_loc): Use it. (build_cfa_aligned_loc): Likewise. (one_reg_loc_descriptor): Likewise. (based_loc_descr): Likewise. ........ r139072 | ebotcazou | 2008-08-13 12:38:39 -0700 (Wed, 13 Aug 2008) | 6 lines * gimple.h (gimple_call_set_chain): Accept SSA variables. * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>: Rematerialize the static chain, if any. * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the static chain. ........ r139074 | paolo | 2008-08-13 13:08:55 -0700 (Wed, 13 Aug 2008) | 4 lines 2008-08-13 Paolo Carlini <paolo.carlini@oracle.com> Revert the last patch. ........ r139075 | paolo | 2008-08-13 13:10:42 -0700 (Wed, 13 Aug 2008) | 4 lines 2008-08-13 Paolo Carlini <paolo.carlini@oracle.com> Revert the last patch. ........ r139082 | uweigand | 2008-08-13 13:36:57 -0700 (Wed, 13 Aug 2008) | 3 lines * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine __PPU__ when targeting the Cell/B.E. PPU processor. ........ r139084 | jsm28 | 2008-08-13 13:52:22 -0700 (Wed, 13 Aug 2008) | 4 lines * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or zero extend SImode values being converted to TFmode before passing to libcalls. ........ r139086 | kazu | 2008-08-13 16:21:12 -0700 (Wed, 13 Aug 2008) | 4 lines * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c: Skip if the multilib testing specifies -march that does not agree with the one specified in the testcase. ........ r139089 | gccadmin | 2008-08-13 17:16:36 -0700 (Wed, 13 Aug 2008) | 1 line Daily bump. ........ r139091 | paolo | 2008-08-13 18:17:09 -0700 (Wed, 13 Aug 2008) | 5 lines 2008-08-13 Paolo Carlini <paolo.carlini@oracle.com> Re-instate last patch, amended to use __exchange_and_add_dispatch and __atomic_add_dispatch in eh_ptr.cc and eh_throw.cc. ........ r139092 | hjl | 2008-08-13 21:35:32 -0700 (Wed, 13 Aug 2008) | 8 lines 2008-08-13 H.J. Lu <hongjiu.lu@intel.com> * gcc.target/i386/incoming-1.c: Skip *-*-darwin*. * gcc.target/i386/incoming-2.c: Likewise. * gcc.target/i386/incoming-3.c: Likewise. * gcc.target/i386/incoming-4.c: Likewise. * gcc.target/i386/incoming-5.c: Likewise. ........ r139093 | jakub | 2008-08-14 02:02:46 -0700 (Thu, 14 Aug 2008) | 7 lines PR middle-end/37103 * fold-const.c (fold_widened_comparison): Do not allow sign changes that change the result even if shorter type is wider than arg1_unw's type. * gcc.c-torture/execute/20080813-1.c: New test. ........ r139095 | uros | 2008-08-14 04:57:18 -0700 (Thu, 14 Aug 2008) | 11 lines PR target/37101 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative. (*vec_concatv2di_rex64_sse4_1): Ditto. (*vec_concatv2di_rex64_sse): Ditto. testsuite/ChangeLog: PR target/37101 * gcc.target/i386/pr37101.c: New test. ........ r139096 | dorit | 2008-08-14 05:47:56 -0700 (Thu, 14 Aug 2008) | 20 lines 2008-08-14 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an additional argument. Support reduction when duplication is needed due to data-types of different sizes in the loop. (get_initial_def_for_induction): Fix printout. (vect_get_vec_def_for_stmt_copy): Support case where the vec_stmt_for_operand is a phi node. (vectorizable_reduction): Support reduction when duplication is needed due to data-types of different sizes in the loop. (vectorizable_call): Remove restriction to not vectorize in case we have data-types of different sizes in the loop. (vectorizable_conversion): Likewise. (vectorizable_operation): Likewise. (vectorizable_type_demotion): Likewise. (vectorizable_type_promotion): Likewise. (vectorizable_induction): Add restriction to not vectorize in case we have data-types of different sizes in the loop. ........ r139097 | manu | 2008-08-14 06:01:58 -0700 (Thu, 14 Aug 2008) | 10 lines 2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c/28152 * c-parser.c (c_lex_one_token): Do not store the canonical spelling for keywords. testsuite/ * gcc.dg/parser-pr28152.c: New. * gcc.dg/parser-pr28152-2.c: New. ........ r139099 | paolo | 2008-08-14 08:11:01 -0700 (Thu, 14 Aug 2008) | 13 lines /cp 2008-08-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/34600 * decl.c (grokdeclarator): In case of extern and initializer, return error_mark_node after the error. /testsuite 2008-08-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/34600 * g++.dg/parse/crash43.C: New. ........ r139100 | espindola | 2008-08-14 09:05:36 -0700 (Thu, 14 Aug 2008) | 10 lines 2008-08-14 Rafael Avila de Espindola <espindola@google.com> * gcc.dg/visibility-14.c: New test. * gcc.dg/visibility-15.c: New test. * gcc.dg/visibility-16.c: New test. * gcc.dg/visibility-17.c: New test. * gcc.dg/visibility-18.c: New test. * gcc.dg/visibility-19.c: New test. ........ r139111 | tkoenig | 2008-08-14 11:31:32 -0700 (Thu, 14 Aug 2008) | 39 lines 2008-08-14 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/36886 * Makefile.am: Added $(i_cshift0_c). Added $(i_cshift0_c) to gfor_built_specific_src. Add rule to build from cshift0.m4. * Makefile.in: Regenerated. * libgfortran.h: Addedd prototypes for cshift0_i1, cshift0_i2, cshift0_i4, cshift0_i8, cshift0_i16, cshift0_r4, cshift0_r8, cshift0_r10, cshift0_r16, cshift0_c4, cshift0_c8, cshift0_c10, cshift0_c16. Define Macros GFC_UNALIGNED_C4 and GFC_UNALIGNED_C8. * intrinsics/cshift0.c: Remove helper functions for the innter shift loop. (cshift0): Call specific functions depending on type of array argument. Only call specific functions for correct alignment for other types. * m4/cshift0.m4: New file. * generated/cshift0_i1.c: New file. * generated/cshift0_i2.c: New file. * generated/cshift0_i4.c: New file. * generated/cshift0_i8:.c New file. * generated/cshift0_i16.c: New file. * generated/cshift0_r4.c: New file. * generated/cshift0_r8.c: New file. * generated/cshift0_r10.c: New file. * generated/cshift0_r16.c: New file. * generated/cshift0_c4.c: New file. * generated/cshift0_c8.c: New file. * generated/cshift0_c10.c: New file. * generated/cshift0_c16.c: New file. 2008-08-14 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/36886 * gfortran.dg/cshift_char_3.f90: New test case. * gfortran.dg/cshift_nan_1.f90: New test case. ........ r139114 | paolo | 2008-08-14 12:04:05 -0700 (Thu, 14 Aug 2008) | 18 lines /cp 2008-08-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/34485 * pt.c (check_template_shadow): Change to return a bool. * name-lookup.c (push_class_level_binding): Early return if check_template_shadow returns false. * cp-tree.h (check_template_shadow): Adjust declaration. /testsuite 2008-08-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/34485 * g++.dg/template/crash81.C: New. * g++.old-deja/g++.benjamin/tem03.C: Adjust. * g++.old-deja/g++.benjamin/tem04.C: Likewise. * g++.old-deja/g++.brendan/crash7.C: Likewise. ........ r139116 | janus | 2008-08-14 14:15:59 -0700 (Thu, 14 Aug 2008) | 15 lines 2008-08-14 Janus Weil <janus@gcc.gnu.org> PR fortran/36705 * symbol.c (check_conflict): Move conflict checks for (procedure,save) and (procedure,intent) to resolve_fl_procedure. * resolve.c (resolve_fl_procedure): Ditto. 2008-08-14 Janus Weil <janus@gcc.gnu.org> PR fortran/36705 * gfortran.dg/argument_checking_7.f90: Modified. * gfortran.dg/conflicts.f90: Modified. * gfortran.dg/proc_decl_1.f90: Modified. * gfortran.dg/proc_ptr_9.f90: New. ........ r139117 | hjl | 2008-08-14 14:36:31 -0700 (Thu, 14 Aug 2008) | 5 lines 2008-08-14 H.J. Lu <hongjiu.lu@intel.com> PR libfortran/37123 * intrinsics/cshift0.c (cshift0): Fix 2 typos. ........ r139121 | gccadmin | 2008-08-14 17:17:25 -0700 (Thu, 14 Aug 2008) | 1 line Daily bump. ........ r139124 | krebbel | 2008-08-15 00:36:40 -0700 (Fri, 15 Aug 2008) | 20 lines 2008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com> * config/s390/2097.md New file. * config/s390/s390.md ("z10prop" attribute): Define none, z10_super, z10_super_E1, z10_super_A1, z10_super_c, z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1, z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as possible values and apply them to insns as appropriate. ("type" attribute): Removed itof and added ftrunctf,ftruncdf, ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd, fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd, fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values. ("bfp" mode attribute): Removed. Every occurence replaced with <mode>. * config/s390/s390.c (struct "z10_cost"): Updated entries. * config/s390/2084.md (insn_reservation "x_itof"): Updated type attribute. ........ r139125 | ebotcazou | 2008-08-15 02:10:25 -0700 (Fri, 15 Aug 2008) | 1 line Fix long line. ........ r139126 | manu | 2008-08-15 04:23:20 -0700 (Fri, 15 Aug 2008) | 9 lines 2008-08-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org> testsuite/ * gcc.dg/pr30551-6.c: Skip for SPU. * gcc.dg/pr30551-3.c: Likewise. * gcc.dg/pr30551.c: Likewise. * g++.dg/warn/pr30551-2.C: Likewise. * g++.dg/warn/pr30551.C: Likewise. ........ r139129 | rguenth | 2008-08-15 05:59:16 -0700 (Fri, 15 Aug 2008) | 5 lines 2008-08-15 Richard Guenther <rguenther@suse.de> * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not strip components for unknown size accesses. ........ r139135 | jsm28 | 2008-08-15 13:12:01 -0700 (Fri, 15 Aug 2008) | 5 lines * config/arm/arm.c (add_minipool_backward_ref): Check for 8-byte-aligned entries in second case of forcing insertion after a particular entry. Change third case to avoid inserting non-8-byte-aligned entries before 8-byte-aligned ones. ........ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/profile-stdlib@139138 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-parloops.c')
-rw-r--r--gcc/tree-parloops.c516
1 files changed, 257 insertions, 259 deletions
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index be0fd9cbac4..f2b8d042ef5 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -41,14 +41,14 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
The implementation is straightforward -- for each loop we test whether its
iterations are independent, and if it is the case (and some additional
conditions regarding profitability and correctness are satisfied), we
- add OMP_PARALLEL and OMP_FOR codes and let omp expansion machinery do
- its job.
+ add GIMPLE_OMP_PARALLEL and GIMPLE_OMP_FOR codes and let omp expansion
+ machinery do its job.
The most of the complexity is in bringing the code into shape expected
by the omp expanders:
- -- for OMP_FOR, ensuring that the loop has only one induction variable
- and that the exit test is at the start of the loop body
- -- for OMP_PARALLEL, replacing the references to local addressable
+ -- for GIMPLE_OMP_FOR, ensuring that the loop has only one induction
+ variable and that the exit test is at the start of the loop body
+ -- for GIMPLE_OMP_PARALLEL, replacing the references to local addressable
variables by accesses through pointers, and breaking up ssa chains
by storing the values incoming to the parallelized loop to a structure
passed to the new function as an argument (something similar is done
@@ -122,11 +122,11 @@ parloop
sum.27_11 = D.1827_8 + sum.27_29;
- OMP_CONTINUE
+ GIMPLE_OMP_CONTINUE
# Adding this reduction phi is done at create_phi_for_local_result() #
# sum.27_56 = PHI <sum.27_11, 0>
- OMP_RETURN
+ GIMPLE_OMP_RETURN
# Creating the atomic operation is done at
create_call_for_reduction_1() #
@@ -136,7 +136,7 @@ parloop
D.1840_60 = sum.27_56 + D.1839_59;
#pragma omp atomic_store (D.1840_60);
- OMP_RETURN
+ GIMPLE_OMP_RETURN
# collecting the result after the join of the threads is done at
create_loads_for_reductions().
@@ -166,15 +166,15 @@ parloop
reduction in the current loop. */
struct reduction_info
{
- tree reduc_stmt; /* reduction statement. */
- tree reduc_phi; /* The phi node defining the reduction. */
- enum tree_code reduction_code; /* code for the reduction operation. */
- tree keep_res; /* The PHI_RESULT of this phi is the resulting value
+ gimple reduc_stmt; /* reduction statement. */
+ gimple reduc_phi; /* The phi node defining the reduction. */
+ enum tree_code reduction_code;/* code for the reduction operation. */
+ gimple keep_res; /* The PHI_RESULT of this phi is the resulting value
of the reduction variable when existing the loop. */
tree initial_value; /* The initial value of the reduction var before entering the loop. */
tree field; /* the name of the field in the parloop data structure intended for reduction. */
tree init; /* reduction initialization value. */
- tree new_phi; /* (helper field) Newly created phi node whose result
+ gimple new_phi; /* (helper field) Newly created phi node whose result
will be passed to the atomic operation. Represents
the local result each thread computed for the reduction
operation. */
@@ -200,7 +200,7 @@ reduction_info_hash (const void *aa)
}
static struct reduction_info *
-reduction_phi (htab_t reduction_list, tree phi)
+reduction_phi (htab_t reduction_list, gimple phi)
{
struct reduction_info tmpred, *red;
@@ -249,14 +249,15 @@ name_to_copy_elt_hash (const void *aa)
reductions are found, they are inserted to the REDUCTION_LIST. */
static bool
-loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_desc *niter)
+loop_parallel_p (struct loop *loop, htab_t reduction_list,
+ struct tree_niter_desc *niter)
{
edge exit = single_dom_exit (loop);
VEC (ddr_p, heap) * dependence_relations;
- VEC (data_reference_p, heap) * datarefs;
+ VEC (data_reference_p, heap) *datarefs;
lambda_trans_matrix trans;
bool ret = false;
- tree phi;
+ gimple_stmt_iterator gsi;
loop_vec_info simple_loop_info;
/* Only consider innermost loops with just one exit. The innermost-loop
@@ -279,9 +280,10 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_des
simple_loop_info = vect_analyze_loop_form (loop);
- for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
+ for (gsi = gsi_start_phis (loop->header); !gsi_end_p (gsi); gsi_next (&gsi))
{
- tree reduc_stmt = NULL, operation;
+ gimple phi = gsi_stmt (gsi);
+ gimple reduc_stmt = NULL;
/* ??? TODO: Change this into a generic function that
recognizes reductions. */
@@ -302,7 +304,7 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_des
{
fprintf (dump_file,
"Detected reduction. reduction stmt is: \n");
- print_generic_stmt (dump_file, reduc_stmt, 0);
+ print_gimple_stmt (dump_file, reduc_stmt, 0, 0);
fprintf (dump_file, "\n");
}
@@ -310,8 +312,7 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_des
new_reduction->reduc_stmt = reduc_stmt;
new_reduction->reduc_phi = phi;
- operation = GIMPLE_STMT_OPERAND (reduc_stmt, 1);
- new_reduction->reduction_code = TREE_CODE (operation);
+ new_reduction->reduction_code = gimple_assign_rhs_code (reduc_stmt);
slot = htab_find_slot (reduction_list, new_reduction, INSERT);
*slot = new_reduction;
}
@@ -320,13 +321,13 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_des
/* Get rid of the information created by the vectorizer functions. */
destroy_loop_vec_info (simple_loop_info, true);
- for (phi = phi_nodes (exit->dest); phi; phi = PHI_CHAIN (phi))
+ for (gsi = gsi_start_phis (exit->dest); !gsi_end_p (gsi); gsi_next (&gsi))
{
+ gimple phi = gsi_stmt (gsi);
struct reduction_info *red;
imm_use_iterator imm_iter;
use_operand_p use_p;
- tree reduc_phi;
-
+ gimple reduc_phi;
tree val = PHI_ARG_DEF_FROM_EDGE (phi, exit);
if (is_gimple_reg (val))
@@ -334,7 +335,7 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_des
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, "phi is ");
- print_generic_expr (dump_file, phi, 0);
+ print_gimple_stmt (dump_file, phi, 0, 0);
fprintf (dump_file, "arg of phi to exit: value ");
print_generic_expr (dump_file, val, 0);
fprintf (dump_file, " used outside loop\n");
@@ -351,7 +352,7 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_des
reduc_phi = NULL;
FOR_EACH_IMM_USE_FAST (use_p, imm_iter, val)
{
- if (flow_bb_inside_loop_p (loop, bb_for_stmt (USE_STMT (use_p))))
+ if (flow_bb_inside_loop_p (loop, gimple_bb (USE_STMT (use_p))))
{
reduc_phi = USE_STMT (use_p);
break;
@@ -368,9 +369,9 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_des
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, "reduction phi is ");
- print_generic_expr (dump_file, red->reduc_phi, 0);
+ print_gimple_stmt (dump_file, red->reduc_phi, 0, 0);
fprintf (dump_file, "reduction stmt is ");
- print_generic_expr (dump_file, red->reduc_stmt, 0);
+ print_gimple_stmt (dump_file, red->reduc_stmt, 0, 0);
}
}
@@ -378,8 +379,9 @@ loop_parallel_p (struct loop *loop, htab_t reduction_list, struct tree_niter_des
/* The iterations of the loop may communicate only through bivs whose
iteration space can be distributed efficiently. */
- for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
+ for (gsi = gsi_start_phis (loop->header); !gsi_end_p (gsi); gsi_next (&gsi))
{
+ gimple phi = gsi_stmt (gsi);
tree def = PHI_RESULT (phi);
affine_iv iv;
@@ -465,7 +467,9 @@ take_address_of (tree obj, tree type, edge entry, htab_t decl_address)
int uid;
void **dslot;
struct int_tree_map ielt, *nielt;
- tree *var_p, name, bvar, stmt, addr;
+ tree *var_p, name, bvar, addr;
+ gimple stmt;
+ gimple_seq stmts;
/* Since the address of OBJ is invariant, the trees may be shared.
Avoid rewriting unrelated parts of the code. */
@@ -483,10 +487,10 @@ take_address_of (tree obj, tree type, edge entry, htab_t decl_address)
addr = build_addr (*var_p, current_function_decl);
bvar = create_tmp_var (TREE_TYPE (addr), get_name (*var_p));
add_referenced_var (bvar);
- stmt = build_gimple_modify_stmt (bvar, addr);
+ stmt = gimple_build_assign (bvar, addr);
name = make_ssa_name (bvar, stmt);
- GIMPLE_STMT_OPERAND (stmt, 0) = name;
- bsi_insert_on_edge_immediate (entry, stmt);
+ gimple_assign_set_lhs (stmt, name);
+ gsi_insert_on_edge_immediate (entry, stmt);
nielt = XNEW (struct int_tree_map);
nielt->uid = uid;
@@ -500,17 +504,17 @@ take_address_of (tree obj, tree type, edge entry, htab_t decl_address)
{
*var_p = build1 (INDIRECT_REF, TREE_TYPE (*var_p), name);
name = force_gimple_operand (build_addr (obj, current_function_decl),
- &stmt, true, NULL_TREE);
- if (stmt)
- bsi_insert_on_edge_immediate (entry, stmt);
+ &stmts, true, NULL_TREE);
+ if (!gimple_seq_empty_p (stmts))
+ gsi_insert_seq_on_edge_immediate (entry, stmts);
}
if (TREE_TYPE (name) != type)
{
- name = force_gimple_operand (fold_convert (type, name), &stmt, true,
+ name = force_gimple_operand (fold_convert (type, name), &stmts, true,
NULL_TREE);
- if (stmt)
- bsi_insert_on_edge_immediate (entry, stmt);
+ if (!gimple_seq_empty_p (stmts))
+ gsi_insert_seq_on_edge_immediate (entry, stmts);
}
return name;
@@ -543,8 +547,7 @@ initialize_reductions (void **slot, void *data)
c = build_omp_clause (OMP_CLAUSE_REDUCTION);
OMP_CLAUSE_REDUCTION_CODE (c) = reduc->reduction_code;
- OMP_CLAUSE_DECL (c) =
- SSA_NAME_VAR (GIMPLE_STMT_OPERAND (reduc->reduc_stmt, 0));
+ OMP_CLAUSE_DECL (c) = SSA_NAME_VAR (gimple_assign_lhs (reduc->reduc_stmt));
init = omp_reduction_init (c, TREE_TYPE (bvar));
reduc->init = init;
@@ -569,6 +572,7 @@ initialize_reductions (void **slot, void *data)
struct elv_data
{
+ struct walk_stmt_info info;
edge entry;
htab_t decl_address;
bool changed;
@@ -632,7 +636,7 @@ eliminate_local_variables_1 (tree *tp, int *walk_subtrees, void *data)
return NULL_TREE;
}
- if (!EXPR_P (t) && !GIMPLE_STMT_P (t))
+ if (!EXPR_P (t))
*walk_subtrees = 0;
return NULL_TREE;
@@ -644,16 +648,17 @@ eliminate_local_variables_1 (tree *tp, int *walk_subtrees, void *data)
already. */
static void
-eliminate_local_variables_stmt (edge entry, tree stmt,
+eliminate_local_variables_stmt (edge entry, gimple stmt,
htab_t decl_address)
{
struct elv_data dta;
+ memset (&dta.info, '\0', sizeof (dta.info));
dta.entry = entry;
dta.decl_address = decl_address;
dta.changed = false;
- walk_tree (&stmt, eliminate_local_variables_1, &dta, NULL);
+ walk_gimple_op (stmt, eliminate_local_variables_1, &dta.info);
if (dta.changed)
update_stmt (stmt);
@@ -676,7 +681,7 @@ eliminate_local_variables (edge entry, edge exit)
basic_block bb;
VEC (basic_block, heap) *body = VEC_alloc (basic_block, heap, 3);
unsigned i;
- block_stmt_iterator bsi;
+ gimple_stmt_iterator gsi;
htab_t decl_address = htab_create (10, int_tree_map_hash, int_tree_map_eq,
free);
basic_block entry_bb = entry->src;
@@ -686,8 +691,8 @@ eliminate_local_variables (edge entry, edge exit)
for (i = 0; VEC_iterate (basic_block, body, i, bb); i++)
if (bb != entry_bb && bb != exit_bb)
- for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
- eliminate_local_variables_stmt (entry, bsi_stmt (bsi),
+ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ eliminate_local_variables_stmt (entry, gsi_stmt (gsi),
decl_address);
htab_delete (decl_address);
@@ -703,14 +708,13 @@ expr_invariant_in_region_p (edge entry, edge exit, tree expr)
basic_block entry_bb = entry->src;
basic_block exit_bb = exit->dest;
basic_block def_bb;
- unsigned i, len;
if (is_gimple_min_invariant (expr))
return true;
if (TREE_CODE (expr) == SSA_NAME)
{
- def_bb = bb_for_stmt (SSA_NAME_DEF_STMT (expr));
+ def_bb = gimple_bb (SSA_NAME_DEF_STMT (expr));
if (def_bb
&& dominated_by_p (CDI_DOMINATORS, def_bb, entry_bb)
&& !dominated_by_p (CDI_DOMINATORS, def_bb, exit_bb))
@@ -719,15 +723,7 @@ expr_invariant_in_region_p (edge entry, edge exit, tree expr)
return true;
}
- if (!EXPR_P (expr) && !GIMPLE_STMT_P (expr))
- return false;
-
- len = TREE_OPERAND_LENGTH (expr);
- for (i = 0; i < len; i++)
- if (!expr_invariant_in_region_p (entry, exit, TREE_OPERAND (expr, i)))
- return false;
-
- return true;
+ return false;
}
/* If COPY_NAME_P is true, creates and returns a duplicate of NAME.
@@ -788,7 +784,7 @@ separate_decls_in_region_name (tree name,
if (copy_name_p)
{
- copy = duplicate_ssa_name (name, NULL_TREE);
+ copy = duplicate_ssa_name (name, NULL);
nelt = XNEW (struct name_to_copy_elt);
nelt->version = idx;
nelt->new_name = copy;
@@ -813,7 +809,7 @@ separate_decls_in_region_name (tree name,
replacement decls are stored in DECL_COPIES. */
static void
-separate_decls_in_region_stmt (edge entry, edge exit, tree stmt,
+separate_decls_in_region_stmt (edge entry, edge exit, gimple stmt,
htab_t name_copies, htab_t decl_copies)
{
use_operand_p use;
@@ -855,7 +851,7 @@ add_field_for_reduction (void **slot, void *data)
struct reduction_info *const red = (struct reduction_info *) *slot;
tree const type = (tree) data;
- tree var = SSA_NAME_VAR (GIMPLE_STMT_OPERAND (red->reduc_stmt, 0));
+ tree var = SSA_NAME_VAR (gimple_assign_lhs (red->reduc_stmt));
tree field = build_decl (FIELD_DECL, DECL_NAME (var), TREE_TYPE (var));
insert_field_into_struct (type, field);
@@ -896,13 +892,13 @@ create_phi_for_local_result (void **slot, void *data)
struct reduction_info *const reduc = (struct reduction_info *) *slot;
const struct loop *const loop = (const struct loop *) data;
edge e;
- tree new_phi;
+ gimple new_phi;
basic_block store_bb;
tree local_res;
/* STORE_BB is the block where the phi
should be stored. It is the destination of the loop exit.
- (Find the fallthru edge from OMP_CONTINUE). */
+ (Find the fallthru edge from GIMPLE_OMP_CONTINUE). */
store_bb = FALLTHRU_EDGE (loop->latch)->dest;
/* STORE_BB has two predecessors. One coming from the loop
@@ -914,11 +910,13 @@ create_phi_for_local_result (void **slot, void *data)
e = EDGE_PRED (store_bb, 1);
else
e = EDGE_PRED (store_bb, 0);
- local_res = make_ssa_name (SSA_NAME_VAR (GIMPLE_STMT_OPERAND (reduc->reduc_stmt, 0)), NULL_TREE);
+ local_res
+ = make_ssa_name (SSA_NAME_VAR (gimple_assign_lhs (reduc->reduc_stmt)),
+ NULL);
new_phi = create_phi_node (local_res, store_bb);
SSA_NAME_DEF_STMT (local_res) = new_phi;
add_phi_arg (new_phi, reduc->init, e);
- add_phi_arg (new_phi, GIMPLE_STMT_OPERAND (reduc->reduc_stmt, 0),
+ add_phi_arg (new_phi, gimple_assign_lhs (reduc->reduc_stmt),
FALLTHRU_EDGE (loop->latch));
reduc->new_phi = new_phi;
@@ -944,7 +942,7 @@ create_call_for_reduction_1 (void **slot, void *data)
{
struct reduction_info *const reduc = (struct reduction_info *) *slot;
struct clsn_data *const clsn_data = (struct clsn_data *) data;
- block_stmt_iterator bsi;
+ gimple_stmt_iterator gsi;
tree type = TREE_TYPE (PHI_RESULT (reduc->reduc_phi));
tree struct_type = TREE_TYPE (TREE_TYPE (clsn_data->load));
tree load_struct;
@@ -952,7 +950,8 @@ create_call_for_reduction_1 (void **slot, void *data)
basic_block new_bb;
edge e;
tree t, addr, addr_type, ref, x;
- tree tmp_load, load, name;
+ tree tmp_load, name;
+ gimple load;
load_struct = fold_build1 (INDIRECT_REF, struct_type, clsn_data->load);
t = build3 (COMPONENT_REF, type, load_struct, reduc->field, NULL_TREE);
@@ -969,27 +968,23 @@ create_call_for_reduction_1 (void **slot, void *data)
tmp_load = create_tmp_var (TREE_TYPE (TREE_TYPE (addr)), NULL);
add_referenced_var (tmp_load);
tmp_load = make_ssa_name (tmp_load, NULL);
- load = build2 (OMP_ATOMIC_LOAD, void_type_node, tmp_load, addr);
+ load = gimple_build_omp_atomic_load (tmp_load, addr);
SSA_NAME_DEF_STMT (tmp_load) = load;
- bsi = bsi_start (new_bb);
- bsi_insert_after (&bsi, load, BSI_NEW_STMT);
+ gsi = gsi_start_bb (new_bb);
+ gsi_insert_after (&gsi, load, GSI_NEW_STMT);
e = split_block (new_bb, load);
new_bb = e->dest;
- bsi = bsi_start (new_bb);
+ gsi = gsi_start_bb (new_bb);
ref = tmp_load;
- x =
- fold_build2 (reduc->reduction_code,
- TREE_TYPE (PHI_RESULT (reduc->new_phi)), ref,
- PHI_RESULT (reduc->new_phi));
-
- name =
- force_gimple_operand_bsi (&bsi, x, true, NULL_TREE, true,
- BSI_CONTINUE_LINKING);
+ x = fold_build2 (reduc->reduction_code,
+ TREE_TYPE (PHI_RESULT (reduc->new_phi)), ref,
+ PHI_RESULT (reduc->new_phi));
- x = build1 (OMP_ATOMIC_STORE, void_type_node, name);
+ name = force_gimple_operand_gsi (&gsi, x, true, NULL_TREE, true,
+ GSI_CONTINUE_LINKING);
- bsi_insert_after (&bsi, x, BSI_NEW_STMT);
+ gsi_insert_after (&gsi, gimple_build_omp_atomic_store (name), GSI_NEW_STMT);
return 1;
}
@@ -1002,7 +997,7 @@ create_call_for_reduction (struct loop *loop, htab_t reduction_list,
struct clsn_data *ld_st_data)
{
htab_traverse (reduction_list, create_phi_for_local_result, loop);
- /* Find the fallthru edge from OMP_CONTINUE. */
+ /* Find the fallthru edge from GIMPLE_OMP_CONTINUE. */
ld_st_data->load_bb = FALLTHRU_EDGE (loop->latch)->dest;
htab_traverse (reduction_list, create_call_for_reduction_1, ld_st_data);
}
@@ -1015,30 +1010,34 @@ create_loads_for_reductions (void **slot, void *data)
{
struct reduction_info *const red = (struct reduction_info *) *slot;
struct clsn_data *const clsn_data = (struct clsn_data *) data;
- tree stmt;
- block_stmt_iterator bsi;
- tree type = TREE_TYPE (GIMPLE_STMT_OPERAND (red->reduc_stmt, 0));
+ gimple stmt;
+ gimple_stmt_iterator gsi;
+ tree type = TREE_TYPE (gimple_assign_lhs (red->reduc_stmt));
tree struct_type = TREE_TYPE (TREE_TYPE (clsn_data->load));
tree load_struct;
tree name;
tree x;
- bsi = bsi_after_labels (clsn_data->load_bb);
+ gsi = gsi_after_labels (clsn_data->load_bb);
load_struct = fold_build1 (INDIRECT_REF, struct_type, clsn_data->load);
load_struct = build3 (COMPONENT_REF, type, load_struct, red->field,
NULL_TREE);
x = load_struct;
name = PHI_RESULT (red->keep_res);
- stmt = build_gimple_modify_stmt (name, x);
- GIMPLE_STMT_OPERAND (stmt, 0) = name;
+ stmt = gimple_build_assign (name, x);
SSA_NAME_DEF_STMT (name) = stmt;
- bsi_insert_after (&bsi, stmt, BSI_NEW_STMT);
+ gsi_insert_after (&gsi, stmt, GSI_NEW_STMT);
- remove_phi_node (red->keep_res, NULL_TREE, false);
-
- return 1;
+ for (gsi = gsi_start_phis (gimple_bb (red->keep_res));
+ !gsi_end_p (gsi); gsi_next (&gsi))
+ if (gsi_stmt (gsi) == red->keep_res)
+ {
+ remove_phi_node (&gsi, false);
+ return 1;
+ }
+ gcc_unreachable ();
}
/* Load the reduction result that was stored in LD_ST_DATA.
@@ -1048,18 +1047,16 @@ static void
create_final_loads_for_reduction (htab_t reduction_list,
struct clsn_data *ld_st_data)
{
- block_stmt_iterator bsi;
+ gimple_stmt_iterator gsi;
tree t;
+ gimple stmt;
- bsi = bsi_after_labels (ld_st_data->load_bb);
+ gsi = gsi_after_labels (ld_st_data->load_bb);
t = build_fold_addr_expr (ld_st_data->store);
- t =
- build_gimple_modify_stmt (ld_st_data->load,
- build_fold_addr_expr (ld_st_data->store));
+ stmt = gimple_build_assign (ld_st_data->load, t);
- bsi_insert_before (&bsi, t, BSI_NEW_STMT);
- SSA_NAME_DEF_STMT (ld_st_data->load) = t;
- GIMPLE_STMT_OPERAND (t, 0) = ld_st_data->load;
+ gsi_insert_before (&gsi, stmt, GSI_NEW_STMT);
+ SSA_NAME_DEF_STMT (ld_st_data->load) = stmt;
htab_traverse (reduction_list, create_loads_for_reductions, ld_st_data);
@@ -1076,18 +1073,16 @@ create_stores_for_reduction (void **slot, void *data)
{
struct reduction_info *const red = (struct reduction_info *) *slot;
struct clsn_data *const clsn_data = (struct clsn_data *) data;
- tree stmt;
- block_stmt_iterator bsi;
- tree type = TREE_TYPE (GIMPLE_STMT_OPERAND (red->reduc_stmt, 0));
-
- bsi = bsi_last (clsn_data->store_bb);
- stmt =
- build_gimple_modify_stmt (build3
- (COMPONENT_REF, type, clsn_data->store,
- red->field, NULL_TREE),
- red->initial_value);
+ tree t;
+ gimple stmt;
+ gimple_stmt_iterator gsi;
+ tree type = TREE_TYPE (gimple_assign_lhs (red->reduc_stmt));
+
+ gsi = gsi_last_bb (clsn_data->store_bb);
+ t = build3 (COMPONENT_REF, type, clsn_data->store, red->field, NULL_TREE);
+ stmt = gimple_build_assign (t, red->initial_value);
mark_virtual_ops_for_renaming (stmt);
- bsi_insert_after (&bsi, stmt, BSI_NEW_STMT);
+ gsi_insert_after (&gsi, stmt, GSI_NEW_STMT);
return 1;
}
@@ -1101,28 +1096,25 @@ create_loads_and_stores_for_name (void **slot, void *data)
{
struct name_to_copy_elt *const elt = (struct name_to_copy_elt *) *slot;
struct clsn_data *const clsn_data = (struct clsn_data *) data;
- tree stmt;
- block_stmt_iterator bsi;
+ tree t;
+ gimple stmt;
+ gimple_stmt_iterator gsi;
tree type = TREE_TYPE (elt->new_name);
tree struct_type = TREE_TYPE (TREE_TYPE (clsn_data->load));
tree load_struct;
- bsi = bsi_last (clsn_data->store_bb);
- stmt =
- build_gimple_modify_stmt (build3
- (COMPONENT_REF, type, clsn_data->store,
- elt->field, NULL_TREE),
- ssa_name (elt->version));
+ gsi = gsi_last_bb (clsn_data->store_bb);
+ t = build3 (COMPONENT_REF, type, clsn_data->store, elt->field, NULL_TREE);
+ stmt = gimple_build_assign (t, ssa_name (elt->version));
mark_virtual_ops_for_renaming (stmt);
- bsi_insert_after (&bsi, stmt, BSI_NEW_STMT);
+ gsi_insert_after (&gsi, stmt, GSI_NEW_STMT);
- bsi = bsi_last (clsn_data->load_bb);
+ gsi = gsi_last_bb (clsn_data->load_bb);
load_struct = fold_build1 (INDIRECT_REF, struct_type, clsn_data->load);
- stmt = build_gimple_modify_stmt (elt->new_name,
- build3 (COMPONENT_REF, type, load_struct,
- elt->field, NULL_TREE));
+ t = build3 (COMPONENT_REF, type, load_struct, elt->field, NULL_TREE);
+ stmt = gimple_build_assign (elt->new_name, t);
SSA_NAME_DEF_STMT (elt->new_name) = stmt;
- bsi_insert_after (&bsi, stmt, BSI_NEW_STMT);
+ gsi_insert_after (&gsi, stmt, GSI_NEW_STMT);
return 1;
}
@@ -1174,27 +1166,27 @@ separate_decls_in_region (edge entry, edge exit, htab_t reduction_list,
htab_t decl_copies = htab_create (10, int_tree_map_hash, int_tree_map_eq,
free);
unsigned i;
- tree phi, type, type_name, nvar;
- block_stmt_iterator bsi;
+ tree type, type_name, nvar;
+ gimple_stmt_iterator gsi;
struct clsn_data clsn_data;
VEC (basic_block, heap) *body = VEC_alloc (basic_block, heap, 3);
basic_block bb;
basic_block entry_bb = bb1;
basic_block exit_bb = exit->dest;
- entry = single_succ_edge(entry_bb);
+ entry = single_succ_edge (entry_bb);
gather_blocks_in_sese_region (entry_bb, exit_bb, &body);
for (i = 0; VEC_iterate (basic_block, body, i, bb); i++)
{
if (bb != entry_bb && bb != exit_bb)
{
- for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
- separate_decls_in_region_stmt (entry, exit, phi, name_copies,
- decl_copies);
-
- for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
- separate_decls_in_region_stmt (entry, exit, bsi_stmt (bsi),
+ for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ separate_decls_in_region_stmt (entry, exit, gsi_stmt (gsi),
+ name_copies, decl_copies);
+
+ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ separate_decls_in_region_stmt (entry, exit, gsi_stmt (gsi),
name_copies, decl_copies);
}
}
@@ -1230,7 +1222,7 @@ separate_decls_in_region (edge entry, edge exit, htab_t reduction_list,
add_referenced_var (*arg_struct);
nvar = create_tmp_var (build_pointer_type (type), ".paral_data_load");
add_referenced_var (nvar);
- *new_arg_struct = make_ssa_name (nvar, NULL_TREE);
+ *new_arg_struct = make_ssa_name (nvar, NULL);
ld_st_data->store = *arg_struct;
ld_st_data->load = *new_arg_struct;
@@ -1246,7 +1238,7 @@ separate_decls_in_region (edge entry, edge exit, htab_t reduction_list,
{
htab_traverse (reduction_list, create_stores_for_reduction,
ld_st_data);
- clsn_data.load = make_ssa_name (nvar, NULL_TREE);
+ clsn_data.load = make_ssa_name (nvar, NULL);
clsn_data.load_bb = exit->dest;
clsn_data.store = ld_st_data->store;
create_final_loads_for_reduction (reduction_list, &clsn_data);
@@ -1338,15 +1330,18 @@ static void
canonicalize_loop_ivs (struct loop *loop, htab_t reduction_list, tree nit)
{
unsigned precision = TYPE_PRECISION (TREE_TYPE (nit));
- tree phi, prev, res, type, var_before, val, atype, mtype, t, next;
- block_stmt_iterator bsi;
+ tree res, type, var_before, val, atype, mtype;
+ gimple_stmt_iterator gsi, psi;
+ gimple phi, stmt;
bool ok;
affine_iv iv;
edge exit = single_dom_exit (loop);
struct reduction_info *red;
- for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
+ for (psi = gsi_start_phis (loop->header);
+ !gsi_end_p (psi); gsi_next (&psi))
{
+ phi = gsi_stmt (psi);
res = PHI_RESULT (phi);
if (is_gimple_reg (res) && TYPE_PRECISION (TREE_TYPE (res)) > precision)
@@ -1355,20 +1350,19 @@ canonicalize_loop_ivs (struct loop *loop, htab_t reduction_list, tree nit)
type = lang_hooks.types.type_for_size (precision, 1);
- bsi = bsi_last (loop->latch);
+ gsi = gsi_last_bb (loop->latch);
create_iv (build_int_cst_type (type, 0), build_int_cst (type, 1), NULL_TREE,
- loop, &bsi, true, &var_before, NULL);
+ loop, &gsi, true, &var_before, NULL);
- bsi = bsi_after_labels (loop->header);
- prev = NULL;
- for (phi = phi_nodes (loop->header); phi; phi = next)
+ gsi = gsi_after_labels (loop->header);
+ for (psi = gsi_start_phis (loop->header); !gsi_end_p (psi); )
{
- next = PHI_CHAIN (phi);
+ phi = gsi_stmt (psi);
res = PHI_RESULT (phi);
if (!is_gimple_reg (res) || res == var_before)
{
- prev = phi;
+ gsi_next (&psi);
continue;
}
@@ -1377,12 +1371,12 @@ canonicalize_loop_ivs (struct loop *loop, htab_t reduction_list, tree nit)
/* We preserve the reduction phi nodes. */
if (!ok && red)
{
- prev = phi;
+ gsi_next (&psi);
continue;
}
else
gcc_assert (ok);
- remove_phi_node (phi, prev, false);
+ remove_phi_node (&psi, false);
atype = TREE_TYPE (res);
mtype = POINTER_TYPE_P (atype) ? sizetype : atype;
@@ -1391,14 +1385,14 @@ canonicalize_loop_ivs (struct loop *loop, htab_t reduction_list, tree nit)
val = fold_build2 (POINTER_TYPE_P (atype)
? POINTER_PLUS_EXPR : PLUS_EXPR,
atype, unshare_expr (iv.base), val);
- val = force_gimple_operand_bsi (&bsi, val, false, NULL_TREE, true,
- BSI_SAME_STMT);
- t = build_gimple_modify_stmt (res, val);
- bsi_insert_before (&bsi, t, BSI_SAME_STMT);
- SSA_NAME_DEF_STMT (res) = t;
+ val = force_gimple_operand_gsi (&gsi, val, false, NULL_TREE, true,
+ GSI_SAME_STMT);
+ stmt = gimple_build_assign (res, val);
+ gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
+ SSA_NAME_DEF_STMT (res) = stmt;
}
- t = last_stmt (exit->src);
+ stmt = last_stmt (exit->src);
/* Make the loop exit if the control condition is not satisfied. */
if (exit->flags & EDGE_TRUE_VALUE)
{
@@ -1408,7 +1402,9 @@ canonicalize_loop_ivs (struct loop *loop, htab_t reduction_list, tree nit)
te->flags = EDGE_FALSE_VALUE;
fe->flags = EDGE_TRUE_VALUE;
}
- COND_EXPR_COND (t) = build2 (LT_EXPR, boolean_type_node, var_before, nit);
+ gimple_cond_set_code (stmt, LT_EXPR);
+ gimple_cond_set_lhs (stmt, var_before);
+ gimple_cond_set_rhs (stmt, nit);
}
/* Moves the exit condition of LOOP to the beginning of its header, and
@@ -1430,22 +1426,23 @@ transform_to_exit_first_loop (struct loop *loop, htab_t reduction_list, tree nit
unsigned n;
bool ok;
edge exit = single_dom_exit (loop), hpred;
- tree phi, nphi, cond, control, control_name, res, t, cond_stmt;
- block_stmt_iterator bsi;
+ tree control, control_name, res, t;
+ gimple phi, nphi, cond_stmt, stmt;
+ gimple_stmt_iterator gsi;
split_block_after_labels (loop->header);
orig_header = single_succ (loop->header);
hpred = single_succ_edge (loop->header);
cond_stmt = last_stmt (exit->src);
- cond = COND_EXPR_COND (cond_stmt);
- control = TREE_OPERAND (cond, 0);
- gcc_assert (TREE_OPERAND (cond, 1) == nit);
+ control = gimple_cond_lhs (cond_stmt);
+ gcc_assert (gimple_cond_rhs (cond_stmt) == nit);
/* Make sure that we have phi nodes on exit for all loop header phis
(create_parallel_loop requires that). */
- for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
+ for (gsi = gsi_start_phis (loop->header); !gsi_end_p (gsi); gsi_next (&gsi))
{
+ phi = gsi_stmt (gsi);
res = PHI_RESULT (phi);
t = make_ssa_name (SSA_NAME_VAR (res), phi);
SET_PHI_RESULT (phi, t);
@@ -1456,7 +1453,7 @@ transform_to_exit_first_loop (struct loop *loop, htab_t reduction_list, tree nit
if (res == control)
{
- TREE_OPERAND (cond, 0) = t;
+ gimple_cond_set_lhs (cond_stmt, t);
update_stmt (cond_stmt);
control = t;
}
@@ -1466,22 +1463,26 @@ transform_to_exit_first_loop (struct loop *loop, htab_t reduction_list, tree nit
for (n = 0; bbs[n] != exit->src; n++)
continue;
nbbs = XNEWVEC (basic_block, n);
- ok = tree_duplicate_sese_tail (single_succ_edge (loop->header), exit,
- bbs + 1, n, nbbs);
+ ok = gimple_duplicate_sese_tail (single_succ_edge (loop->header), exit,
+ bbs + 1, n, nbbs);
gcc_assert (ok);
free (bbs);
ex_bb = nbbs[0];
free (nbbs);
/* Other than reductions, the only gimple reg that should be copied
- out of the loop is the control variable. */
+ out of the loop is the control variable. */
control_name = NULL_TREE;
- for (phi = phi_nodes (ex_bb); phi; phi = PHI_CHAIN (phi))
+ for (gsi = gsi_start_phis (ex_bb); !gsi_end_p (gsi); )
{
+ phi = gsi_stmt (gsi);
res = PHI_RESULT (phi);
if (!is_gimple_reg (res))
- continue;
+ {
+ gsi_next (&gsi);
+ continue;
+ }
/* Check if it is a part of reduction. If it is,
keep the phi at the reduction's keep_res field. The
@@ -1498,93 +1499,95 @@ transform_to_exit_first_loop (struct loop *loop, htab_t reduction_list, tree nit
red = reduction_phi (reduction_list, SSA_NAME_DEF_STMT (val));
if (red)
- red->keep_res = phi;
+ {
+ red->keep_res = phi;
+ gsi_next (&gsi);
+ continue;
+ }
}
- else
- gcc_assert (control_name == NULL_TREE
- && SSA_NAME_VAR (res) == SSA_NAME_VAR (control));
+ gcc_assert (control_name == NULL_TREE
+ && SSA_NAME_VAR (res) == SSA_NAME_VAR (control));
control_name = res;
+ remove_phi_node (&gsi, false);
}
gcc_assert (control_name != NULL_TREE);
- phi = SSA_NAME_DEF_STMT (control_name);
- remove_phi_node (phi, NULL_TREE, false);
/* Initialize the control variable to NIT. */
- bsi = bsi_after_labels (ex_bb);
- nit = force_gimple_operand_bsi (&bsi,
+ gsi = gsi_after_labels (ex_bb);
+ nit = force_gimple_operand_gsi (&gsi,
fold_convert (TREE_TYPE (control_name), nit),
- false, NULL_TREE, false, BSI_SAME_STMT);
- t = build_gimple_modify_stmt (control_name, nit);
- bsi_insert_before (&bsi, t, BSI_NEW_STMT);
- SSA_NAME_DEF_STMT (control_name) = t;
+ false, NULL_TREE, false, GSI_SAME_STMT);
+ stmt = gimple_build_assign (control_name, nit);
+ gsi_insert_before (&gsi, stmt, GSI_NEW_STMT);
+ SSA_NAME_DEF_STMT (control_name) = stmt;
}
/* Create the parallel constructs for LOOP as described in gen_parallel_loop.
- LOOP_FN and DATA are the arguments of OMP_PARALLEL.
+ LOOP_FN and DATA are the arguments of GIMPLE_OMP_PARALLEL.
NEW_DATA is the variable that should be initialized from the argument
of LOOP_FN. N_THREADS is the requested number of threads. Returns the
- basic block containing OMP_PARALLEL tree. */
+ basic block containing GIMPLE_OMP_PARALLEL tree. */
static basic_block
create_parallel_loop (struct loop *loop, tree loop_fn, tree data,
tree new_data, unsigned n_threads)
{
- block_stmt_iterator bsi;
+ gimple_stmt_iterator gsi;
basic_block bb, paral_bb, for_bb, ex_bb;
- tree t, param, res, for_stmt;
- tree cvar, cvar_init, initvar, cvar_next, cvar_base, cond, phi, type;
+ tree t, param, res;
+ gimple stmt, for_stmt, phi, cond_stmt;
+ tree cvar, cvar_init, initvar, cvar_next, cvar_base, type;
edge exit, nexit, guard, end, e;
- /* Prepare the OMP_PARALLEL statement. */
+ /* Prepare the GIMPLE_OMP_PARALLEL statement. */
bb = loop_preheader_edge (loop)->src;
paral_bb = single_pred (bb);
- bsi = bsi_last (paral_bb);
+ gsi = gsi_last_bb (paral_bb);
t = build_omp_clause (OMP_CLAUSE_NUM_THREADS);
OMP_CLAUSE_NUM_THREADS_EXPR (t)
= build_int_cst (integer_type_node, n_threads);
- t = build4 (OMP_PARALLEL, void_type_node, NULL_TREE, t, loop_fn, data);
+ stmt = gimple_build_omp_parallel (NULL, t, loop_fn, data);
- bsi_insert_after (&bsi, t, BSI_NEW_STMT);
+ gsi_insert_after (&gsi, stmt, GSI_NEW_STMT);
/* Initialize NEW_DATA. */
if (data)
{
- bsi = bsi_after_labels (bb);
-
- param = make_ssa_name (DECL_ARGUMENTS (loop_fn), NULL_TREE);
- t = build_gimple_modify_stmt (param, build_fold_addr_expr (data));
- bsi_insert_before (&bsi, t, BSI_SAME_STMT);
- SSA_NAME_DEF_STMT (param) = t;
-
- t = build_gimple_modify_stmt (new_data,
- fold_convert (TREE_TYPE (new_data),
- param));
- bsi_insert_before (&bsi, t, BSI_SAME_STMT);
- SSA_NAME_DEF_STMT (new_data) = t;
+ gsi = gsi_after_labels (bb);
+
+ param = make_ssa_name (DECL_ARGUMENTS (loop_fn), NULL);
+ stmt = gimple_build_assign (param, build_fold_addr_expr (data));
+ gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
+ SSA_NAME_DEF_STMT (param) = stmt;
+
+ stmt = gimple_build_assign (new_data,
+ fold_convert (TREE_TYPE (new_data), param));
+ gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
+ SSA_NAME_DEF_STMT (new_data) = stmt;
}
- /* Emit OMP_RETURN for OMP_PARALLEL. */
+ /* Emit GIMPLE_OMP_RETURN for GIMPLE_OMP_PARALLEL. */
bb = split_loop_exit_edge (single_dom_exit (loop));
- bsi = bsi_last (bb);
- bsi_insert_after (&bsi, make_node (OMP_RETURN), BSI_NEW_STMT);
+ gsi = gsi_last_bb (bb);
+ gsi_insert_after (&gsi, gimple_build_omp_return (false), GSI_NEW_STMT);
- /* Extract data for OMP_FOR. */
+ /* Extract data for GIMPLE_OMP_FOR. */
gcc_assert (loop->header == single_dom_exit (loop)->src);
- cond = COND_EXPR_COND (last_stmt (loop->header));
+ cond_stmt = last_stmt (loop->header);
- cvar = TREE_OPERAND (cond, 0);
+ cvar = gimple_cond_lhs (cond_stmt);
cvar_base = SSA_NAME_VAR (cvar);
phi = SSA_NAME_DEF_STMT (cvar);
cvar_init = PHI_ARG_DEF_FROM_EDGE (phi, loop_preheader_edge (loop));
- initvar = make_ssa_name (cvar_base, NULL_TREE);
+ initvar = make_ssa_name (cvar_base, NULL);
SET_USE (PHI_ARG_DEF_PTR_FROM_EDGE (phi, loop_preheader_edge (loop)),
initvar);
cvar_next = PHI_ARG_DEF_FROM_EDGE (phi, loop_latch_edge (loop));
- bsi = bsi_last (loop->latch);
- gcc_assert (bsi_stmt (bsi) == SSA_NAME_DEF_STMT (cvar_next));
- bsi_remove (&bsi, true);
+ gsi = gsi_last_bb (loop->latch);
+ gcc_assert (gsi_stmt (gsi) == SSA_NAME_DEF_STMT (cvar_next));
+ gsi_remove (&gsi, true);
/* Prepare cfg. */
for_bb = split_edge (loop_preheader_edge (loop));
@@ -1595,56 +1598,48 @@ create_parallel_loop (struct loop *loop, tree loop_fn, tree data,
guard = make_edge (for_bb, ex_bb, 0);
single_succ_edge (loop->latch)->flags = 0;
end = make_edge (loop->latch, ex_bb, EDGE_FALLTHRU);
- for (phi = phi_nodes (ex_bb); phi; phi = PHI_CHAIN (phi))
+ for (gsi = gsi_start_phis (ex_bb); !gsi_end_p (gsi); gsi_next (&gsi))
{
+ phi = gsi_stmt (gsi);
res = PHI_RESULT (phi);
- gcc_assert (!is_gimple_reg (phi));
- t = SSA_NAME_DEF_STMT (PHI_ARG_DEF_FROM_EDGE (phi, exit));
- add_phi_arg (phi, PHI_ARG_DEF_FROM_EDGE (t, loop_preheader_edge (loop)),
+ stmt = SSA_NAME_DEF_STMT (PHI_ARG_DEF_FROM_EDGE (phi, exit));
+ add_phi_arg (phi,
+ PHI_ARG_DEF_FROM_EDGE (stmt, loop_preheader_edge (loop)),
guard);
- add_phi_arg (phi, PHI_ARG_DEF_FROM_EDGE (t, loop_latch_edge (loop)),
+ add_phi_arg (phi, PHI_ARG_DEF_FROM_EDGE (stmt, loop_latch_edge (loop)),
end);
}
e = redirect_edge_and_branch (exit, nexit->dest);
PENDING_STMT (e) = NULL;
- /* Emit OMP_FOR. */
- TREE_OPERAND (cond, 0) = cvar_base;
+ /* Emit GIMPLE_OMP_FOR. */
+ gimple_cond_set_lhs (cond_stmt, cvar_base);
type = TREE_TYPE (cvar);
t = build_omp_clause (OMP_CLAUSE_SCHEDULE);
OMP_CLAUSE_SCHEDULE_KIND (t) = OMP_CLAUSE_SCHEDULE_STATIC;
- for_stmt = make_node (OMP_FOR);
- TREE_TYPE (for_stmt) = void_type_node;
- OMP_FOR_CLAUSES (for_stmt) = t;
- OMP_FOR_INIT (for_stmt) = make_tree_vec (1);
- TREE_VEC_ELT (OMP_FOR_INIT (for_stmt), 0)
- = build_gimple_modify_stmt (initvar, cvar_init);
- OMP_FOR_COND (for_stmt) = make_tree_vec (1);
- TREE_VEC_ELT (OMP_FOR_COND (for_stmt), 0) = cond;
- OMP_FOR_INCR (for_stmt) = make_tree_vec (2);
- TREE_VEC_ELT (OMP_FOR_INCR (for_stmt), 0)
- = build_gimple_modify_stmt (cvar_base,
- build2 (PLUS_EXPR, type, cvar_base,
- build_int_cst (type, 1)));
- OMP_FOR_BODY (for_stmt) = NULL_TREE;
- OMP_FOR_PRE_BODY (for_stmt) = NULL_TREE;
-
- bsi = bsi_last (for_bb);
- bsi_insert_after (&bsi, for_stmt, BSI_NEW_STMT);
+ for_stmt = gimple_build_omp_for (NULL, t, 1, NULL);
+ gimple_omp_for_set_index (for_stmt, 0, initvar);
+ gimple_omp_for_set_initial (for_stmt, 0, cvar_init);
+ gimple_omp_for_set_final (for_stmt, 0, gimple_cond_rhs (cond_stmt));
+ gimple_omp_for_set_cond (for_stmt, 0, gimple_cond_code (cond_stmt));
+ gimple_omp_for_set_incr (for_stmt, 0, build2 (PLUS_EXPR, type,
+ cvar_base,
+ build_int_cst (type, 1)));
+
+ gsi = gsi_last_bb (for_bb);
+ gsi_insert_after (&gsi, for_stmt, GSI_NEW_STMT);
SSA_NAME_DEF_STMT (initvar) = for_stmt;
- /* Emit OMP_CONTINUE. */
- bsi = bsi_last (loop->latch);
- t = build2 (OMP_CONTINUE, void_type_node, cvar_next, cvar);
- bsi_insert_after (&bsi, t, BSI_NEW_STMT);
- SSA_NAME_DEF_STMT (cvar_next) = t;
+ /* Emit GIMPLE_OMP_CONTINUE. */
+ gsi = gsi_last_bb (loop->latch);
+ stmt = gimple_build_omp_continue (cvar_next, cvar);
+ gsi_insert_after (&gsi, stmt, GSI_NEW_STMT);
+ SSA_NAME_DEF_STMT (cvar_next) = stmt;
- /* Emit OMP_RETURN for OMP_FOR. */
- bsi = bsi_last (ex_bb);
- t = make_node (OMP_RETURN);
- OMP_RETURN_NOWAIT (t) = 1;
- bsi_insert_after (&bsi, t, BSI_NEW_STMT);
+ /* Emit GIMPLE_OMP_RETURN for GIMPLE_OMP_FOR. */
+ gsi = gsi_last_bb (ex_bb);
+ gsi_insert_after (&gsi, gimple_build_omp_return (true), GSI_NEW_STMT);
return paral_bb;
}
@@ -1660,7 +1655,8 @@ gen_parallel_loop (struct loop *loop, htab_t reduction_list,
struct loop *nloop;
loop_iterator li;
tree many_iterations_cond, type, nit;
- tree stmts, arg_struct, new_arg_struct;
+ tree arg_struct, new_arg_struct;
+ gimple_seq stmts;
basic_block parallel_head;
edge entry, exit;
struct clsn_data clsn_data;
@@ -1690,14 +1686,14 @@ gen_parallel_loop (struct loop *loop, htab_t reduction_list,
BODY1;
store all local loop-invariant variables used in body of the loop to DATA.
- OMP_PARALLEL (OMP_CLAUSE_NUM_THREADS (N_THREADS), LOOPFN, DATA);
+ GIMPLE_OMP_PARALLEL (OMP_CLAUSE_NUM_THREADS (N_THREADS), LOOPFN, DATA);
load the variables from DATA.
- OMP_FOR (IV = INIT; COND; IV += STEP) (OMP_CLAUSE_SCHEDULE (static))
+ GIMPLE_OMP_FOR (IV = INIT; COND; IV += STEP) (OMP_CLAUSE_SCHEDULE (static))
BODY2;
BODY1;
- OMP_CONTINUE;
- OMP_RETURN -- OMP_FOR
- OMP_RETURN -- OMP_PARALLEL
+ GIMPLE_OMP_CONTINUE;
+ GIMPLE_OMP_RETURN -- GIMPLE_OMP_FOR
+ GIMPLE_OMP_RETURN -- GIMPLE_OMP_PARALLEL
goto end;
original:
@@ -1723,7 +1719,7 @@ gen_parallel_loop (struct loop *loop, htab_t reduction_list,
nit = force_gimple_operand (unshare_expr (niter->niter), &stmts, true,
NULL_TREE);
if (stmts)
- bsi_insert_on_edge_immediate (loop_preheader_edge (loop), stmts);
+ gsi_insert_seq_on_edge_immediate (loop_preheader_edge (loop), stmts);
many_iterations_cond =
fold_build2 (GE_EXPR, boolean_type_node,
@@ -1735,14 +1731,14 @@ gen_parallel_loop (struct loop *loop, htab_t reduction_list,
many_iterations_cond
= force_gimple_operand (many_iterations_cond, &stmts, false, NULL_TREE);
if (stmts)
- bsi_insert_on_edge_immediate (loop_preheader_edge (loop), stmts);
+ gsi_insert_seq_on_edge_immediate (loop_preheader_edge (loop), stmts);
if (!is_gimple_condexpr (many_iterations_cond))
{
many_iterations_cond
= force_gimple_operand (many_iterations_cond, &stmts,
true, NULL_TREE);
if (stmts)
- bsi_insert_on_edge_immediate (loop_preheader_edge (loop), stmts);
+ gsi_insert_seq_on_edge_immediate (loop_preheader_edge (loop), stmts);
}
initialize_original_copy_tables ();
@@ -1803,16 +1799,16 @@ gen_parallel_loop (struct loop *loop, htab_t reduction_list,
/* Returns true when LOOP contains vector phi nodes. */
static bool
-loop_has_vector_phi_nodes (struct loop *loop)
+loop_has_vector_phi_nodes (struct loop *loop ATTRIBUTE_UNUSED)
{
unsigned i;
basic_block *bbs = get_loop_body_in_dom_order (loop);
+ gimple_stmt_iterator gsi;
bool res = true;
- tree phi;
for (i = 0; i < loop->num_nodes; i++)
- for (phi = phi_nodes (bbs[i]); phi; phi = PHI_CHAIN (phi))
- if (TREE_CODE (TREE_TYPE (PHI_RESULT (phi))) == VECTOR_TYPE)
+ for (gsi = gsi_start_phis (bbs[i]); !gsi_end_p (gsi); gsi_next (&gsi))
+ if (TREE_CODE (TREE_TYPE (PHI_RESULT (gsi_stmt (gsi)))) == VECTOR_TYPE)
goto end;
res = false;
@@ -1841,6 +1837,7 @@ parallelize_loops (void)
reduction_list = htab_create (10, reduction_info_hash,
reduction_info_eq, free);
+ init_stmt_vec_info_vec ();
FOR_EACH_LOOP (li, loop, 0)
{
@@ -1865,6 +1862,7 @@ parallelize_loops (void)
verify_loop_closed_ssa ();
}
+ free_stmt_vec_info_vec ();
htab_delete (reduction_list);
return changed;
}