Commit Graph

102035 Commits

Author SHA1 Message Date
Eric Botcazou
c04fc4f0c7 rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask computations.
* rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
	computations.  Fix formatting issues.
	(num_sign_bit_copies1): Likewise.
	(canonicalize_condition): Likewise.

From-SVN: r162923
2010-08-05 22:18:33 +00:00
Richard Henderson
bd95721f86 Replace exact_log2(x & -x) in favor of more direct computation.
* toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
	(floor_log2): Use clz_hwi.
	(exact_log2): Use ctz_hwi.
	* toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
	* builtins.c (fold_builtin_bitop): Use them.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	* combine.c (get_pos_from_mask): Use ctz_hwi.
	* double-int.c (double_int_ctz): Likewise.
	* explow.c (force_reg): Likewise.
	* tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.

From-SVN: r162920
2010-08-05 12:41:31 -07:00
Richard Henderson
55b324a67c re PR target/45189 (New stack alignment test failures)
PR target/45189
Fix unwind for i386 stack re-alignment.

From-SVN: r162919
2010-08-05 11:04:58 -07:00
Richard Guenther
29e9efdf75 expr.c (store_expr): Use emit_block_move only if both source and target are MEMs.
2010-08-05  Richard Guenther  <rguenther@suse.de>

	* expr.c (store_expr): Use emit_block_move only if both
	source and target are MEMs.  Use store_bit_field if only
	the target is a MEM.

From-SVN: r162918
2010-08-05 16:37:38 +00:00
Richard Henderson
c3576fa73f re PR target/45189 (New stack alignment test failures)
PR 45189
Unbreak ia64 build after last dwarf2out.c change.

From-SVN: r162917
2010-08-05 08:39:54 -07:00
Nicolas Setton
acdb4da79d gcov.c (flag_display_progress): New static variable.
* gcov.c (flag_display_progress): New static variable.
	(main): Display progress info on standard output if requested.
	(options): Add -d/--display-progress.
	(print_usage): Print them.
	(process_args): Handle them.
	* doc/gcov.texi: Document them.

From-SVN: r162916
2010-08-05 15:21:13 +00:00
Andi Kleen
d2c57fe97e lto-plugin.c: Include <hashtab.h>
* lto-plugin.c: Include <hashtab.h>
        (sym_aux): Add next_conflict field to save conflict chains.
        (plugin_file_info): Add conflicts symtab.
        (parse_table_entry): Initialize aux->next_conflict.
        (process_symtab): Increment found.
        (dump_symtab): Add.
        (finish_conflict_resolution): Add.
        (free_symtab): Add.
        (write_resolution): Remove symbols loop and move into
        dump_symtab. Call dump_symtab for main symbol and conflicts table.
        Call free_symtab to free conflicts table.
        (SWAP): Add.
        (eq_sym): Add.
        (hash_sym): Add.
        (symbol_strength): Add.
        (resolve_conflicts): Add.
        (claim_file_handler): Add n variable. Check return value of
        process_symtab. Call resolve_conflicts.

From-SVN: r162915
2010-08-05 14:25:45 +00:00
Martin Jambor
2645f11a7c re PR testsuite/42855 (FAIL: gcc.dg/tree-ssa/pr42585.c scan-tree-dump-times optimized *)
2010-08-05  Martin Jambor  <mjambor@suse.cz>

	PR testsuite/42855
	* testsuite/gcc.dg/tree-ssa/pr42585.c: Skip dump scan on powerpc
	and arm.

From-SVN: r162913
2010-08-05 15:36:18 +02:00
Martin Jambor
3e66255c25 ipa-cp.c (ipcp_discover_new_direct_edges): New function.
2010-08-05  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_discover_new_direct_edges): New function.
	(ipcp_insert_stage): Redirect only edges not flagged with
	indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
	discovered constants.

	* testsuite/gcc.dg/ipa/ipcp-ii-1.c: New test.
	* testsuite/g++.dg/ipa/ipcp-ivi-1.C: Likewise.

