Commit Graph

117095 Commits

Author SHA1 Message Date
GCC Administrator 1746f5860b Daily bump.
From-SVN: r187865
2012-05-25 00:17:44 +00:00
Ian Lance Taylor bac564c53e runtime: Make runtime.Stack actually work.
From-SVN: r187854
2012-05-24 21:07:18 +00:00
Dodji Seketeli 27c53c0cce PR bootstrap/53459 - unused local typedef when building on altivec
libcpp/

	PR bootstrap/53459
	* lex.c (search_line_fast): Remove unused typedef check_count.

From-SVN: r187853
2012-05-24 23:05:49 +02:00
Ian Lance Taylor 9e65cec2fd runtime: Correct definition of __go_file_line to match declaration.
From Rainer Orth.

From-SVN: r187851
2012-05-24 20:47:09 +00:00
Ian Lance Taylor 41f9e67527 runtime: Copy runtime_printf from other Go library.
From-SVN: r187850
2012-05-24 20:45:37 +00:00
Ian Lance Taylor 86ba147f54 runtime: Copy runtime_printf from other Go library.
From-SVN: r187848
2012-05-24 20:44:34 +00:00
Pat Haugen 6fac31b418 rs6000.c (rs6000_option_override_internal): Change rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Change
	rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
	(adjacent_mem_locations): Move some code to and call...
	(get_memref_parts): ...new function.
	(mem_locations_overlap): New function.
	(rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
	(is_mem_ref): Rename to...
	(find_mem_ref): ...this. Return MEM rtx.
	(get_store_dest): Remove function.
	(is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
	new parameter and adjust calls.
	(rs6000_is_costly_dependence): Update calls for extra arg. Make sure
	mem refs overlap for true_store_to_load_dep_costly.
	(rs6000_sched_reorder2): Update calls for extra arg. Adjust args
	passed to adjacent_mem_locations.
	(is_costly_group): Walk resolved dependency list.
	(force_new_group): Emit group ending nop for Power6/Power7.
	* config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
	(group_ending_nop): New define_insn.

	* gcc.target/powerpc/lhs-1.c: New.
	* gcc.target/powerpc/lhs-2.c: New.
	* gcc.target/powerpc/lhs-3.c: New.

From-SVN: r187847
2012-05-24 20:28:31 +00:00
Janne Blomqvist 44813fe043 PR 53456 CPU timing fallback using clock_gettime.
2012-05-24  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/53456
	* intrinsics/time_1.h (gf_cputime): Fallback for clock_gettime.

From-SVN: r187846
2012-05-24 23:19:37 +03:00
Dodji Seketeli 165ca58dc3 Make unwound macro expansion trace less redundant
As discussed previously, the unwinder for macro expansion is quite
verbose [1].  This patch proposes to address that shortcoming.

Consider this test case:

    $ cat -n test.c
	 1	#define MYMAX(A,B) __extension__ ({ __typeof__(A) __a = (A); \
	 2	 __typeof__(B) __b = (B); __a < __b ? __b : __a; })
	 3
	 4	struct mystruct {};
	 5	void
	 6	foo()
	 7	{
	 8	  struct mystruct p;
	 9	  float f = 0.0;
	10	  MYMAX (p, f);
	11	}
    $

The output of the compiler from trunk yields:

    $ cc1 -quiet ./test.c
    ./test.c: In function ‘foo’:
    ./test.c:2:31: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’)
      __typeof__(B) __b = (B); __a < __b ? __b : __a; })
				   ^
    ./test.c:2:31: note: in expansion of macro 'MYMAX'
      __typeof__(B) __b = (B); __a < __b ? __b : __a; })
				   ^
    ./test.c:10:3: note: expanded from here
       MYMAX (p, f);
       ^
    $

After this patch, the compiler yields:

    $ ./cc1 -quiet ./test.c
    ./test.c: In function ‘foo’:
    ./test.c:2:31: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’)
      __typeof__(B) __b = (B); __a < __b ? __b : __a; })
				   ^
    ./test.c:10:3: note: in expansion of macro 'MYMAX'
       MYMAX (p, f);
       ^
    $

