1. 01 Dec, 2009 14 commits
    • cgraphunit.c (plugin.h): Include. · 090fa0ab
      2009-12-01  Grigori Fursin  <grigori.fursin@inria.fr>
                  Joern Rennecke  <amylaar@spamcop.net>
      
              * cgraphunit.c (plugin.h): Include.
              (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
              PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
              * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
              (enum plugin_event): Define by including plugin.def.
              Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
              (plugin_event_name): Change type to const char **.
              (get_event_last, get_named_event_id, unregister_callback): Declare.
              (register_callback): Change type of event argument to int.
              (highlev-plugin-common.h): New file.
              * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
              $(HASHTAB_H)
              (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
              (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
              (s-header-vars): New rule.
              (install-plugin): Depend on s-header-vars.  Install b-header-vars.
              * params.c (get_num_compiler_params): New function.
              * params.h (get_num_compiler_params): Declare.
              * passes.c (plugin.h): Include.
              (make_pass_instance): Invoke PLUGIN_NEW_PASS.
              (do_per_function_toporder, pass_init_dump_file): No longer static.
              (pass_fini_dump_file): Likewise.
              (execute_one_pass): Likewise.  Invoke PLUGIN_OVERRIDE_GATE and
              PLUGIN_PASS_EXECUTION.
              (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
              PLUGIN_EARLY_GIMPLE_PASSES_END.
              * plugin.c (plugin_event_name_init): New array, defined by
              including plugin.def.
              (FMT_FOR_PLUGIN_EVENT): Update.
              (plugin_event_name): Change type to const char ** and initialize
              to plugin_event_name_init.
              (event_tab, event_last, event_horizon): New variable.
              (get_event_last): New function.
              (plugin_callbacks_init): New array.
              (plugin_callbacks: Change type to struct callback_info **.
              Initialize to plugin_callbacks_init.
              (htab_event_eq, get_named_event_id, unregister_callback): New function.
              (invoke_plugin_va_callbacks): Likewise.
              (register_callback): Change type of event argument to int.
              Handle new events.  Allow dynamic events.
              (invoke_plugin_callbacks): Likewise.  Return success status.
              (plugins_active_p): Allow dynamic callbacks.
              * plugin.def: New file.
              * plugin.h (invoke_plugin_callbacks): Update prototype.
              (invoke_plugin_va_callbacks): Declare.
              * tree-optimize.c (plugin.h): Include.
              (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
              PLUGIN_ALL_PASSES_END.
              * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
              (pass_fini_dump_file, do_per_function_toporder): Likewise.
              * doc/plugin.texi: Document new event types.
      
      Co-Authored-By: Joern Rennecke <amylaar@spamcop.net>
      
      From-SVN: r154877
      Grigori Fursin committed
    • PR fortran/42131 Sign test using ternary operator · d0d565e1
      From-SVN: r154876
      Janne Blomqvist committed
    • re PR tree-optimization/42237 (internal compiler error: verify_stmts failed) · d557591d
      2009-12-01  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/42237
      	* tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
      	in between references into two.
      
      	* testsuite/gcc.c-torture/compile/pr42237.c: New test.
      
      From-SVN: r154874
      Martin Jambor committed
    • tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK to the block of the call… · ee0192a2
      tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK to the block of the call when remapping a type.
      
      2009-12-01  Richard Guenther  <rguenther@suse.de>
      
      	* tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
      	to the block of the call when remapping a type.
      
      From-SVN: r154873
      Richard Guenther committed
    • cgraph.h (struct cgraph_edge): Reorder fields. · 6009ee7b
      2009-12-01  Martin Jambor  <mjambor@suse.cz>
      
              * cgraph.h (struct cgraph_edge): Reorder fields.  Make loop_nest
      	unsigned short int.
      	* ipa-prop.h (struct ipa_param_call_note): Likewise.
      	* ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
      
      From-SVN: r154872
      Martin Jambor committed
    • s-osprim-mingw.adb (Get_Base_Time): Make sure that the base time is taken at a clock tick boundary. · b27dc431
      2009-12-01  Pascal Obry  <obry@adacore.com>
      
      	* s-osprim-mingw.adb (Get_Base_Time): Make sure that the base time is
      	taken at a clock tick boundary.
      
      From-SVN: r154871
      Pascal Obry committed
    • [multiple changes] · 4f08579c
      2009-12-01  Thomas Quinot  <quinot@adacore.com>
      
      	* g-sechas.ads (GNAT.Secure_Hashes.H."=" on Context): Make abstract.
      
      2009-12-01  Matthew Gingell  <gingell@adacore.com>
      
      	* adadecode.c: Allow compilation when building the run time in the gnat
      	runtime.
      	(__gnat_decode): Strip the .nnnn suffix from names of nested functions.
      
      	* gcc-interface/Makefile.in: Ada adadecode to LIBGNAT_SRCS and
      	LIBGNAT_OBJS.
      
      2009-12-01  Vincent Celier  <celier@adacore.com>
      
      	* gnatcmd.adb (Check_Files): Quote the path names as they may include
      	spaces.
      
      2009-12-01  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Object_Declaration): If the defining identifier
      	has already been declared, it may have been rewritten as a renaming
      	declaration.
      
      From-SVN: r154870
      Arnaud Charlet committed
    • final.c (rest_of_clean_state): If -fcompare-debug is given dump final insns without UIDs. · c7ba0cfb
      2009-12-01  Richard Guenther  <rguenther@suse.de>
      
      	* final.c (rest_of_clean_state): If -fcompare-debug is
      	given dump final insns without UIDs.
      	* tree-ssa-live.c (remove_unused_scope_block_p): Remove
      	after_inlining checks.
      
      From-SVN: r154869
      Richard Guenther committed
    • [multiple changes] · b7d5e87b
      2009-12-01  Ed Schonberg  <schonberg@adacore.com>
      
      	* einfo.ads: Clarify use of Is_Private_Primitive.
      	* sem_ch6.adb (Analyze_Subprogram_Declaration): An operation is a
      	private primitive operation only if it is declared in the scope of the
      	private controlling type.
      	* exp_ch9.adb (Build_Wrapper_Spec): Build wrappers for private
      	protected operations as well.
      
      2009-12-01  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Disable front-end
      	optimizations in CodePeer mode, to keep the tree as close to the source
      	code as possible, and also to avoid inconsistencies between trees when
      	using different optimization switches.
      
      2009-12-01  Thomas Quinot  <quinot@adacore.com>
      
      	* scos.ads: Updated specification of source coverage obligation
      	information.
      
      2009-12-01  Thomas Quinot  <quinot@adacore.com>
      
      	* g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb,
      	a-ststio.adb, s-commun.adb, s-commun.ads, g-socket.adb,
      	g-socket.ads (System.Communications.Last_Index): For the case where no
      	element has been transferred and Item'First =
      	Stream_Element_Offset'First, raise CONSTRAINT_ERROR.
      
      2009-12-01  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch10.adb (Install_Siblings): A private with_clause on some child
      	unit U in an ancestor of the current unit must be ignored if the
      	current unit has a regular with_clause on U.
      
      From-SVN: r154868
      Arnaud Charlet committed
    • re PR c++/42057 (ICE with invalid parameter of virtual function) · acb85bea
      2009-12-01  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/42057
      	* g++.dg/parse/crash54.C: New.
      
      From-SVN: r154865
      Paolo Carlini committed
    • dsp-lhx.c: New test. · 30093f04
      2009-11-30  Chao-ying Fu  <fu@mips.com>
      
      	* gcc.target/mips/dsp-lhx.c: New test.
      	* gcc.target/mips/dsp-no-lhx.c: New test.
      
      From-SVN: r154862
      Chao-ying Fu committed
    • mips-dsp.md (mips_lhx_<mode>): Use sign_extend. · b5290908
      2009-11-30  Chao-ying Fu  <fu@mips.com>
      
      	* config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
      
      From-SVN: r154861
      Chao-ying Fu committed
    • Daily bump. · 4643ee61
      From-SVN: r154859
      GCC Administrator committed
    • libstdc++.exp (libstdc++_init): Add host-dependent settings for LC_ALL and LANG. · 14c4d127
      2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      	* testsuite/lib/libstdc++.exp (libstdc++_init): Add host-dependent
      	settings for LC_ALL and LANG.
      
      From-SVN: r154856
      Dave Korn committed
  2. 30 Nov, 2009 26 commits
    • re PR libffi/35484 (libffi doesn't support AIX 64bit) · 5751cf6f
      2009-11-30  David Edelsohn  <edelsohn@gnu.org>
      
              PR target/35484
              * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
              AIX64.
              * src/powerpc/aix.S: Implement AIX64 version.
              * src/powerpc/aix_closure.S: Implement AIX64 version.
              (ffi_closure_ASM): Use extsb, lha and displament addresses.
              * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
              support.
              (ffi_prep_cif_machdep): Same.
              (ffi_call): Same.
              (ffi_closure_helper_DARWIN): Same.
      
      From-SVN: r154855
      David Edelsohn committed
    • libgomp.exp (libgomp_init): Add host-dependent settings for LC_ALL and LANG. · 17f35e23
      libgomp/ChangeLog
      
      2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      	* testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
      	settings for LC_ALL and LANG.
      
      gcc/testsuite/ChangeLog
      
      2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      	* lib/g++.exp (g++_init): Add host-dependent settings for
      	LC_ALL and LANG.
      	* lib/gcc-dg.exp: Likewise.
      	* lib/options.exp: Likewise.
      	* lib/objc.exp (objc_init): Likewise.
      	* lib/gfortran.exp (gfortran_init): Likewise.
      
      libjava/ChangeLog
      
      2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      	* testsuite/lib/libjava.exp (libjava_init):  Add host-dependent
      	settings for LC_ALL and LANG.
      
      From-SVN: r154854
      Dave Korn committed
    • configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect status of… · f7e413e2
      configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
      
      gcc/ChangeLog:
      
      2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      	* configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
      	status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      
      	* config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
      	options for Cygwin DLL libstdc++ support wrappers.
      	(CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
      	according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
      	(CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
      	whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
      	(LINK_SPEC): Include CXX_WRAP_SPEC.
      	* gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
      	(i386_find_on_wrapper_list): Check if a function is found on the list
      	of libstdc++ wrapper options.
      	(i386_pe_file_end): If we are importing a wrapped function, also emit
      	an external declaration for the real version.
      	* config/i386/cygming.opt (muse-libstdc-wrappers): New option for
      	Cygwin targets. Update copyright year.
      
      libstdc++-v3/ChangeLog:
      
      2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      	* libstdc++-v3/acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Don't disable
      	on PE targets.
      	* libstdc++-v3/configure: Regenerate.
      	* libstdc++-v3/configure.host: Add libtool DLL options for Cygwin
      	and MinGW platforms.
      
      	* libstdc++-v3/include/bits/c++config (_GLIBCXX_VISIBILITY_ATTR): On
      	platforms that don't support visibility, allow them to declare a macro
      	_GLIBCXX_PSEUDO_VISIBILITY that is applied in place of visibility.
      	(_GLIBCXX_PSEUDO_VISIBILITY): Supply empty default if not declared by
      	CPU- or OS-specific headers.
      
      	* libstdc++-v3/config/os/newlib/os_defines.h
      	(_GLIBCXX_PSEUDO_VISIBILITY_default): New macro for dllimport.
      	(_GLIBCXX_PSEUDO_VISIBILITY_hidden): New empty macro.
      	(_GLIBCXX_PSEUDO_VISIBILITY): Evaluate to one of the above.
      	* libstdc++-v3/config/os/mingw32/os_defines.h
      	(_GLIBCXX_PSEUDO_VISIBILITY_default,
      	_GLIBCXX_PSEUDO_VISIBILITY_hidden,
      	_GLIBCXX_PSEUDO_VISIBILITY): Likewise.
      
      From-SVN: r154853
      Dave Korn committed
    • re PR c++/40371 (ICE with template operator) · 9c39ceab
      cp/
      2009-11-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/40371
      	* call.c (add_template_candidate_real): Early return NULL if
      	the arglist length is smaller than skip_without_in_chrg; tidy.
      
      testsuite/
      2009-11-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/40371
      	* g++.dg/template/crash93.C: New.
      
      From-SVN: r154852
      Paolo Carlini committed
    • Correct testcase · ed807d06
      2009-11-29  Alexander Monakov <amonakov@gcc.gnu.org>
      
      	* testsuite/g++.dg/graphite/pr42130.C: Correct testcase.
      
      From-SVN: r154851
      Alexander Monakov committed
    • Fix comments. · 7c246f5e
      2009-11-24  Tobias Grosser  <grosser@fim.uni-passau.de>
      
      	* graphite-clast-to-gimple.c (try_mark_loop_parallel,
      	graphite_create_new_loop_guard, translate_clast_for): Fix comments.
      
      From-SVN: r154850
      Tobias Grosser committed
    • Protect loops that might be executed zero times. · 0dd91484
      2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>
      
      	PR middle-end/42130
      	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard,
      	translate_clast_for_loop): New.
      	(translate_clast_for): Add a condition around the loop, to do not
      	execute loops with zero iterations.
      	* testsuite/g++.dg/graphite/pr42130.C: New.
      	* testsuite/gcc.dg/graphite/pr35356-2.c: Adapt.
      
      From-SVN: r154849
      Tobias Grosser committed
    • Remove context_loop and level from translate_clast_* methods. · fd2d813d
      2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>
      
      	* graphite-clast-to-gimple.c (try_mark_loop_parallel): New.
      	(translate_clast_for, translate_clast_guard, translate_clast, gloog):
      	Remove context_loop and level.
      
      From-SVN: r154848
      Tobias Grosser committed
    • Simplify translate_clast_* methods · 9016166f
      2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>
      
      	* graphite-clast-to-gimple.c (translate_clast_user,
      	translate_clast_for, translate_clast_guard): Simplify and move common
      	elements to translate_clast().
      	(translate_clast): Simplify and get common elements.
      
      From-SVN: r154847
      Tobias Grosser committed
    • pr41551.c: New test. · cdc90f92
      2009-11-30  Steve Ellcey  <sje@cup.hp.com>
      
      	* gcc.dg/pr41551.c: New test.
      
      From-SVN: r154846
      Steve Ellcey committed
    • split translate_clast into single methods · e1f9c1cd
      2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>
      
      	* graphite-clast-to-gimple.c (translate_clast_user,
      	translate_clast_for, translate_clast_guard): Split out of
      	translate_clast.
      
      From-SVN: r154845
      Tobias Grosser committed
    • Do not abuse sese for codegeneration · 7a521ff2
      CLooG automatically frees the names list, so sharing SESE_PARAMS_NAMES
      between gloog() and debug_generated_program() leads to freeing them
      twice. As both SESE_PARAM_NAMES and SESE_PARAMS_INDEX are code
      generation data structures remove them and the functions working on them
      from sese.h and put them in clast-to-gimple.
      
      2009-11-21  Tobias Grosser  <grosser@fim.uni-passau.de>
      
      	* graphite-clast-to-gimple.c (clast_name_index, new_clast_name_index,
      	clast_name_to_index, save_clast_name_index, debug_clast_name_index,
      	debug_clast_name_indexes_1, debug_clast_name_indexes,
      	clast_name_index_elt_info, eq_clast_name_indexes): Moved from sese.h.
      	(clast_name_to_gcc, clast_to_gcc_expression,
      	clast_to_gcc_expression_red, gcc_type_for_clast_expr,
      	gcc_type_for_clast_eq, graphite_translate_clast_equation,
      	graphite_create_guard_cond_expr, graphite_create_new_loop,
      	translate_clast): Add params_index.
      	(initialize_cloog_names): Create parameter strings from scratch, do
      	not reference other strings.
      	(create_params_index): New.
      	(gloog): Initialize params_index.
      	* graphite-scop-detection (free_scops_1): Removed.
      	(limit_scops): Use normal free_scops.
      	* graphite-sese-to-poly.c (save_var_names): Removed.
      	(parameter_index_in_region): Do not initialize SESE_PARAM_NAMES
      	and SESE_PARAMS_INDEX.
      	* sese.c (new_sese, free_sese): Dito.
      	* sese.h (struct sese): Remove params_index, params_names.
      	(SESE_PARAMS_INDEX, SESE_PARAMS_NAMES): Removed.
      
      From-SVN: r154844
      Tobias Grosser committed
    • function.c (instantiate_virtual_regs_in_insn): Copy to new reg before forcing mode. · f7ce0951
      2009-11-30  Steve Ellcey  <sje@cup.hp.com>
      	    Jakub Jelinek <jakub@redhat.com>
      
      	* function.c (instantiate_virtual_regs_in_insn): Copy to new reg
      	before forcing mode.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r154843
      Steve Ellcey committed
    • sh.c (sh_promote_prototypes): Make static. · d64728cf
      	* config/sh/sh.c (sh_promote_prototypes): Make static.
      	(sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
      	functions.
      	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
      	* config/sh/sh.h: (FUNCTION_VALUE_REGNO_P): Redefine, use
      	sh_function_value_regno_p.
      	(FUNCTION_VALUE, LIBCALL_VALUE): Remove.
      	* config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
      	(sh_promote_prototypes) : Remove.
      
      From-SVN: r154842
      Anatoly Sokolov committed
    • s-oscons-tmplt.c: Only define _XOPEN5, IOV_MAX if _XOPEN_IOV_MAX is defined. · 6e15674a
      	* s-oscons-tmplt.c [__mips && __sgi]: Only define _XOPEN5, IOV_MAX
      	if _XOPEN_IOV_MAX is defined.
      
      From-SVN: r154841
      Rainer Orth committed
    • backport: re PR fortran/42053 ([OOP] SELECT TYPE: reject duplicate CLASS IS blocks) · 7c1dab0d
      merge from fortran-dev branch:
      
      
      gcc/fortran/
      
      2009-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/42053
      	* resolve.c (resolve_select_type): Check for duplicate CLASS IS blocks.
      
      2009-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/41631
      	* decl.c (gfc_match_derived_decl): Set extension level.
      	* gfortran.h (symbol_attribute): Expand 'extension' bit field to 8 bit.
      	* iresolve.c (gfc_resolve_extends_type_of): Return value of
      	'is_extension_of' has kind=4.
      	* match.c (select_type_set_tmp,gfc_match_class_is): Create temporary
      	for CLASS IS blocks.
      	* module.c (MOD_VERSION): Bump module version.
      	(ab_attribute,attr_bits): Remove AB_EXTENSION.
      	(mio_symbol_attribute): Handle expanded 'extension' field.
      	* resolve.c (resolve_select_type): Implement CLASS IS blocks.
      	(resolve_fl_variable_derived): Show correct type name.
      	* symbol.c (gfc_build_class_symbol): Set extension level.
      
      2009-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	* intrinsic.h (gfc_resolve_extends_type_of): Add prototype.
      	* intrinsic.c (add_functions): Use 'gfc_resolve_extends_type_of'.
      	* iresolve.c (gfc_resolve_extends_type_of): New function, which
      	replaces the call to EXTENDS_TYPE_OF by the library function
      	'is_extension_of' and modifies the arguments.
      	* trans-intrinsic.c (gfc_conv_extends_type_of): Removed.
      	(gfc_conv_intrinsic_function): FOR EXTENDS_TYPE_OF, don't call
      	gfc_conv_extends_type_of but gfc_conv_intrinsic_funcall.
      
      2009-11-30  Paul Thomas  <pault@gcc.gnu.org>
      	    Janus Weil  <janus@gcc.gnu.org>
      
      	* decl.c (encapsulate_class_symbol): Replaced by
      	'gfc_build_class_symbol'.
      	(build_sym,build_struct): Call 'gfc_build_class_symbol'.
      	(gfc_match_derived_decl): Replace vindex by hash_value.
      	* dump-parse-tree.c (show_symbol): Replace vindex by hash_value.
      	* gfortran.h (symbol_attribute): Add field 'vtab'.
      	(gfc_symbol): Replace vindex by hash_value.
      	(gfc_class_esym_list): Ditto.
      	(gfc_get_derived_type,gfc_build_class_symbol,gfc_find_derived_vtab):
      	New prototypes.
      	* module.c (mio_symbol): Replace vindex by hash_value.
      	* resolve.c (vindex_expr): Rename to 'hash_value_expr'.
      	(resolve_class_compcall,resolve_class_typebound_call): Renamed
      	'vindex_expr'.
      	(resolve_select_type): Replace $vindex by $vptr->$hash.
      	* symbol.c (gfc_add_save): Handle vtab symbols.
      	(gfc_type_compatible): Rewrite.
      	(gfc_build_class_symbol): New function which replaces
      	'encapsulate_class_symbol'.
      	(gfc_find_derived_vtab): New function to set up a vtab symbol for a
      	derived type.
      	* trans-decl.c (gfc_create_module_variable): Handle vtab symbols.
      	* trans-expr.c (select_class_proc): Replace vindex by hash_value.
      	(gfc_conv_derived_to_class): New function to construct a temporary
      	CLASS variable from a derived type expression.
      	(gfc_conv_procedure_call): Call 'gfc_conv_derived_to_class'.
      	(gfc_conv_structure): Initialize the $extends and $size fields of
      	vtab symbols.
      	(gfc_trans_class_assign): Replace $vindex by $vptr. Remove the $size
      	assignment.
      	* trans-intrinsic.c (gfc_conv_same_type_as): Replace $vindex by
      	$vptr->$hash, and replace vindex by hash_value.
      	* trans-stmt.c (gfc_trans_allocate): Insert $vptr references, replace
      	$vindex by $vptr. Remove the $size assignment.
      	* trans-types.c (gfc_get_derived_type): Make it non-static.
      
      
      gcc/testsuite/
      
      2009-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/42053
      	* gfortran.dg/select_type_9.f03: New.
      
      2009-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/41631
      	* gfortran.dg/extends_type_of_1.f03: Fix invalid test case.
      	* gfortran.dg/module_md5_1.f90: Adjusted MD5 sum.
      	* gfortran.dg/select_type_1.f03: Remove FIXMEs.
      	* gfortran.dg/select_type_2.f03: Ditto.
      	* gfortran.dg/select_type_8.f03: New test.
      
      2009-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	* gfortran.dg/extends_type_of_1.f03: New test.
      	* gfortran.dg/same_type_as_1.f03: Extended.
      
      2009-11-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.dg/class_4c.f03: Add dg-additional-sources.
      	* gfortran.dg/class_4d.f03: Rename module. Cleanup modules.
      
      
      libgfortran/
      
      2009-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	* gfortran.map: Add _gfortran_is_extension_of.
      	* Makefile.am: Add intrinsics/extends_type_of.c.
      	* Makefile.in: Regenerated.
      	* intrinsics/extends_type_of.c: New file.
      
      From-SVN: r154840
      Janus Weil committed
    • re PR fortran/42131 (Weird translation of DO loops) · 8146bb58
      2009-11-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/42131
      	* trans-stmt.c (gfc_trans_do):  Calculate loop count
      	without if statements.
      
      From-SVN: r154839
      Thomas Koenig committed
    • arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2 reloads to LO_REGS. · 12d210d9
      	gcc/
      	* config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
      	reloads to LO_REGS.
      
      From-SVN: r154838
      Julian Brown committed
    • re PR testsuite/42212 (ERROR: tcl error sourcing… · c217e261
      re PR testsuite/42212 (ERROR: tcl error sourcing /Users/regress/tbox/svn-gcc/gcc/testsuite/gcc.target/powerpc/powerpc.exp.)
      
      	PR testsuite/42212
      	* gcc.target/powerpc/regnames-1.c: Add missing brace dg-do.
      
      From-SVN: r154837
      Janis Johnson committed
    • re PR middle-end/42196 (ICE when SRAing partial assigments to complex number) · 9fda11a2
      2009-11-30  Martin Jambor  <mjambor@suse.cz>
      
      	PR middle-end/42196
      	* tree-sra.c (struct access): New field grp_different_types.
      	(dump_access): Dump grp_different_types.
      	(compare_access_positions): Prefer scalars and vectors over other
      	scalar types.
      	(sort_and_splice_var_accesses): Set grp_different_types if appropriate.
      	(sra_modify_expr): Use the original also when dealing with a complex
      	 or vector group accessed as multiple types.
      
      	* testsuite/gcc.c-torture/compile/pr42196-1.c: New test.
      	* testsuite/gcc.c-torture/compile/pr42196-2.c: New test.
      	* testsuite/gcc.c-torture/compile/pr42196-3.c: New test.
      
      From-SVN: r154834
      Martin Jambor committed
    • i386.c (avx_vperm2f128_parallel): New. · ca659f6e
              * config/i386/i386.c (avx_vperm2f128_parallel): New.
              * config/i386/i386-protos.h: Declare it.
              * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
              avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
              * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
              (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
              (*avx_vperm2f128<mode>_nozero): New.
      
      From-SVN: r154832
      Richard Henderson committed
    • i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New. · 784e5ae1
      	* config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
      	(V8SF_FTYPE_V8SF_V8SF_V8SI): New.
      	* config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
      	V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
      	(IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
      	(bdesc_args): Add them.
      	(ix86_expand_builtin): Expand them.
      	(expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
      
      From-SVN: r154831
      Richard Henderson committed
    • largefile.m4 (ACX_LARGEFILE): Require AC_CANONICAL_HOST and AC_CANONICAL_TARGET. · 1feb5751
      	* largefile.m4 (ACX_LARGEFILE): Require AC_CANONICAL_HOST and
      	AC_CANONICAL_TARGET.
      
      From-SVN: r154830
      Joseph Myers committed
    • [multiple changes] · 66bdcfd6
      2009-11-30  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* vms_data.ads: Add new VMS qualifiers,
      	REVERSE_BIT_ORDER/NOREVERSE_BIT_ORDER, to support warnings on bit order
      	effects.
      
      2009-11-30  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch9.adb, exp_ch9.ads, sem_util.ads: Minor reformatting.
      
      2009-11-30  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_prag.adb: Fix spelling error.
      
      From-SVN: r154829
      Arnaud Charlet committed
    • [multiple changes] · 47bfea3a
      2009-11-30  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch9.ads (Build_Private_Protected_Declaration): For a protected
      	operation that is only declared in a protected body, create a
      	corresponding subprogram declaration.
      	* exp_ch9.adb (Expand_N_Protected_Body): Create protected body of
      	operation in all cases, including for an operation that is only
      	declared in the body.
      	* sem_ch6.adb: Call Build_Private_Protected_Declaration
      	* exp_ch6.adb (Expand_N_Subprogram_Declaration): For an operation
      	declared in a protected body, create the declaration for the
      	corresponding protected version of the operation.
      
      2009-11-30  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Disable specific expansions
      	for Restrictions pragmas, to avoid tree inconsistencies between
      	compilations with different pragmas.
      
      2009-11-30  Jerome Lambourg  <lambourg@adacore.com>
      
      	* sem_prag.adb (Check_Duplicated_Export_Name): Allow entities exported
      	to CIL to have duplicated export name.
      
      From-SVN: r154828
      Arnaud Charlet committed