From-SVN: r162912
2010-08-05 15:30:14 +02:00
Martin Jambor
3949c4a710 ipa-prop.h (enum ipa_lattice_type): Changed comments.
2010-08-05  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (enum ipa_lattice_type): Changed comments.
	(struct ipa_param_descriptor): New fields types and
	cannot_devirtualize.
	(ipa_param_cannot_devirtualize_p): New function.
	(ipa_param_types_vec_empty): Likewise.
	(ipa_make_edge_direct_to_target): Declare.
	* ipa-cp.c: Fixed first stage driver name in initial comment,
	described devirtualization there too.
	(ipcp_analyze_node): Call ipa_analyze_params_uses.
	(ipcp_print_all_lattices): Print devirtualization info.
	(ipa_set_param_cannot_devirtualize): New function.
	(ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
	lattice to BOTTOM.
	(ipcp_init_stage): Merged into...
	(ipcp_generate_summary): ...its caller.
	(ipcp_change_tops_to_bottom): Also process type lists.
	(ipcp_add_param_type): New function.
	(ipcp_copy_types): Likewise.
	(ipcp_propagate_types): Likewise.
	(ipcp_propagate_stage): Also propagate types.
	(ipcp_need_redirect_p): Variable jump_func moved to its scope block.
	Also return true if propagated types require it.
	(ipcp_update_callgraph): Dump redirection info.
	(ipcp_process_devirtualization_opportunities): New function.
	(ipcp_const_param_count): Include known type information.
	(ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
	on new node.  Fixed formatting.
	* ipa-prop.c (make_edge_direct_to_target): Renamed to
	ipa_make_edge_direct_to_target and changed all callers.  Made
	externally visible.
	(ipa_node_duplication_hook): Duplicate types vector.
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
	redirect outgoing calls for which we can't get a decl from the
	statement.  Check that we can get a decl from the call statement.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
	ipa_analyze_params_uses only when ipa-cp is disabled.
	* tree-inline.c (get_indirect_callee_fndecl): Removed.
	(expand_call_inline): Do not call get_indirect_callee_fndecl.
	* params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
	* Makefile.in (ipa-cp.o): Add gimple.h to dependencies.

	* testsuite/g++.dg/ipa/devirt-1.C: New test.
	* testsuite/g++.dg/ipa/devirt-2.C: Likewise.
	* testsuite/g++.dg/ipa/devirt-3.C: Likewise.
	* testsuite/g++.dg/ipa/devirt-4.C: Likewise.
	* testsuite/g++.dg/ipa/devirt-5.C: Likewise.
	* testsuite/gcc.dg/ipa/iinline-3.c: Likewise.

From-SVN: r162911
2010-08-05 15:23:07 +02:00
Uros Bizjak
4caa21a13b expmed.c (expand_mult_const): Expand shift into temporary.
* expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
	temporary. Emit move from temporary to accum, so REG_EQUAL note will
	be attached to this insn in correct mode.

From-SVN: r162910
2010-08-05 14:03:36 +02:00
Arnaud Charlet
e2534738ee [multiple changes]
2010-08-05  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb: Minor reformatting.

2010-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb (Do_Unit_And_Dependents): If some parent unit is an
	instantiation, process its body before the spec of the main unit,
	because it may contain subprograms invoked in the spec of main.
	* einfo.ads: Add documention of delayed freeze.

2010-08-05  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Process_Linker): Take into account new values for
	attribute Response_File_Format.
	* prj.ads (Response_File_Format): New enumeration values GCC_GNU,
	GCC_Object_List and GCC_Option_List.

2010-08-05  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Selected_Component): Do not constant-fold a
	selected component that denotes a discriminant if it is the
	discriminant of a component of an unconstrained record type.

From-SVN: r162908
2010-08-05 11:26:47 +02:00
Arnaud Charlet
aa9a7dd7c2 [multiple changes]
2010-08-05  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Insert_Actions): If the action appears within a
	conditional expression that is already analyzed, insert action further
	out.

2010-08-05  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor reformatting.

From-SVN: r162907
2010-08-05 11:21:58 +02:00
Arnaud Charlet
0d90129062 [multiple changes]
2010-08-05  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb: Minor reformatting
	* gnat1drv.adb: Minor reformatting.
	Minor code reorganization (use Nkind_In).

2010-08-05  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.ads, exp_util.adb (Needs_Constant_Address): New predicate to
	determine whether the expression in an address clause for an
	initialized object must be constant. Code moved from freeze.adb.
	(Remove_Side_Effects): When the temporary is initialized with a
	reference, indicate that the temporary is a constant as done in all
	other cases.
	* freeze.adb (Check_Address_Clause): use Needs_Constant_Address.
	* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
	If object does not need a constant address, remove side effects from
	address expression, so it is elaborated at the point of the address
	clause and not at the freeze point of the object, so that elaboration
	order is respected.