The gotcha is, in the general case, we cannot simply eliminate the
context of the macro definition.  That is, the line from the first
output that is redundant with the first diagnostic line that has
line/column number:

    ./test.c:2:31: note: in expansion of macro 'MYMAX'
      __typeof__(B) __b = (B); __a < __b ? __b : __a; })
                                   ^

We cannot simply eliminate that context of macro definition because
there are cases where the first diagnostic that has a line/column
number doesn't point to a location inside the definition of the macro
where the relevant token is used.  For instance:

    $ cat -n test2.c
	 1	#define OPERATE(OPRD1, OPRT, OPRD2) \
	 2	  OPRD1 OPRT OPRD2;
	 3
	 4	#define SHIFTL(A,B) \
	 5	  OPERATE (A,<<,B)
	 6
	 7	#define MULT(A) \
	 8	  SHIFTL (A,1)
	 9
	10	void
	11	g ()
	12	{
	13	  MULT (1.0);// 1.0 << 1; <-- so this is an error.
	14	}
    $

Which yields without the patch:

    $ cc1 -quiet ./test2.c
    ./test2.c: In function ‘g’:
    ./test2.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’)
       OPERATE (A,<<,B)
		  ^
    ./test2.c:2:9: note: in expansion of macro 'OPERATE'
       OPRD1 OPRT OPRD2;
	     ^
    ./test2.c:5:3: note: expanded from here
       OPERATE (A,<<,B)
       ^
    ./test2.c:5:14: note: in expansion of macro 'SHIFTL'
       OPERATE (A,<<,B)
		  ^
    ./test2.c:8:3: note: expanded from here
       SHIFTL (A,1)
       ^
    ./test2.c:8:3: note: in expansion of macro 'MULT'
       SHIFTL (A,1)
       ^
    ./test2.c:13:3: note: expanded from here
       MULT (1.0);// 1.0 << 1; <-- so this is an error.
       ^
    $

Here, the line that has the context of macro definition:

    ./test2.c:2:9: note: in expansion of macro 'OPERATE'
       OPRD1 OPRT OPRD2;
	     ^
is useful, because the first diagnostic that has line/column number
wasn't pointing into the definition of the macro OPERATE, where the
token '<<' is used.

    ./test2.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’)
       OPERATE (A,<<,B)
		  ^
So in this this case, displaying the macro definition context is not
redundant.  I think it is even desirable.

The patch changes the output in that case to be:

    ./test2.c: In function ‘g’:
    ./test2.c:5:14: erreur: invalid operands to binary << (have ‘double’ and ‘int’)
       OPERATE (A,<<,B)
		  ^
    ./test2.c:2:9: note: in definition of macro 'OPERATE'
       OPRD1 OPRT OPRD2;
	     ^
    ./test2.c:8:3: note: in expansion of macro 'SHIFTL'
       SHIFTL (A,1)
       ^
    ./test2.c:13:3: note: in expansion of macro 'MULT'
       MULT (1.0);// 1.0 << 1; <-- so this is an error.
       ^
    $

It's shorter, but I believe it has all the information that was
present before the patch.

[1]: http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00321.html

Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.

gcc/

	Make unwound macro expansion trace less redundant
	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
	context of macro definition in the trace, when it's redundant.
	Update comments.

gcc/testsuite/

	Make unwound macro expansion trace less redundant
	* gcc.dg/cpp/macro-exp-tracking-1.c: Adjust.
	* gcc.dg/cpp/macro-exp-tracking-2.c: Likewise.
	* gcc.dg/cpp/macro-exp-tracking-3.c: Likewise.
	* gcc.dg/cpp/macro-exp-tracking-4.c: Likewise.
	* gcc.dg/cpp/macro-exp-tracking-5.c: Likewise.
	* gcc.dg/cpp/pragma-diagnostic-2.c: Likewise.

From-SVN: r187845
2012-05-24 21:37:45 +02:00
Paolo Carlini a5dedb5e59 re PR c++/53464 (Invalid default value for non-type template parameter is accepted)
2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53464
	* g++.dg/cpp0x/constexpr-default1.C: New.

From-SVN: r187842
2012-05-24 15:12:37 +00:00
Olivier Hainque 73fb763006 Fix typo in latest ChangeLog entry addition.
From-SVN: r187840
2012-05-24 14:58:49 +00:00
Olivier Hainque 7c7c339b4b Makefile.in: move dependency on install-unwind_h from "install-leaf" to "install".
libgcc/
        * Makefile.in: move dependency on install-unwind_h from
        "install-leaf" to "install".

