1. 12 Dec, 2011 34 commits
    • re PR tree-optimization/45830 (Code+rodata increase with -ftree-switch-conversion) · 35a730f8
      	PR tree-optimization/45830
      	* gcc.c-torture/execute/pr45830.c: Move from here to...
      	* gcc.dg/torture/pr45830.c: ...this new file.  Add dg-do and
      	dg-additional-options magic.
      
      From-SVN: r182262
      Georg-Johann Lay committed
    • gfortran.dg/nested_modules_2.f90: Tighten test. · 1d843546
      2011-12-12  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* gfortran.dg/nested_modules_2.f90: Tighten test.
      
      From-SVN: r182258
      Janne Blomqvist committed
    • re PR c++/51496 (FAIL: libgomp.c++/for-2.C * (test for excess errors)) · 007db660
      	PR c++/51496
      	* parser.c (cp_parser_omp_for_loop): When determining whether
      	to use cp_parser_omp_for_incr or cp_parser_expression and when
      	calling cp_parser_omp_for_incr, use real_decl instead of decl.
      
      From-SVN: r182257
      Jakub Jelinek committed
    • net/http: delete temporary files. · fe4bf59f
      From-SVN: r182256
      Ian Lance Taylor committed
    • re PR tree-optimization/50569 (unaligned memory accesses generated for memcpy) · 0b272848
      	PR tree-optimization/50569
      	* tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
      	in the expression of MODEL instead of just the last one.
      
      From-SVN: r182252
      Eric Botcazou committed
    • Fix flags for edges from/to entry/exit basic blocks. · f7c8a2da
      	* cgraphunit.c (init_lowered_empty_function):
      	Fix flags for new edges.
      
      From-SVN: r182251
      Dmitry Vyukov committed
    • revert: re PR target/51135 (SIGSEGV during exception cleanup on win32) · 60f3dad7
      2011-12-12  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	Revert:
      	2011-12-12  Kai Tietz  <ktietz@redhat.com>
      
      	PR libstdc++/51135
      	* libsupc++/cxxabi.h (__cxa_dtor_type): New type.
      	(__cxa_throw): Use it for destructor-argument.
      	* libsupc++/eh_throw.cc (__cxa_throw): Likewise.
      	* libsupc++/unwind-cxx.h (__cxa_exception): Change type of member
      	exceptionDestructor to __cxa_dtor_type.
      	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_THISCALL_ON_DTOR):
      	Define.
      	(__cxa_dtor_type): Declare target secific type variant.
      	* config/os/mingw32/os_defines.h: Likewise.
      
      From-SVN: r182250
      Paolo Carlini committed
    • 2011-12-12 Paolo Carlini <paolo.carlini@oracle.com> · 7252b079
      	* Revert the last commit.
      
      From-SVN: r182249
      Paolo Carlini committed
    • re PR testsuite/51511 (gcc.dg/pr45819.c fails on arm-linux-gnueabi due to PR50078+PR51466 fix) · 30f232fd
      	PR testsuite/51511
      	* gcc.dg/pr45819.c: Add -w to dg-options.
      
      From-SVN: r182247
      Jakub Jelinek committed
    • re PR middle-end/51510 (gcc for arm-linux-gnueabi ICEs on… · c79be1dc
      re PR middle-end/51510 (gcc for arm-linux-gnueabi ICEs on gcc.c-torture/execute/20050713-1.c due to PR50074+PR51323 fix)
      
      	PR middle-end/51510
      	* calls.c (internal_arg_pointer_based_exp_scan): Don't use
      	VEC_safe_grow_cleared if idx is smaller than VEC_length.
      
      From-SVN: r182246
      Jakub Jelinek committed
    • re PR tree-optimization/50873 (The fix to PR50730 causes gcc.c-torture/unsorted/dilayout.c to ICE) · 431e1124
      gcc/
      	PR middle-end/50873
      	* optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
      	instead of force_reg.  Do nothing if the address is already a
      	non-virtual pseudo register.
      
      From-SVN: r182244
      Richard Sandiford committed
    • [multiple changes] · c9556982
      2011-12-12  Robert Dewar  <dewar@adacore.com>
      
      	* s-taprop-mingw.adb: Minor reformatting.
      
      2011-12-12  Nicolas Roche  <roche@adacore.com>
      
      	* gcc-interface/Make-lang.in: Update dependencies.
      	Add gnattools4 target when building tools in canadian mode
      
      2011-12-12  Javier Miranda  <miranda@adacore.com>
      
      	* exp_disp.adb (Make_VM_TSD): Complete previous
      	patch.
      
      2011-12-12  Bob Duff  <duff@adacore.com>
      
      	* s-tpobop.adb: Use named notation.
      	* g-bytswa.ads, s-taprop.ads: Minor comment fix.
      
      2011-12-12  Arnaud Charlet  <charlet@adacore.com>
      
      	* make.adb: Minor comment update.
      
      From-SVN: r182242
      Arnaud Charlet committed
    • freeze.adb, [...]: Minor reformatting. · cf7bb903
      2011-12-12  Robert Dewar  <dewar@adacore.com>
      
      	* freeze.adb, s-taprop-mingw.adb, exp_disp.adb, sem_ch13.adb: Minor
      	reformatting.
      
      From-SVN: r182241
      Robert Dewar committed
    • [multiple changes] · e876c43a
      2011-12-12  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch6.adb, gnatls.adb: Minor reformatting.
      
      2011-12-12  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb (Freeze_Entity): If a type declared in a generic
      	context has predicates, generate a freeze node for it.
      	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression
      	has not been analyzed yet, entity has not been frozen, so analyze
      	it now.
      
      2011-12-12  Javier Miranda  <miranda@adacore.com>
      
      	* exp_disp.adb (Make_VM_TSD): Generate code
      	to store the value 'alignment in the TSD.
      
      2011-12-12  Bob Duff  <duff@adacore.com>
      
      	* s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D
      	mode.
      
      From-SVN: r182240
      Arnaud Charlet committed
    • exp_ch4.adb (Expand_N_Allocator): Update the master of an anonymous… · ad5a445d
      exp_ch4.adb (Expand_N_Allocator): Update the master of an anonymous access-to-controlled type to utilize the...
      
      2011-12-12  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Allocator): Update the master of an
      	anonymous access-to-controlled type to utilize the heterogeneous
      	master associated with the current unit.
      
      From-SVN: r182239
      Hristian Kirtchev committed
    • Correct bug-number in ChangeLog. · 83d5afb7
              PR libstdc++/51135
              * libsupc++/cxxabi.h (__cxxabi_dtor_type): New type.
              (__cxa_throw): Use it for destructor-argument.
              * libsupc++/eh_throw.cc (__cxa_throw): Likewise.
              * libsupc++/unwind-cxx.h (__cxa_exception): Change type of member
              exceptionDestructor to __cxxabi_dtor_type.
              * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_THISCALL_ON_DTOR):
              Define.
              (__cxa_dtor_type): Declare target secific type variant.
              * config/os/mingw32/os_defines.h: Likewise.
      
      From-SVN: r182238
      Kai Tietz committed
    • PR libstdc++/511135 · f5c48b80
      	* libsupc++/cxxabi.h (__cxxabi_dtor_type): New type.
      	(__cxa_throw): Use it for destructor-argument.
      	* libsupc++/eh_throw.cc (__cxa_throw): Likewise.
      	* libsupc++/unwind-cxx.h (__cxa_exception): Change type of member
      	exceptionDestructor to __cxxabi_dtor_type.
      	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_THISCALL_ON_DTOR):
      	Define.
      	(__cxa_dtor_type): Declare target secific type variant.
      	* config/os/mingw32/os_defines.h: Likewise.
      
      From-SVN: r182237
      Kai Tietz committed
    • [multiple changes] · b913199e
      2011-12-12  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): If the function
      	is not a completion, pre-analyze the expression now to prevent
      	spurious visibility on later entities. The body is inserted at
      	the end of the current declaration list or package to prevent
      	early freezing, but the visibility is established at the point
      	of definition.
      
      2011-12-12  Bob Duff  <duff@adacore.com>
      
      	* sem.adb, sem.ads: Add debugging routines.
      
      2011-12-12  Tristan Gingold  <gingold@adacore.com>
      
      	* gnatls.adb: (gnatls): Also add the objects dir in search list.
      
      From-SVN: r182235
      Arnaud Charlet committed
    • Support noexcept-specifications for transaction statements and expressions. · f0f3286a
      	gcc/cp/
      	* semantics.c (finish_transaction_stmt, build_transaction_expr):
      	Accept new noexcept parameter and handle it.
      	* cp-tree.h (finish_transaction_stmt, build_transaction_expr): Adapt
      	declarations.
      	* parser.c (cp_parser_exception_specification_opt): Extract
      	noexcept-specification parsing to ...
      	(cp_parser_noexcept_specification_opt): ...here.  Allow for parsing
      	non-constexpr noexcept arguments.
      	(cp_parser_transaction, cp_parser_transaction_expression): Parse
      	and handle noexcept-specifications.
      	(cp_parser_function_transaction): Adapt to finish_transaction_stmt
      	change.
      	* pt.c (tsubst_expr): Adapt to new noexcept parameters when
      	building transactions.
      
      	gcc/testsuite/
      	* g++.dg/tm/noexcept-1.C: New test.
      	* g++.dg/tm/noexcept-2.C: New test.
      	* g++.dg/tm/noexcept-3.C: New test.
      	* g++.dg/tm/noexcept-4.C: New test.
      	* g++.dg/tm/noexcept-5.C: New test.
      
      From-SVN: r182234
      Torvald Riegel committed
    • Add condition to MUST_NOT_THROW_EXPR. · f2162c3d
      	gcc/cp/
      	* cp-tree.def (MUST_NOT_THROW_EXPR): Add condition parameter.
      	* cp-tree.h (MUST_NOT_THROW_COND): New.
      	(build_must_not_throw_expr): Declare.
      	* dump.c (cp_dump_tree): Dump MUST_NOT_THROW_EXPR condition.
      	* except.c (build_must_not_throw_expr): New.
      	(initialize_handler_parm): Use it.
      	(begin_eh_spec_block, wrap_cleanups_r): Adapt to condition.
      	* pt.c (tsubst_expr): Handle MUST_NOT_THROW_EXPR.
      
      From-SVN: r182233
      Torvald Riegel committed
    • Add default handling for outermost wrappers in voidify_wrapper_expr. · 5f23640f
      	gcc/
      	* gimplify.c (voidify_wrapper_expr): Add default handling for
      	outermost wrapper.
      
      From-SVN: r182232
      Torvald Riegel committed
    • Prevent sharing of commit calls among transactions. · feca8f5a
      	gcc/
      	* tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
      	commits as equal.
      
      	gcc/testsuite/
      	* c-c++-common/tm/20111206.c: New test.
      
      From-SVN: r182231
      Torvald Riegel committed
    • [multiple changes] · 033eaf85
      2011-12-12  Robert Dewar  <dewar@adacore.com>
      
      	* exp_atag.adb, exp_atag.ads, exp_util.adb, exp_attr.adb,
      	sem_ch13.adb: Minor reformatting.
      
      2011-12-12  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch7.adb (Uninstall_Declarations): Don't
      	apply check for incomplete types used as a result type for an
      	access-to-function type when compiling for Ada 2012 or later.
      	* sem_ch6.adb (Analyze_Subprogram_Declaration):
      	Specialize error message for interface subprograms that are
      	not declared abstract nor null (functions can't be declared as
      	null). Also, remove "(Ada 2005)" from message.
      
      From-SVN: r182230
      Arnaud Charlet committed
    • [multiple changes] · 6bed26b5
      2011-12-12  Robert Dewar  <dewar@adacore.com>
      
      	* sem_prag.adb (GNAT_Pragma): Check comes from source.
      
      2011-12-12  Robert Dewar  <dewar@adacore.com>
      
      	* gnatls.adb: Minor reformatting.
      
      2011-12-12  Javier Miranda  <miranda@adacore.com>
      
      	* a-tags.ads (Alignment): New TSD field.
      	(Max_Predef_Prims): Value lowered to 15 (or 9 in case of
      	configurable runtime) Update documentation of predefined
      	primitives since Alignment has been removed.
      	* exp_disp.ads Update documentation of slots of dispatching
      	primitives.
      	* exp_disp.adb (Default_Prim_Op_Position): Update slot
      	values since alignment is no longer a predefined primitive.
      	(Is_Predefined_Dispatch_Operation): Remove _alignment.
      	(Is_Predefined_Internal_Operation): Remove _alignment.
      	(Make_DT): Update static test on the value stored in a-tags.ads
      	for Max_Predef_Prims; store the value of 'alignment in the TSD.
      	* exp_atag.ads, exp_atag.adb (Build_Get_Alignment): New subprogram
      	that retrieves the alignment from the TSD
      	* exp_util.adb (Build_Allocated_Deallocate_Proc): For deallocation
      	of class-wide types obtain the value of alignment from the TSD.
      	* exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment
      	applied to a class-wide type invoke Build_Get_Alignment to
      	generate code which retrieves the value of the alignment from
      	the TSD.
      	* rtsfind.ads (RE_Alignment): New Ada.Tags entity
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): For tagged
      	types if the value of the alignment is bigger than the Maximum
      	alignment then set the value of the alignment to the Maximum
      	alignment and report a warning.
      	* exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate
      	spec of _alignment.
      	(Predefined_Primitive_Bodies): Do not generate body of _alignment.
      
      From-SVN: r182229
      Arnaud Charlet committed
    • [multiple changes] · fe58fea7
      2011-12-12  Gary Dismukes  <dismukes@adacore.com>
      
      	* freeze.adb (Freeze_Expression): Allow freezing of static
      	scalar subtypes that are prefixes of an attribute, even if not
      	yet marked static. Such attributes will get marked as static
      	later in Eval_Attribute (as called from Resolve_Attribute).
      	* sem_attr.adb (Eval_Attribute): Remove wrong code that does an
      	early return for attribute prefixes that are unfrozen source-level
      	types. This code was incorrectly bypassing folding of unfrozen
      	static subtype attributes in default expressions (the executable
      	example in the now-deleted comment was in fact illegal).
      
      2011-12-12  Robert Dewar  <dewar@adacore.com>
      
      	* a-coinve.adb, sem_res.adb, prj-nmsc.adb, a-cobove.adb, a-convec.adb,
      	gnatls.adb, sem_ch13.adb, prj-env.adb, prj-env.ads: Minor reformatting.
      
      2011-12-12  Tristan Gingold  <gingold@adacore.com>
      
      	* gsocket.h: Adjust previous patch.
      
      From-SVN: r182228
      Arnaud Charlet committed
    • [multiple changes] · ee1a7572
      2011-12-12  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_disp.adb: Minor reformatting.
      
      2011-12-12  Tristan Gingold  <gingold@adacore.com>
      
      	* gnatls.adb (Search_RTS): New procedure.
      	(Scan_Ls_Arg): Move code that search the RTS.
      	(Gnatls): search the RTS later.
      	* prj-env.ads, prj-env.adb (Get_Runtime_Path): New function.
      
      2011-12-12  Ed Falis  <falis@adacore.com>
      
      	* sysdep.c: Fix treatment of VxWorks task options so that run-times
      	built with __SPE__ get option VX_SPE_TASK while others get VX_FP_TASK.
      
      2011-12-12  Bob Duff  <duff@adacore.com>
      
      	* sem_type.adb, sem_type.ads, sem_ch4.adb, treepr.adb, treepr.ads:
      	Minor cleanup and fiddling with debug printouts.
      
      2011-12-12  Vincent Celier  <celier@adacore.com>
      
      	* prj-nmsc.adb (Get_Directories): For a non extending project,
      	always get a declared object and/or exec directory if it already
      	exists, even when there are no sources, but do not create them.
      
      2011-12-12  Bob Duff  <duff@adacore.com>
      
      	* sem_res.adb (Resolve): Deal with the case where an abstract
      	operator is called with operands of type universal_integer.
      
      2011-12-12  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb: Minor fix to dominance marker referencing WHILE
      	decision.
      
      From-SVN: r182227
      Arnaud Charlet committed
    • [multiple changes] · e8bd500e
      2011-12-12  Tristan Gingold  <gingold@adacore.com>
      
      	* mlib-tgt-specific-xi.adb: (Get_Target_Prefix): Simplify code.
      
      2011-12-12  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb: Adjust dominant marker for branches of CASE
      	statements.
      
      2011-12-12  Thomas Quinot  <quinot@adacore.com>
      
      	* gsocket.h, s-oscons-tmplt.c: Ensure we do not include any system
      	header file prior to redefining FD_SETSIZE.
      
      2011-12-12  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): In
      	a generic context the aspect expressions may not have been
      	preanalyzed if there was no previous freeze point, so the
      	expressions must be preanalyzed now, and there is no conformance
      	to check for visibility changes.
      
      2011-12-12  Matthew Heaney  <heaney@adacore.com>
      
      	* a-convec.adb, a-coinve.adb, a-cobove.adb (Iterator): Use
      	subtype Index_Type'Base for Index component (Finalize): Remove
      	unnecessary access check (First, Last): Cursor return value
      	depends on iterator index value (Iterate): Use start position as
      	iterator index value (Next, Previous): Forward to corresponding
      	cursor-based operation.
      	* a-cborma.adb (Iterate): Properly initialize iterator object (with 0
      	as node index).
      
      From-SVN: r182226
      Arnaud Charlet committed
    • re PR libgcj/50053 (jc1 doesn't emit static initializer or initializer code for… · 7520518f
      re PR libgcj/50053 (jc1 doesn't emit static initializer or initializer code for super class without -findirect-dispatch.)
      
              PR libgcj/50053
              * java/lang/natClass.cc (java::lang::Class::newInstance): Special case
              member-call for 32-bit IA native Window target.
      
      From-SVN: r182225
      Kai Tietz committed
    • [multiple changes] · 9c25bb25
      2011-12-12  Robert Dewar  <dewar@adacore.com>
      
      	* par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting.
      
      2011-12-12  Steve Baird  <baird@adacore.com>
      
      	* sem_ch3.adb (Check_Completion): Improve a comment.
      
      2011-12-12  Tristan Gingold  <gingold@adacore.com>
      
      	* cstand.adb: Minor comment fix.
      
      From-SVN: r182224
      Arnaud Charlet committed
    • re PR debug/51262 (ICE: SIGSEGV in primary_template_instantiation_p (pt.c:2874) with -flto -g) · 7e529795
      2011-12-12  Richard Guenther  <rguenther@suse.de>
      
      	PR lto/51262
      	* tree.c (cp_free_lang_data): No longer clear anonymous names.
      
      	* g++.dg/opt/pr51262.C: New testcase.
      
      From-SVN: r182221
      Richard Guenther committed
    • darwin-sections.def (zobj_const_data_section): Fix over- length section name. · 0a5a95f2
      
      gcc:
      
      	* config/darwin-sections.def (zobj_const_data_section): Fix over-
      	length section name.
      
      From-SVN: r182220
      Iain Sandoe committed
    • Fix PR testsuite/47013 · 593ba581
      From-SVN: r182219
      Revital Eres committed
    • rs6000.c (rs6000_expand_interleave): Use BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN. · d7366f83
              * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
              BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
      
      From-SVN: r182218
      Richard Henderson committed
    • Daily bump. · d2caef89
      From-SVN: r182217
      GCC Administrator committed
  2. 11 Dec, 2011 6 commits
    • re PR tree-optimization/51485 (ICE in vectorizable_assignment) · 9c239085
      	PR tree-optimization/51485
      	* tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
      	DRs in call stmts.
      
      	* g++.dg/vect/pr51485.cc: New test.
      
      From-SVN: r182212
      Jakub Jelinek committed
    • re PR fortran/50923 (No warning if function return value is not set) · fba5ace0
      2011-12-11  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/50923
              * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only
              if the front end has printed a warning.
              (gfc_generate_function_code): Fix unset-result warning.
      
      2011-12-11  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/50923
              * gfortran.dg/warn_function_without_result_2.f90: New.
      
      From-SVN: r182211
      Tobias Burnus committed
    • re PR fortran/41539 ([OOP] Calling function which takes CLASS: Rank comparison does not work) · c49ea23d
      2011-12-11  Paul Thomas  <pault@gcc.gnu.org>
      	Tobias Burnus  <burnus@gcc.gnu.org>
      
      	PR fortran/41539
      	PR fortran/43214
      	PR fortran/43969
      	PR fortran/44568
      	PR fortran/46356
      	PR fortran/46990
      	PR fortran/49074
      	* interface.c(symbol_rank): Return the rank of the _data
      	component of class objects.
      	(compare_parameter): Also compare the derived type of the class
      	_data component for type mismatch.  Similarly, return 1 if the
      	formal and _data ranks match.
      	(compare_actual_formal): Do not compare storage sizes for class
      	expressions. It is an error if an actual class array, passed to
      	a formal class array is not full.
      	* trans-expr.c (gfc_class_data_get, gfc_class_vptr_get,
      	gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get,
      	gfc_vtable_extends_get, gfc_vtable_def_init_get,
      	gfc_vtable_copy_get): New functions for class API.
      	(gfc_conv_derived_to_class): For an array reference in an
      	elemental procedure call retain the ss to provide the
      	scalarized array reference. Moved in file.
      	(gfc_conv_class_to_class): New function.
              (gfc_conv_subref_array_arg): Use the type of the
      	class _data component as a basetype.
      	(gfc_conv_procedure_call): Ensure that class array expressions
      	have both the _data reference and an array reference. Use 
      	gfc_conv_class_to_class to handle class arrays for elemental
      	functions in scalarized loops, class array elements and full
      	class arrays. Use a call to gfc_conv_subref_array_arg in order
      	that the copy-in/copy-out for passing class arrays to derived
      	type arrays occurs correctly.
      	(gfc_conv_expr): If it is missing, add the _data component
      	between a class object or component and an array reference.
      	(gfc_trans_class_array_init_assign): New function.
      	(gfc_trans_class_init_assign): Call it for array expressions.
      	* trans-array.c (gfc_add_loop_ss_code): Do not use a temp for
      	class scalars since their size will depend on the dynamic type.
      	(build_class_array_ref): New function.
      	(gfc_conv_scalarized_array_ref): Call build_class_array_ref.
      	(gfc_array_init_size): Add extra argument, expr3, that represents
      	the SOURCE argument. If present,use this for the element size.
      	(gfc_array_allocate): Also add argument expr3 and use it when
      	calling gfc_array_init_size.
      	(structure_alloc_comps): Enable class arrays.
      	* class.c (gfc_add_component_ref): Carry over the derived type
      	of the _data component.
      	(gfc_add_class_array_ref): New function.
      	(class_array_ref_detected): New static function.
      	(gfc_is_class_array_ref): New function that calls previous.
      	(gfc_is_class_scalar_expr): New function.
      	(gfc_build_class_symbol): Throw not implemented error for
      	assumed size class arrays.  Remove error that prevents
      	CLASS arrays.
      	(gfc_build_class_symbol): Prevent pointer/allocatable conflict.
      	Also unset codimension.
      	(gfc_find_derived_vtab): Make 'copy' elemental and set the
      	intent of the arguments accordingly.: 
      	* trans-array.h : Update prototype for gfc_array_allocate.
      	* array.c (gfc_array_dimen_size): Return failure if class expr.
      	(gfc_array_size): Likewise.
      	* gfortran.h : New prototypes for gfc_add_class_array_ref,
      	gfc_is_class_array_ref and gfc_is_class_scalar_expr.
      	* trans-stmt.c (trans_associate_var): Exclude class targets
      	from test. Move the allocation of the _vptr to an earlier time
      	for class objects.
      	(trans_associate_var): Assign the descriptor directly for class
      	arrays.
      	(gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments.
      	Convert array element references into sections. Do not invoke
      	gfc_conv_procedure_call, use gfc_trans_call instead.
      	* expr.c (gfc_get_corank): Fix for BT_CLASS.
      	(gfc_is_simply_contiguous): Exclude class from test.
      	* trans.c (gfc_build_array_ref): Include class array refs.
      	* trans.h : Include prototypes for class API functions that are
      	new in trans-expr. Define GFC_DECL_CLASS(node).
      	* resolve.c (check_typebound_baseobject ): Remove error for
      	non-scalar base object.
      	(resolve_allocate_expr): Ensure that class _data component is
      	present. If array, call gfc_expr_to_intialize.
      	(resolve_select): Remove scalar error for SELECT statement as a
      	temporary measure.
      	(resolve_assoc_var): Update 'target' (aka 'selector') as
      	needed. Ensure that the target expression has the right rank.
      	(resolve_select_type): Ensure that target expressions have a
      	valid locus.
      	(resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS.
      	* trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where
      	appropriate.
      	(gfc_trans_deferred_vars): Get class arrays right.
      	* match.c(select_type_set_tmp): Add array spec to temporary.
      	(gfc_match_select_type): Allow class arrays.
      	* check.c (array_check): Ensure that class arrays have refs.
      	(dim_corank_check, dim_rank_check): Retrun success if class.
      	* primary.c (gfc_match_varspec): Fix for class arrays and
      	co-arrays. Make sure that class _data is present.
      	(gfc_match_rvalue): Handle class arrays.
      	*trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array
      	reference.
      	(gfc_conv_allocated): Add _data component to class expressions.
      	(gfc_add_intrinsic_ss_code): ditto.
      	* simplify.c (simplify_cobound): Fix for BT_CLASS.
      	(simplify_bound): Return NULL for class arrays.
      	(simplify_cobound): Obtain correct array_spec. Use cotype as
      	appropriate. Use arrayspec for bounds.
      
      2011-12-11  Paul Thomas  <pault@gcc.gnu.org>
      	Tobias Burnus  <burnus@gcc.gnu.org>
      
      	PR fortran/41539
      	PR fortran/43214
      	PR fortran/43969
      	PR fortran/44568
      	PR fortran/46356
      	PR fortran/46990
      	PR fortran/49074
      	* gfortran.dg/class_array_1.f03: New.
      	* gfortran.dg/class_array_2.f03: New.
      	* gfortran.dg/class_array_3.f03: New.
      	* gfortran.dg/class_array_4.f03: New.
      	* gfortran.dg/class_array_5.f03: New.
      	* gfortran.dg/class_array_6.f03: New.
      	* gfortran.dg/class_array_7.f03: New.
      	* gfortran.dg/class_array_8.f03: New.
      	* gfortran.dg/coarray_poly_1.f90: New.
      	* gfortran.dg/coarray_poly_2.f90: New.
      	* gfortran.dg/coarray/poly_run_1.f90: New.
      	* gfortran.dg/coarray/poly_run_2.f90: New.
      	* gfortran.dg/class_to_type_1.f03: New.
      	* gfortran.dg/type_to_class_1.f03: New.
      	* gfortran.dg/typebound_assignment_3.f03: Remove the error.
      	* gfortran.dg/auto_dealloc_2.f90: Occurences of __builtin_free
      	now 2.
      	* gfortran.dg/class_19.f03: Occurences of __builtin_free now 8.
      
      
      Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>
      
      From-SVN: r182210
      Paul Thomas committed
    • re PR fortran/50690 (ICE with front end optimization and OMP workshare) · e07e39f6
      2011-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/50690
      	* frontend-passes.c (in_omp_workshare):  New variable.
      	(cfe_expr_0):  Don't eliminiate common function if it would put
      	the variable immediately into a WORKSHARE construct.
      	(optimize_namespace):  Set in_omp_workshare.
      	(gfc_code_walker):  Keep track of OMP PARALLEL and OMP WORKSHARE
      	constructs.
      
      2011-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/50690
      	* gfortran.dg/gomp/workshare2.f90:  New test.
      	* gfortran.dg/gomp/workshare3.f90:  New test.
      
      From-SVN: r182208
      Thomas Koenig committed
    • abi.xml: Replace gcc-x.y.z with GCC x.y.z or x.y... · be0c93c5
      	* doc/xml/manual/abi.xml: Replace gcc-x.y.z with GCC x.y.z or x.y,
      	remove excessive duplication of version information.
      	* doc/html/*: Regenerate.
      
      From-SVN: r182206
      Jonathan Wakely committed
    • trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge. · 716286f4
              * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove
              edge.
      
      From-SVN: r182205
      Patrick Marlier committed