2010-08-05  Vincent Celier  <celier@adacore.com>

	* prj.adb (Is_Compilable): Return False for header files of non Ada
	languages.

2010-08-05  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb: The Missing_Source_Files flag also considers a missing
	exec directory as a warning rather than an error.

From-SVN: r162906
2010-08-05 11:18:41 +02:00
Arnaud Charlet
676e842077 [multiple changes]
2010-08-05  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.adb, gnat1drv.adb, exp_ch6.adb, sem_eval.adb: Minor
	reformatting.

2010-08-05  Steve Baird  <baird@adacore.com>

	* exp_util.adb (Remove_Side_Effects): An access value which designates
	a volatile object of a nonvolatile type is prohibited.
	Do not call Make_Reference to construct a reference to such an object.

From-SVN: r162905
2010-08-05 11:14:19 +02:00
Arnaud Charlet
c97c0163bc [multiple changes]
2010-08-05  Robert Dewar  <dewar@adacore.com>

	* a-suezse.adb, a-suezse.ads, a-suezen.adb, a-suezen.ads: Removed.
	* a-suewse.adb, a-suewse.ads, a-suesen.adb, a-suesen.ads,
	a-suewen.adb, a-suewen.ads: New files.
	* Makefile.rtl, impunit.adb: Update implementation of Ada 2012 string
	encoding packages.
	* sem_elab.adb: Minor reformatting.

2010-08-05  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Use_One_Type): Protect against empty scopes.
	* exp_util.adb (Component_May_Be_Bit_Aligned): Prevent assert failure
	in case of null Comp.

From-SVN: r162904
2010-08-05 11:08:50 +02:00
Robert Dewar
b94e425dc2 errout.adb, [...]: Minor reformatting.
2010-08-05  Robert Dewar  <dewar@adacore.com>

	* errout.adb, a-suewen.adb, a-suezen.adb: Minor reformatting.

From-SVN: r162903
2010-08-05 10:59:22 +02:00
Gary Dismukes
70b3b95343 sem_ch4.adb (Analyze_Allocator): Flag errors on allocators of a nested access type whose designated type has...
2010-08-05  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb (Analyze_Allocator): Flag errors on allocators of a
	nested access type whose designated type has tasks or is a protected
	object when the restrictions No_Task_Hierarchy or
	No_Local_Protected_Objects apply. Add ??? comment.
	* sem_ch9.adb (Analyze_Protected_Type): Give a warning when a protected
	type is not a library-level type and No_Local_Protected_Objects applies.
	(Analyze_Task_Type): Give a warning when a task type is not a
	library-level type and No_Task_Hierarchy applies.

From-SVN: r162902
2010-08-05 10:55:34 +02:00
Arnaud Charlet
d2f25cd144 sem.adb: Minor reformatting
* sem.adb: Minor reformatting
	* sem_ch4.adb (Analyze_Reference): Disable error message in CodePeer
	mode, not useful.

From-SVN: r162901
2010-08-05 10:52:20 +02:00
Paolo Carlini
9316258dcb utility (begin, end): Remove per GB 85.
2010-08-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/tr1_impl/utility (begin, end): Remove per GB 85.
	* testsuite/20_util/pair/range_access.cc: Remove.

	* include/std/functional (function<>::function()): Remove explicit,
	per JP 3.

From-SVN: r162900
2010-08-05 08:45:26 +00:00
Uros Bizjak
a5b2e0efa4 i386.c (ix86_decompose_address): Check for SI_REG using REGNO of base_reg directly.
* config/i386/i386.c (ix86_decompose_address): Check for SI_REG
	using REGNO of base_reg directly.

From-SVN: r162899
2010-08-05 10:24:58 +02:00
Paolo Carlini
5f1fd3469f move.h (forward): Update to N3092.
2010-08-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/move.h (forward): Update to N3092.
	(identity): Remove (US 92 is NAD).
	* include/debug/set.h: Fix move constructor to simply use move.
	* include/debug/unordered_map: Likewise.
	* include/debug/multiset.h: Likewise.
	* include/debug/vector: Likewise.
	* include/debug/unordered_set: Likewise.
	* include/debug/deque: Likewise.
	* include/debug/map.h: Likewise.
	* include/debug/string: Likewise.
	* include/debug/list: Likewise.
	* include/debug/multimap.h: Likewise.
	* include/profile/set.h: Likewise.
	* include/profile/unordered_map: Likewise.
	* include/profile/multiset.h: Likewise.
	* include/profile/unordered_set: Likewise.
	* include/profile/vector: Likewise.
	* include/profile/deque: Likewise.
	* include/profile/map.h: Likewise.
	* include/profile/list: Likewise.
	* include/profile/multimap.h: Likewise.
	* include/ext/vstring.h: Likewise.
	* include/bits/stl_list.h: Likewise.
	* include/bits/stl_map.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/forward_list.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/unordered_set.h: Likewise.
	* include/bits/stl_bvector.h: Likewise.
	* testsuite/20_util/identity/value.cc: Remove
	* testsuite/20_util/identity/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/identity/requirements/explicit_instantiation.cc:
	Likewise.