From-SVN: r187839
2012-05-24 14:57:11 +00:00
Olivier Hainque fdc1b7d3a7 Makefile.in (clean): Remove libgcc_tm.stamp as well.
libgcc/
        * Makefile.in (clean): Remove libgcc_tm.stamp as well.
        Use a separate command for stamp removals.

From-SVN: r187838
2012-05-24 14:51:33 +00:00
Paolo Carlini c7837f7efb re PR c++/32080 (Can goto a function try-block)
/cp
2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/32080
	* parser.c (cp_parser_ctor_initializer_opt_and_function_body,
	cp_parser_function_body): Add a bool parameter, true when parsing
	a function-try-block.
	(cp_parser_function_try_block): Pass true to the above.
	(cp_parser_function_definition_after_declarator,
	cp_parser_function_transaction): Adjust.

/testsuite
2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/32080
	* g++.dg/eh/goto2.C: New.

From-SVN: r187837
2012-05-24 14:47:06 +00:00
Richard Guenther 49bdc0a65d re PR middle-end/53460 (Internal compiler error: in calc_dfs_tree, at dominance.c:395)
2012-05-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53460
	* tree-profile.c (tree_profiling): Cleanup the CFG if
	execute_fixup_cfg requests it.

	* g++.dg/tree-prof/pr53460.C: New testcase.

From-SVN: r187831
2012-05-24 12:46:53 +00:00
Richard Guenther 8a791ae231 re PR bootstrap/53466 (Bootstrap failure)
2012-05-24  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/53466
	* g++.dg/debug/pr53466.C: New testcase.

From-SVN: r187830
2012-05-24 12:36:40 +00:00
Richard Guenther 0faa05629e tree-flow.h (create_var_ann): Remove.
2012-05-24  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (create_var_ann): Remove.
	* tree-dfa.c (create_var_ann): Remove and inline into its
	single caller ...
	(add_referenced_var_1): ... here.
	* varpool.c (add_new_static_var): Do not call add_referenced_var
	for global vars.
	* gimple-fold.c (canonicalize_constructor_val): Likewise.
	* tree-switch-conversion.c (build_one_array): Likewise.
	* tree-profile.c (gimple_gen_ic_profiler): Likewise.
	* tree-flow-inline.h (gimple_referenced_vars): Guard against
	NULL fn argument.
	* tree-inline.c (remap_gimple_op_r): Likewise.  Check
	gimple_referenced_vars instead of gimple_in_ssa_p.
	(copy_tree_body_r): Likewise.
	(setup_one_parameter): Likewise.
	(declare_return_variable): Likewise.
	(tree_function_versioning): Likewise.

