Commit Graph

113983 Commits

Author SHA1 Message Date
Revital Eres
20936ceefe SMS: Add missing free operation in mark_loop_unsched
From-SVN: r182271
2011-12-13 05:41:45 +00:00
GCC Administrator
407a5d6ae3 Daily bump.
From-SVN: r182270
2011-12-13 00:18:54 +00:00
Ian Lance Taylor
ab61e9c4da libgo: Update to weekly.2011-11-18.
From-SVN: r182266
2011-12-12 23:40:51 +00:00
Jakub Jelinek
6e456f4cf4 re PR rtl-optimization/51495 (ICE: in force_nonfallthru_and_redirect, at cfgrtl.c:1171 with computed goto)
PR rtl-optimization/51495
	* function.c (thread_prologue_and_epilogue_insns): Don't add
	to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
	from basic blocks not needing prologue.

	* gcc.c-torture/compile/pr51495.c: New test.

From-SVN: r182265
2011-12-12 22:00:36 +01:00
Jakub Jelinek
c88388e674 re PR tree-optimization/51481 (ice: dead STMT in EH table)
PR tree-optimization/51481
	* gimple-fold.c (gimple_fold_call): Call
	maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
	edges, but gimple_fold_builtin result can't throw.

	* gcc.dg/pr51481.c: New test.

From-SVN: r182264
2011-12-12 21:59:28 +01:00
Vladimir Makarov
9c3b03463a re PR rtl-optimization/21617 (CRC64 algorithm optimization problem on Intel 32-bit)
2011-12-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/21617
	* ira-color.c (bucket_allocno_compare_func): Don't compare
	allocno classes.  Compare number of hard registers needed.

From-SVN: r182263
2011-12-12 20:51:16 +00:00
Georg-Johann Lay
35a730f86f re PR tree-optimization/45830 (Code+rodata increase with -ftree-switch-conversion)
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
2011-12-12 20:13:40 +00:00
Janne Blomqvist
1d84354610 gfortran.dg/nested_modules_2.f90: Tighten test.
2011-12-12  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.dg/nested_modules_2.f90: Tighten test.

From-SVN: r182258
2011-12-12 21:36:39 +02:00
Jakub Jelinek
007db66070 re PR c++/51496 (FAIL: libgomp.c++/for-2.C * (test for excess errors))
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
2011-12-12 19:55:06 +01:00
Ian Lance Taylor
fe4bf59fb6 net/http: delete temporary files.
From-SVN: r182256
2011-12-12 18:45:08 +00:00
Eric Botcazou
0b27284847 re PR tree-optimization/50569 (unaligned memory accesses generated for memcpy)
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
2011-12-12 18:22:13 +00:00
Dmitry Vyukov
f7c8a2da77 Fix flags for edges from/to entry/exit basic blocks.
* cgraphunit.c (init_lowered_empty_function):
	Fix flags for new edges.

From-SVN: r182251
2011-12-12 10:03:36 -08:00
Paolo Carlini
60f3dad78d revert: re PR target/51135 (SIGSEGV during exception cleanup on win32)
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
2011-12-12 17:34:19 +00:00
Paolo Carlini
7252b079fc 2011-12-12 Paolo Carlini <paolo.carlini@oracle.com>
* Revert the last commit.

From-SVN: r182249
2011-12-12 17:29:17 +00:00
Jakub Jelinek
30f232fd7a re PR testsuite/51511 (gcc.dg/pr45819.c fails on arm-linux-gnueabi due to PR50078+PR51466 fix)
PR testsuite/51511
	* gcc.dg/pr45819.c: Add -w to dg-options.

From-SVN: r182247
2011-12-12 17:48:46 +01:00
Jakub Jelinek
c79be1dc34 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
2011-12-12 17:44:23 +01:00
Richard Sandiford
431e1124ed re PR tree-optimization/50873 (The fix to PR50730 causes gcc.c-torture/unsorted/dilayout.c to ICE)
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
2011-12-12 15:18:24 +00:00
Arnaud Charlet
c9556982a7 [multiple changes]
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
2011-12-12 15:33:39 +01:00
Robert Dewar
cf7bb903f4 freeze.adb, [...]: Minor reformatting.
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
2011-12-12 14:49:10 +01:00
Arnaud Charlet
e876c43ae1 [multiple changes]
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
2011-12-12 14:43:38 +01:00
Hristian Kirtchev
ad5a445d3e 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
2011-12-12 14:40:18 +01:00
Kai Tietz
83d5afb779 Correct bug-number in ChangeLog.
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
2011-12-12 14:29:10 +01:00
Kai Tietz
f5c48b80ce PR libstdc++/511135
* 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
2011-12-12 14:24:30 +01:00
Arnaud Charlet
b913199ea3 [multiple changes]
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
2011-12-12 13:06:59 +01:00
Torvald Riegel
f0f3286a5a Support noexcept-specifications for transaction statements and expressions.
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
2011-12-12 12:05:37 +00:00
Torvald Riegel
f2162c3daa Add condition to MUST_NOT_THROW_EXPR.
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
2011-12-12 12:05:18 +00:00
Torvald Riegel
5f23640f57 Add default handling for outermost wrappers in voidify_wrapper_expr.
gcc/
	* gimplify.c (voidify_wrapper_expr): Add default handling for
	outermost wrapper.