From-SVN: r162898
2010-08-05 07:34:08 +00:00
Jie Zhang
36b86f4a54 re PR tree-optimization/45144 (SRA optimization issue of bit-field)
PR tree-optimization/45144
	* tree-sra.c (type_consists_of_records_p): Return false
	if the record contains bit-field.

	testsuite/
	PR tree-optimization/45144
	* gcc.dg/tree-ssa/pr45144.c: New test.

From-SVN: r162897
2010-08-05 03:05:35 +00:00
GCC Administrator
370f330ff5 Daily bump.
From-SVN: r162896
2010-08-05 00:18:51 +00:00
Richard Henderson
106c3c10bf Force the use of stack_pointer_offset in computing the frame size.
By exporting padding[012] and to_allocate from ix86_compute_frame_layout,
we encouraged re-computation of the size of the local frame.  All of the
truly relevant offsets are now exported directly, and should be compared
against directly.

From-SVN: r162891
2010-08-04 16:58:39 -07:00
Richard Henderson
87ec2632b8 Remove code duplication in ix86_expand_epilogue.
Union the undo of the frame pointer between the pop and move
code paths.

Combine the local frame stack deallocation with the one for
ix86_static_chain_on_stack, if possible.

From-SVN: r162890
2010-08-04 16:58:33 -07:00
Richard Henderson
c9f4c45115 Describe unwinding for realigned frames explicitly.
We had been relying on some extremely fragile code within
dwarf2out in order to guess what to do with aligned stack
frames, which broke when we decided to perform the stores
to the aligned stack frame via EBP instead of ESP.

Instead, emit the appropriate unwinding instructions from
the backend.  This requires adding a new reg-note in order
to describe a register save at an arbitrary address.

From-SVN: r162889
2010-08-04 16:58:26 -07:00
Richard Henderson
ec7ded37e7 Emit the prologue/epilogue using frame offsets.
Record register save offsets in ix86_frame.

Move SP/FP offsets into the global state; update them everywhere
we currently handle CFA offsets.

Use that global state to choose base registers and offsets for
the register saves and restores.

There is a bug fix contained herein, whereby r11 could be clobbered
along an indirect sibcall path when the stack frame is very large (>2GB).
The emit_restore_{sse_,}regs_using_mov functions didn't handle this
case, but pro_epilogue_adjust_stack does.

From-SVN: r162888
2010-08-04 16:58:20 -07:00
Richard Henderson
17959958bc Remove duplicate definition of TARGET_64BIT_MS_ABI.
The definition in cygming.h differed from the definition in i386.h in
that the predicate was true for 32-bit when outside of any function.
Which (a) seems wrong and (b) never matters because the predicate is
only tested in terms of REGPARM and RED_ZONE, both of which are tied
to functions.

From-SVN: r162887
2010-08-04 16:58:14 -07:00
Richard Henderson
e8dc4658fa Cleanup 32-bit ms_hook code.
Emit the entire required hook code sequence via ASM_BYTE; emit
unwind info onto a blockage insn.

Remove the vswapmov pattern.

Fix indentation in several places.

From-SVN: r162886
2010-08-04 16:58:08 -07:00
Richard Henderson
2550204162 Consolidate red-zone logic into ix86_using_red_zone.
From-SVN: r162885
2010-08-04 16:58:02 -07:00
Richard Henderson
cdcb5f261e Simplify logic saving the int registers in the prologue.
From-SVN: r162884
2010-08-04 16:57:56 -07:00
Richard Henderson
9bf40564e1 Eliminate most of the conditional compilation from dwarf2out.c.
Trying to reduce the amount of code compiled when dwarf2 debug
info and/or dwarf2 unwind info are disabled results in a twisted
mess.  Don't bother -- just build it all even if it's not going
to be used.