From-SVN: r187829
2012-05-24 12:33:49 +00:00
Jakub Jelinek 0d5a9e7848 re PR tree-optimization/53465 (wrong code with -O1 -ftree-vrp)
PR tree-optimization/53465
	* tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
	vr0 into *vr, then vrp_meet that.
	(vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
	have any equivalences.
	(vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
	first time.

	* gcc.c-torture/execute/pr53465.c: New test.

From-SVN: r187827
2012-05-24 13:51:09 +02:00
Jim MacArthur e7bcc69120 recog.c (reg_fits_class_p): Check both regno and regno + offset are hard registers.
2012-05-24  Jim MacArthur<jim.macarthur@arm.com>

	* recog.c (reg_fits_class_p): Check both regno and regno + offset are
	hard registers.
	* regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
	check end_regno - 1 is a hard register.

From-SVN: r187826
2012-05-24 11:07:57 +00:00
Richard Guenther b44be1e6cf varpool.c (add_new_static_var): Remove call to create_var_ann.
2012-05-24  Richard Guenther  <rguenther@suse.de>

	* varpool.c (add_new_static_var): Remove call to create_var_ann.
	* tree-ssa-operands.c (create_vop_var): Likewise.

From-SVN: r187825
2012-05-24 09:57:38 +00:00
Richard Guenther 1431ce0161 re PR bootstrap/53466 (Bootstrap failure)
2012-05-24  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/53466
	* tree-ssa-live.c (remove_unused_scope_block_p): Properly
	handle globals.
	(remove_unused_locals): Pass global_unused_vars to
	remove_unused_scope_block_p.  Restore code walking all
	referenced vars and pruning them.

From-SVN: r187824
2012-05-24 09:54:25 +00:00
Jan Hubicka 07250f0e28 tree.h (alias_diag_flags): Remove.
* tree.h (alias_diag_flags): Remove.
	(alias_pair): Remove emitted_diags.
	(finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
	symbol_alias_set_t, symbol_alias_set_destroy,
	symbol_alias_set_contains, propagate_aliases_backward): Remove.
	* toplev.c (compile_file): Do not call finish_aliases_2
	* cgraphunit.c (cgraph_process_new_functions): Do not call finish_aliases_1.
	(handle_alias_pairs): Output diagnostics about aliases to externals.
	(assemble_thunks_and_aliases): Use do_assemble_alias.
	(output_weakrefs): Likewise.
	(finalize_compilation_unit): Do not call finish_aliases_1.
	* ipa.c (symtab_remove_unreachable_nodes): De not call remove_unreachable_alias_pairs.
	* varasm.c (do_assemble_alias): Export.
	(symbol_alias_set_create, symbol_alias_set_destroy, symbol_alias_set_contains,
	symbol_alias_set_insert, propagate_aliases_forward, propagate_aliases_backward,
	propagate_aliases_backward, trivially_visible_alias, trivially_defined_alias,
	remove_unreachable_alias_pairs, finish_aliases_1, finish_aliases_2, 
	assemble_alias): Remove.
	* output.h (do_assemble_alias): Declare.
	* varpool.c (varpool_remove_unreferenced_decls): Do not call finish_aliases_1.

From-SVN: r187823
2012-05-24 09:44:48 +00:00
GCC Administrator 0f4fb41f6d Daily bump.
From-SVN: r187822
2012-05-24 00:18:39 +00:00
Doug Evans 60a1fb3537 leb128.h: #include stdint.h, inttypes.h.
* leb128.h: #include stdint.h, inttypes.h.
	(read_uleb128_to_uint64): Renamed from read_uleb128_to_ull.
	Change to take a uint64_t * argument instead of unsigned long long.
	(read_sleb128_to_uint64): Renamed from read_sleb128_to_ll.
	Change to take an int64_t * argument instead of long long.

From-SVN: r187818
2012-05-23 23:42:25 +00:00
Martin Jambor fb9098887b ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
2012-05-23  Martin Jambor  <mjambor@suse.cz>

    * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.

From-SVN: r187817
2012-05-24 00:23:54 +02:00
Tobias Burnus 239b48db1b re PR fortran/51055 (deferred length character allocation: allocate(character(len=i)::s) rejected)
2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51055
        PR fortran/45170
        * match.c (gfc_match_allocate): Set length_from_typespec
        for characters.
        * resolve.c (resolve_charlen): If set, don't check whether
        the len is a specification expression.

2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51055
        PR fortran/45170
        * gfortran.dg/allocate_with_typespec_6.f90: New.

From-SVN: r187811
2012-05-23 22:35:30 +02:00
Eric Botcazou 2e74510357 gimple.c (gimple_types_compatible_p_1): Remove bogus size handling.
* gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
	size handling.
	(gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
	(iterative_hash_gimple_type): Adjust comment.
	(iterative_hash_canonical_type): Likewise.  Hash the bounds of the
	domain for an array type instead of the domain type itself.

From-SVN: r187807
2012-05-23 19:07:59 +00:00
Janne Blomqvist c5a6cbd4ba PR 53456 clock_gettime fallback for gf_gettime
2012-05-23  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/53456
	* intrinsics/time_1.h (gf_gettime): Fallback for clock_gettime.

From-SVN: r187806
2012-05-23 21:52:47 +03:00
Richard Guenther e8257960f0 Index...
Index: gcc/tree-sra.c
===================================================================
--- gcc/tree-sra.c	(revision 187800)
+++ gcc/tree-sra.c	(working copy)
@@ -2096,9 +2096,12 @@ analyze_access_subtree (struct access *root, struc
 	  && (TREE_CODE (root->type) != INTEGER_TYPE
 	      || TYPE_PRECISION (root->type) != root->size)
 	  /* But leave bitfield accesses alone.  */
-	  && (root->offset % BITS_PER_UNIT) == 0)
+	  && (TREE_CODE (root->expr) != COMPONENT_REF
+	      || !DECL_BIT_FIELD (TREE_OPERAND (root->expr, 1))))
 	{
 	  tree rt = root->type;
+	  gcc_assert ((root->offset % BITS_PER_UNIT) == 0
+		      && (root->size % BITS_PER_UNIT) == 0);
 	  root->type = build_nonstandard_integer_type (root->size,
 						       TYPE_UNSIGNED (rt));
 	  root->expr = build_ref_for_offset (UNKNOWN_LOCATION,

From-SVN: r187805
2012-05-23 15:53:59 +00:00
Georg-Johann Lay b49eb0fff1 re PR target/53448 ([avr] ignoring __attribute__((aligned(2))))
PR target/53448
	* config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
	* config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
	ASM_OUTPUT_ALIGN.

From-SVN: r187803
2012-05-23 15:25:22 +00:00
Paolo Carlini 0a9696f022 re PR c++/29185 (inconsistent warning: deleting array)
/cp
2012-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/29185
	* decl2.c (delete_sanity): Extend 'deleting array' warning to
	any array type.

/testsuite
2012-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/29185
	* g++.dg/warn/delete-array-1.C: New.

From-SVN: r187801
2012-05-23 14:19:27 +00:00
Richard Biener 9c09f152d9 tree-dfa.c (add_referenced_var_1): Do not add global vars.
2012-05-23  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (add_referenced_var_1): Do not add global vars.
	* tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
	via the global_unused_vars bitmap.
	(remove_unused_locals): Handle global vars in local-decls via
	a global_unused_vars bitmap instead of the used flag in the
	var annotation.  Simplify global variable handling and removal.

	* gcc.dg/torture/pr39074-2.c: Adjust.
	* gcc.dg/torture/pr39074.c: Likewise.
	* gcc.dg/torture/pta-structcopy-1.c: Likewise.
	* gcc.dg/tree-ssa/alias-19.c: Likewise.

From-SVN: r187800
2012-05-23 12:25:41 +00:00
Jan Hubicka aa19cf8778 re PR tree-optimization/53426 (ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581)
PR middle-end/53426
	* tree-ssa-structalias.c (create_variable_info_for): Skip constructors from
	other partitions.

From-SVN: r187799
2012-05-23 09:47:10 +00:00
Jan Hubicka 66379195d6 re PR middle-end/53161 (ICE with weakref function and a function which takes vector types)
PR middle-end/53161
	* symtab.c (symtab_register_node): Fix ordering issue.

From-SVN: r187798
2012-05-23 09:23:40 +00:00
Robert Mason b8ce6b9cc0 re PR libfortran/53445 (No sticky bit on VxWorks - fix chmod.c)
2012-05-23  Robert Mason  <rbmj@verizon.net>
            Tobias Burnus  <burnus@net-b.de>

        PR libfortran/53445
        * intrinsics/chmod.c (chmod_func): Ignore S_ISVTX on VxWorks.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r187797
2012-05-23 10:52:09 +02:00
Tobias Burnus 4179e59afa re PR libfortran/53444 (Accommodate non-compliant strerror_r() on VxWorks.)
2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR libfortran/53444
        * acinclude.m4 (LIBGFOR_CHECK_STRERROR_R): Add configure checks
        * for
        two- and three-argument versions of strerror_r.
        * configure.ac (LIBGFOR_CHECK_STRERROR_R): Use it.
        * runtime/error.c (gf_strerror): Handle two-argument version
        of strerror_r.
        * config.h.in: Regenerate.
        * configure: Regenerate.

From-SVN: r187796
2012-05-23 10:34:06 +02:00
GCC Administrator f883872b10 Daily bump.
From-SVN: r187788
2012-05-23 00:18:38 +00:00
John David Anglin 917344232c re PR other/53231 (libatomic/tas_n.c💯10: error: 'ret' undeclared (first use in this function))
PR other/53231
	* tas_n.c (libat_test_and_set): Correct return.  Remove unused variable.

From-SVN: r187783
2012-05-22 23:54:32 +00:00
Ian Lance Taylor 4579805199 runtime: Tweak runtime.Callers for Go 1 compatibility.
From-SVN: r187781
2012-05-22 21:52:56 +00:00
Doug Evans 19460426c3 * leb128.h: New file.
From-SVN: r187780
2012-05-22 17:47:49 +00:00
Ian Lance Taylor ef1f343258 runtime: Use getcontext, not setjmp, to save regs for GC.
From-SVN: r187777
2012-05-22 16:57:23 +00:00
Steven Drake 3cd50158f5 gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
2012-05-22  Steven Drake <sbd@NetBSD.org>

	* gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.

From-SVN: r187775
2012-05-22 16:17:55 +01:00
David Edelsohn f8dc1d832e rs6000.c (rs6000_aix_asm_output_dwarf_table_ref): Use strip_name_encoding target hook.
* config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
Use strip_name_encoding target hook.

From-SVN: r187774
2012-05-22 10:15:51 -04:00
Tom Tromey d931f693ce demangle-expected: Add regression test.
http://sourceware.org/bugzilla/show_bug.cgi?id=14065
	* testsuite/demangle-expected: Add regression test.
	* cp-demangle.c (d_find_pack): Return NULL for
	DEMANGLE_COMPONENT_UNNAMED_TYPE.

From-SVN: r187773
2012-05-22 13:55:02 +00:00
Richard Guenther 3828719aa9 tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
2012-05-22  Richard Guenther  <rguenther@suse.de>

	* tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
	(init_function_for_compilation): Remove.
	* tree-dfa.c (find_vars_r): Take struct function argument.
	(find_referenced_vars_in): Adjust.
	* tree-ssa-operands.c (clobber_stats): Remove.
	(create_vop_var): Take struct function argument.  Mark
	virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
	(init_ssa_operands): Take struct function argument.
	(fini_ssa_operands): Do not dump dead stats.
	* tree-ssa-operands.h (init_ssa_operands): Take struct function
	argument.
	* cgraphunit.c (init_lowered_empty_function): Adjust.
	* lto-streamer-in.c (input_cfg): Likewise.
	* tree-inline.c (initialize_cfun): Likewise.
	* tree-into-ssa.c (rewrite_into_ssa): Likewise.
	* omp-low.c (expand_omp_taskreg): Likewise.  Avoid switching
	cfun.
	* gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
	virtual operands are not registers.

From-SVN: r187772
2012-05-22 11:59:41 +00:00
Richard Guenther 72d5c6c157 tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
2012-05-22  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous
	commit.

From-SVN: r187771
2012-05-22 11:21:30 +00:00
Tobias Burnus f391a85582 re PR fortran/53389 (-frealloc-lhs: memory leak when assigning array function result to allocatable array, where one of its supplied arguments is itself an array function result)
2012-05-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53389
        * trans-array.c (gfc_add_loop_ss_code): Don't evaluate
        * expression, if
        ss->is_alloc_lhs is set.

2012-05-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53389
        * gfortran.dg/realloc_on_assign_15.f90: New.

From-SVN: r187769
2012-05-22 12:10:47 +02:00
Richard Guenther 633d9236a1 re PR middle-end/51071 (ICE in gimple_has_side_effects, at gimple.c:2513)
2012-05-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51071
	* gcc.dg/torture/pr51071-2.c: New testcase.

From-SVN: r187768
2012-05-22 09:35:32 +00:00
Richard Guenther 27eb31c9de re PR middle-end/53437 (FAIL: gcc.dg/guality/inline-params.c -O0)
2012-05-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53437
	* tree-inline.c (setup_one_parameter): Create a dummy init
	statement for unused parameters when not optimizing.

From-SVN: r187767
2012-05-22 09:33:42 +00:00
Richard Guenther 3efa0725f4 tree-flow.h (add_referenced_var_1): Declare.
2012-05-22  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (add_referenced_var_1): Declare.
	(add_referenced_var): Define.
	* tree-dfa.c (referenced_var_check_and_insert): Avoid one hash
	lookup.
	(add_referenced_var): Rename to ...
	(add_referenced_var_1): ... this.  Take struct function argument.

From-SVN: r187766
2012-05-22 09:33:01 +00:00