From-SVN: r182232
2011-12-12 12:05:01 +00:00
Torvald Riegel
feca8f5a96 Prevent sharing of commit calls among transactions.
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
2011-12-12 12:04:46 +00:00
Arnaud Charlet
033eaf8501 [multiple changes]
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
2011-12-12 13:03:35 +01:00
Arnaud Charlet
6bed26b542 [multiple changes]
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
2011-12-12 12:54:30 +01:00
Arnaud Charlet
fe58fea70b [multiple changes]
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
2011-12-12 12:52:04 +01:00
Arnaud Charlet
ee1a757231 [multiple changes]
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
2011-12-12 12:49:31 +01:00
Arnaud Charlet
e8bd500e2d [multiple changes]
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
2011-12-12 12:28:03 +01:00
Kai Tietz
7520518f73 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
2011-12-12 11:40:27 +01:00
Arnaud Charlet
9c25bb25a8 [multiple changes]
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
2011-12-12 11:30:49 +01:00
Richard Guenther
7e529795d0 re PR debug/51262 (ICE: SIGSEGV in primary_template_instantiation_p (pt.c:2874) with -flto -g)
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
2011-12-12 08:37:22 +00:00
Iain Sandoe
0a5a95f204 darwin-sections.def (zobj_const_data_section): Fix over- length section name.
gcc:

	* config/darwin-sections.def (zobj_const_data_section): Fix over-
	length section name.

From-SVN: r182220
2011-12-12 08:24:33 +00:00
Revital Eres
593ba58102 Fix PR testsuite/47013
From-SVN: r182219
2011-12-12 07:32:25 +00:00
Richard Henderson
d7366f83bf rs6000.c (rs6000_expand_interleave): Use BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
* config/rs6000/rs6000.c (rs6000_expand_interleave): Use
        BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.

From-SVN: r182218
2011-12-11 18:57:18 -08:00
GCC Administrator
d2caef8945 Daily bump.
From-SVN: r182217
2011-12-12 00:18:04 +00:00
Jakub Jelinek
9c2390853e re PR tree-optimization/51485 (ICE in vectorizable_assignment)
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
2011-12-11 22:01:00 +01:00
Tobias Burnus
fba5ace06b re PR fortran/50923 (No warning if function return value is not set)
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
2011-12-11 21:44:30 +01:00
Paul Thomas
c49ea23d52 re PR fortran/41539 ([OOP] Calling function which takes CLASS: Rank comparison does not work)
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
2011-12-11 20:42:23 +00:00
Thomas Koenig
e07e39f6e5 re PR fortran/50690 (ICE with front end optimization and OMP workshare)
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
2011-12-11 17:43:22 +00:00
Jonathan Wakely
be0c93c512 abi.xml: Replace gcc-x.y.z with GCC x.y.z or x.y...
* 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
2011-12-11 14:59:26 +00:00
Patrick Marlier
716286f40a trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.
* trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove
        edge.

From-SVN: r182205
2011-12-11 14:02:52 +00:00
Eric Botcazou
8d2c862dfe * config/sparc/sol2-unwind.h: Use #ifdef directive consistently.
From-SVN: r182204
2011-12-11 11:23:15 +00:00
Eric Botcazou
cce30ea89c utils2.c (gnat_build_constructor): Test the TREE_STATIC flag of elements to compute that of the constructor.
* gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATIC
	flag of elements to compute that of the constructor.

From-SVN: r182203
2011-12-11 11:05:58 +00:00
Eric Botcazou
4f96985d58 decl.c (gnat_to_gnu_param): Set the restrict qualifier on references built for parameters which aren't...
* gcc-interface/decl.c (gnat_to_gnu_param): Set the restrict qualifier
	on references built for parameters which aren't specifically by-ref.

From-SVN: r182202
2011-12-11 10:54:52 +00:00
Eric Botcazou
50751f49cc decl.c (gnat_to_gnu_entity): If there is an alignment set on a renaming...
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If there is an
	alignment set on a renaming, assert that the renamed object is aligned
	enough as to make it possible to honor it.

From-SVN: r182201
2011-12-11 10:40:08 +00:00