From-SVN: r162883
2010-08-04 16:57:50 -07:00
Richard Henderson
e78f1a3f67 re PR debug/45171 (Invalid DWARF...DIE 0x00006a1d has multiple AT_byte_size attributes.)
PR debug/45171
* dwarf2out.c (gen_typedef_die): Don't re-generate the die of
an is_naming_typedef_decl.

From-SVN: r162882
2010-08-04 16:32:08 -07:00
Bernd Schmidt
fde157f2ed re PR rtl-optimization/45162 (ARM bootstrap comparison failures after stage 3)
PR rtl-optimization/45162
	* df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
	* dce.c (word_dce_process_block): Likewise.

From-SVN: r162881
2010-08-04 21:07:05 +00:00
Changpeng Fang
69df3daed3 Add Changpeng Fang to the Write After Approval list
From-SVN: r162880
2010-08-04 20:48:50 +00:00
Janus Weil
e10f52d099 re PR fortran/42207 ([OOP] Compile-time errors on typed allocation and pointer function result assignment)
2010-08-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42207
	PR fortran/44064
	PR fortran/44065
	* class.c (gfc_find_derived_vtab): Do not generate vtabs for class
	container types. Do not artificially increase refs. Commit symbols one
	by one.
	* interface.c (compare_parameter): Make sure vtabs are present before
	generating module variables.
	* resolve.c (resolve_allocate_expr): Ditto.


2010-08-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42207
	PR fortran/44064
	PR fortran/44065
	* gfortran.dg/class_25.f03: New.
	* gfortran.dg/class_26.f03: New.

From-SVN: r162879
2010-08-04 21:49:19 +02:00
Daniel Gutson
0e884a9464 * g++.dg/warn/miss-format-1.C: Update line number.
From-SVN: r162872
2010-08-04 19:01:24 +00:00
Tobias Burnus
c130efd5b9 re PR fortran/45183 (FAIL: gfortran.dg/derived_constructor_char_1.f90)
2010-08-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45183
        PR fortran/44857
        * resolve.c (resolve_structure_cons): Fix
        freeing of charlen.

From-SVN: r162871
2010-08-04 20:49:23 +02:00
Steve Ellcey
339746734a re PR target/44583 (c-c++-common/torture/complex-sign-add.c fails for signed zeros)
2010-07-29  Steve Ellcey  <sje@cup.hp.com>

	PR target/44583
	* config/ia64/constraints.md (Z): New.
	* config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
	(xfreg_or_signed_fp01_operand): New.
	* config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
	with fr_reg_or_signed_fp01_operand and constraint G with Z.
	(subsf3): Ditto.
	(*maddsf4): Ditto.
	(*msubsf4): Ditto.
	(adddf3): Ditto.
	(adddf3_trunc): Ditto.
	(subdf3): Ditto.
	(*subdf3_trunc): Ditto.
	(*madddf4): Ditto.
	(*madddf4_trunc): Ditto.
	(*msubdf4): Ditto.
	(*msubdf4_trunc): Ditto.
	(addxf3): Replace xfreg_or_fp01_operand with
	xfreg_or_signed_fp01_operand and constraint G with Z.
	(*addxf3_truncsf): Ditto.
	(*addxf3_truncdf): Ditto.
	(subxf3): Ditto.
	(*subxf3_truncsf): Ditto.
	(*subxf3_truncdf): Ditto.
	(*maddxf4): Ditto.
	(*maddxf4_truncsf): Ditto.
	(*maddxf4_truncdf): Ditto.
	(*msubxf4): Ditto.
	(*msubxf4_truncsf): Ditto.
	(*msubxf4_truncdf): Ditto.

From-SVN: r162869
2010-08-04 18:32:37 +00:00
Arnaud Charlet
3b0c690efc c-ada-spec.c (dump_ada_template): Mark underlying instance type as visited.
* c-ada-spec.c (dump_ada_template): Mark underlying instance type as
	visited.
	(dump_generic_ada_node): Code clean up. Use TREE_VISITED flag to
	decide whether a type has already been declared/seen.
	Do not go to the original type.
	(dump_nested_types): New parameter forward.
	Generate forward declaration if needed and mark type as visited.
	(print_ada_declaration): Call dump_nested_types if not already done.
	Mark types as visited.

From-SVN: r162868
2010-08-04 17:50:10 +02:00
Richard Guenther
55e3bc4cec alias.c (rtx_refs_may_alias_p): Do not resort to TBAA if either alias-set is zero.
2010-08-04  Richard Guenther  <rguenther@suse.de>

	* alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
	if either alias-set is zero.

From-SVN: r162867
2010-08-04 15:35:21 +00:00
Uros Bizjak
079e56d05c re PR c++/44641 (Generated constructors and destructors get wrong debug location when a typedef uses a forward declaration of the type before the definition)
PR c++/44641
	* lib/scanasm.exp (dg-function-on-line): Expand regex to also ignore
	.frame and .mask assembler directives.

From-SVN: r162866
2010-08-04 16:19:01 +02:00
Mikael Morin
4bc20f3a3f re PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)
2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/42051
	PR fortran/44064
	* symbol.c (changed_syms): Made static again.
	(gfc_symbol_state): Don't conditionalize on GFC_DEBUG. 
	Changed conditional internal error into assert.
	Rename function to ...
	(gfc_enforce_clean_symbol_state): ... this.
	* gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state): 
	Rename the former to the latter.
	* parse.c (decode_statement, decode_omp_directive,
	decode_gcc_attribute): Update callers accordingly. Don't conditionalize
	on GFC_DEBUG.
	(changed_syms): Remove declaration.
	(next_statement): Use gfc_enforce_clean_symbol_state.

From-SVN: r162865
2010-08-04 14:17:31 +00:00
Richard Guenther
455e6d5ba7 tree-ssa-propagate.h (struct prop_value_d, [...]): Move ...
2010-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
	* tree-ssa-ccp.c: ... here.
	* tree-ssa-copy.c: ... and here.
	* tree-ssa-propagate.h (enum value_range_type, struct value_range_d, 
	value_range_t): Move ...
	* tree-vrp.c: ... here.
	* tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
	(substitute_and_fold): Adjust prototype.
	* tree-ssa-propagate.c (replace_uses_in): Adjust.
	(replace_phi_args_in): Likewise.
	(substitute_and_fold): Take callback to query lattice instead
	of pointer to lattice.  Replace SSA name defs with lattice
	values first.
	* tree-ssa-ccp.c (ccp_finalize): Adjust.
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
	(get_value): New function.
	(fini_copy_prop): Adjust.
	* tree-vrp.c (vrp_finalize): Adjust.

	* gcc.dg/tree-ssa/vrp35.c: Adjust.
	* gcc.dg/tree-ssa/vrp36.c: Likewise.
	* gcc.dg/tree-ssa/vrp50.c: Likewise.
	* gcc.dg/tree-ssa/vrp52.c: Likewise.

From-SVN: r162864
2010-08-04 12:29:48 +00:00
Tobias Burnus
a48a91732b re PR fortran/44857 (ICE in output_constructor_regular_field, at varasm.c:4996)
2010-08-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44857
        * resolve.c (resolve_structure_cons): Fix handling of
        initialization structcture constructors with character
        elements of the wrong length.
        * array.c (gfc_check_iter_variable): Add NULL check.
        (gfc_resolve_character_array_constructor): Also truncate
        character length.

2010-08-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44857
        * gfortran.dg/derived_constructor_char_1.f90: New.
        * gfortran.dg/derived_constructor_char_2.f90: New.

From-SVN: r162863
2010-08-04 13:51:32 +02:00
Richard Guenther
48176d8100 re PR middle-end/45176 (restrict qualifier is not used in a manually unrolled loop)
2010-08-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45176
	* expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
	points-to set for original MEM_REF.

From-SVN: r162862
2010-08-04 11:08:54 +00:00
Richard Guenther
84d77ca61a tree-ssa-ccp.c (get_constant_value): New function.
2010-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (get_constant_value): New function.
	(get_rhs_assign_op_for_ccp): Remove.
	(valueize_op): New function.
	(ccp_fold): Use get_constant_value and valueize_op.
	(fold_const_aggregate_ref): Likewise.
	(ccp_fold_stmt): Likewise.
	(visit_assignment): Simplify.

From-SVN: r162860
2010-08-04 09:16:58 +00:00
Richard Guenther
552cbe64b6 Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
2010-08-04  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
	* double-int.h (double_int_ctz): Declare.
	* double-int.c (double_int_ctz): New function.

From-SVN: r162859
2010-08-04 09:15:51 +00:00
Hariharan Sandanagobalane
31af83671c picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
* config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
          Define.
          picochip_expand_movmemhi : Expand movmem pattern.
        * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
          Declare.
        * config/picochip/picochip.md (movmemhi) : New pattern.

From-SVN: r162858
2010-08-04 09:02:48 +00:00