* cp-tree.h (next_aggr_init_expr_arg): Remove static specifier.
	(first_aggr_init_expr): Likewise.
	(more_aggr_init_expr_args_p): Likewise.
	(type_of_this_parm): Likewise.
	(class_of_this_parm): Likewise.
	* name-lookup.h (get_global_value_if_present): Likewise.
	(is_typename_at_global_scope): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197196 138bc75d-0d04-0410-961f-82ee72b054a4
2013-03-28  Kenneth Zadeck <zadeck@naturalbridge.com>

	* combine.c (try_combine): Removed useless assert. 
	* cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197198 138bc75d-0d04-0410-961f-82ee72b054a4
2013-03-28  Kenneth Zadeck <zadeck@naturalbridge.com>

   	* genmodes.c (emit_max_int): New function.
	(emit_insn_modes_h): Added call to emit_max_function.
	* doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE): Added doc.	
	* machmode.def: Fixed comment.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197200 138bc75d-0d04-0410-961f-82ee72b054a4
2013-03-28  Tejas Belagod  <tejas.belagod@arm.com>

	PR middle-end/56694
	* g++.dg/torture/pr56694.C: Fix test case to build on bare-metal 
	targets.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197201 138bc75d-0d04-0410-961f-82ee72b054a4
	* data-streamer-in.c (streamer_read_gcov_count): New function.
	* gimple-streamer-out.c: Include value-prof.h.
	(output_gimple_stmt): Output histogram.
	(output_bb): Use streamer_write_gcov_count.
	* value-prof.c: Include data-streamer.h
	(dump_histogram_value): Add HIST_TYPE_MAX.
	(stream_out_histogram_value): New function.
	(stream_in_histogram_value): New function.
	* value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
	(stream_out_histogram_value, stream_in_histogram_value): Declare.
	* data-streamer-out.c (streamer_write_gcov_count): New function.
	(streamer_write_gcov_count_stream): New function.
	* lto-cgraph.c (lto_output_edge): Update counter streaming.
	(lto_output_node): Likewise.
	(input_node, input_edge): Likewise.
	* lto-streamer-out.c (output_cfg): Update streaming.
	* lto-streamer-in.c (input_cfg): Likewise.
	* data-streamer.h (streamer_write_gcov_count,
	streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
	* gimple-streamer-in.c: Include value-prof.h
	(input_gimple_stmt): Input histograms.
	(input_bb): Update profile streaming.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197205 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2013-03-28  Paolo Carlini  <paolo.carlini@oracle.com>
	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/56725
	* call.c (convert_like_real): Change series of two permerrors
	to permerror + inform (and likewise for two errors).
	(build_new_method_call_1): Likewise.
	* typeck.c (convert_for_initialization): Change additional
	warning or error to inform.

/testsuite
2013-03-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56725
	* g++.dg/conversion/op4.C: Adjust.
	* g++.dg/cpp0x/rv1n.C: Likewise.
	* g++.dg/cpp0x/rv2n.C: Likewise.
	* g++.dg/cpp0x/template_deduction.C: Likewise.
	* g++.dg/expr/cond8.C: Likewise.
	* g++.dg/other/error4.C: Likewise.
	* g++.old-deja/g++.bugs/900514_03.C: Likewise.
	* g++.old-deja/g++.bugs/900519_02.C: Likewise.
	* g++.old-deja/g++.bugs/900519_03.C: Likewise.
	* g++.old-deja/g++.bugs/900520_02.C: Likewise.
	* g++.old-deja/g++.jason/conversion2.C: Likewise.
	* g++.old-deja/g++.law/cvt20.C: Likewise.
	* g++.old-deja/g++.law/cvt8.C: Likewise.
	* g++.old-deja/g++.law/init8.C: Likewise.
	* g++.old-deja/g++.mike/net12.C: Likewise.
	* g++.old-deja/g++.mike/net8.C: Likewise.
	* g++.old-deja/g++.mike/p2793.C: Likewise.
	* g++.old-deja/g++.mike/p3836.C: Likewise.
	* g++.old-deja/g++.mike/p418.C: Likewise.
	* g++.old-deja/g++.mike/p701.C: Likewise.
	* g++.old-deja/g++.mike/p807.C: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197206 138bc75d-0d04-0410-961f-82ee72b054a4
2013-03-28   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
	(*andsi3_compare0_uxtw): New pattern.
	(*and_<SHIFT:optab><mode>3_compare0): New pattern.
	(*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197207 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/i386.md (*vec_extract2vdi_1): Merge with
	*vec_extractv2di_1_rex64.  Use x64 isa attribute.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197208 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/56728
	* semantics.c (potential_constant_expression_1) [NOP_EXPR]: Reject
	conversion from integer to pointer.
	(cxx_eval_constant_expression): Likewise.
	(cxx_eval_indirect_ref): Use the folded operand if we still think
	this might be constant.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197209 138bc75d-0d04-0410-961f-82ee72b054a4
	* name-lookup.c (pushdecl_maybe_friend_1): Use
	nonlambda_method_basetype and current_nonlambda_class_type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197210 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/56710
	* semantics.c (finish_member_declaration): Don't push closure
	members.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197211 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/56701
	* semantics.c (finish_this_expr): 'this' is an rvalue.
	* typeck.c (cp_build_indirect_ref): Handle NOP_EXPR of 'this'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197212 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/56679
	* parser.c (cp_parser_sizeof_pack): Split out from...
	(cp_parser_sizeof_operand): ...here.  Require (id).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197213 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/17232
	PR c++/52748
	* typeck2.c (abstract_virtuals_error_sfinae): Don't complete
	the type if tf_decltype is set.
	* pt.c (fn_type_unification): Add decltype_p parm.
	(get_bindings): Adjust.
	* cp-tree.h: Adjust.
	* class.c (resolve_address_of_overloaded_function): Adjust.
	* call.c (add_template_candidate_real, print_z_candidate): Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197214 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Only maintain frame record when required or desired

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197215 138bc75d-0d04-0410-961f-82ee72b054a4
2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/55806
	* frontend-passes.c (optimize_code):  Keep track of
	current code to make code insertion possible.
	(combine_array_constructor):  New function.
	(optimize_op):  Call it.

2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/55806
	* gfortran.dg/array_constructor_43.f90:  New test.
	* gfortran.dg/random_seed_3.f90:  New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197216 138bc75d-0d04-0410-961f-82ee72b054a4
2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* gfortran.h (gfc_dep_difference):  Add prototype.
	* dependency.c (discard_nops):  New function.
	(gfc_dep_difference):  New function.
	(check_section_vs_section):  Use gfc_dep_difference
	to calculate the difference of starting indices.
	* trans-expr.c (gfc_conv_substring):  Use
	gfc_dep_difference to calculate the length of
	substrings where possible.

2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* gfortran.dg/string_length_2.f90:  New test.
	* gfortran.dg/dependency_41.f90:  New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197217 138bc75d-0d04-0410-961f-82ee72b054a4
	* lto-cgraph.c (merge_profile_summaries): Fix overflows.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197218 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197223 138bc75d-0d04-0410-961f-82ee72b054a4
Add uniform debug dump function names.


Add some overloaded functions that provide uniform debug dump
function names.  These names are:

  debug: the general debug dumper
  debug_verbose: for more details
  debug_raw: for the gory details
  debug_head: for the heads of declarations, e.g. function heads
  debug_body: for the bodies of declarations, e.g. function bodies

Not all types have the last four versions.

The debug functions come in two flavors, those that take pointers
to the type, and those that take references to the type.  The first
handles printing of '<nil>' for null pointers.  The second assumes
a valid reference, and prints the content.


Example uses are as follows:

  cp_token t, *p;
  debug (t);
  debug (p);

From the debugger, use

  call debug (t)


The functions sets implemented are:

debug (only)

    basic_block_def, const bitmap_head_def, cp_binding_level,
    cp_parser, cp_token, data_reference, die_struct, edge_def,
    gimple_statement_d, ira_allocno, ira_allocno_copy, live_range,
    lra_live_range, omega_pb_d, pt_solution, const rtx_def, sreal,
    tree_live_info_d, _var_map,

    vec<cp_token, va_gc>, vec<data_reference_p>, vec<ddr_p>,
    vec<rtx>, vec<tree, va_gc>,

debug and debug_raw

    simple_bitmap_def

debug and debug_verbose

    expr_def, struct loop, vinsn_def

debug, debug_raw, debug_verbose, debug_head, debug_body

    const tree_node


This patch is somewhat different from the original plan at
gcc.gnu.org/wiki/cxx-conversion/debugging-dumps.  The reason
is that gdb has an incomplete implementation of C++ call syntax;
requiring explicit specification of template arguments and explicit
specification of function arguments even when they have default
values.  So, the original plan would have required typing

  call dump <cp_token> (t, 0, 0, stderr)

which is undesireable.  Instead instead of templates, we overload
plain functions.  This adds a small burden of manually adding
the pointer version of dump for each type.  Instead of default
function arguments, we simply assume the default values.  Most of
the underlying dump functions did not use the options and indent
parameters anyway.  Several provide FILE* parameters, but we expect
debugging to use stderr anyway.  So, the explicit specification of
arguments was not as valuable as we thought initially.  Finally,
a change of name from dump to debug reflect the implicit output
to stderr.


Index: gcc/ChangeLog

2013-03-28  Lawrence Crowl  <crowl@google.com>

	* Makefile.in: Add several missing include dependences.
	(DUMPFILE_H): New.
	(test-dump.o): New.  This object is not added to any executable,
	but is present for ad-hoc testing.
	* bitmap.c
	(debug (const bitmap_head_def &)): New.
	(debug (const bitmap_head_def *)): New.
	* bitmap.h
	(extern debug (const bitmap_head_def &)): New.
	(extern debug (const bitmap_head_def *)): New.
	* cfg.c
	(debug (edge_def &)): New.
	(debug (edge_def *)): New.
	* cfghooks.c
	(debug (basic_block_def &)): New.
	(debug (basic_block_def *)): New.
	* dumpfile.h
	(dump_node (const_tree, int, FILE *)): Correct source file.
	* dwarf2out.c
	(debug (die_struct &)): New.
	(debug (die_struct *)): New.
	* dwarf2out.h
	(extern debug (die_struct &)): New.
	(extern debug (die_struct *)): New.
	* gimple-pretty-print.c
	(debug (gimple_statement_d &)): New.
	(debug (gimple_statement_d *)): New.
	* gimple-pretty-print.h
	(extern debug (gimple_statement_d &)): New.
	(extern debug (gimple_statement_d *)): New.
	* ira-build.c
	(debug (ira_allocno_copy &)): New.
	(debug (ira_allocno_copy *)): New.
	(debug (ira_allocno &)): New.
	(debug (ira_allocno *)): New.
	* ira-int.h
	(extern debug (ira_allocno_copy &)): New.
	(extern debug (ira_allocno_copy *)): New.
	(extern debug (ira_allocno &)): New.
	(extern debug (ira_allocno *)): New.
	* ira-lives.c
	(debug (live_range &)): New.
	(debug (live_range *)): New.
	* lra-int.h
	(debug (lra_live_range &)): New.
	(debug (lra_live_range *)): New.
	* lra-lives.c
	(debug (lra_live_range &)): New.
	(debug (lra_live_range *)): New.
	* omega.c
	(debug (omega_pb_d &)): New.
	(debug (omega_pb_d *)): New.
	* omega.h
	(extern debug (omega_pb_d &)): New.
	(extern debug (omega_pb_d *)): New.
	* print-rtl.c
	(debug (const rtx_def &)): New.
	(debug (const rtx_def *)): New.
	* print-tree.c
	(debug_tree (tree): Move within file.
	(debug_raw (const tree_node &)): New.
	(debug_raw (const tree_node *)): New.
	(dump_tree_via_hooks (const tree_node *, int)): New.
	(debug (const tree_node &)): New.
	(debug (const tree_node *)): New.
	(debug_verbose (const tree_node &)): New.
	(debug_verbose (const tree_node *)): New.
	(debug_head (const tree_node &)): New.
	(debug_head (const tree_node *)): New.
	(debug_body (const tree_node &)): New.
	(debug_body (const tree_node *)): New.
	(debug_vec_tree (tree): Move and reimplement in terms of dump.
	(debug (vec<tree, va_gc> &)): New.
	(debug (vec<tree, va_gc> *)): New.
	* rtl.h
	(extern debug (const rtx_def &)): New.
	(extern debug (const rtx_def *)): New.
	* sbitmap.c
	(debug_raw (simple_bitmap_def &)): New.
	(debug_raw (simple_bitmap_def *)): New.
	(debug (simple_bitmap_def &)): New.
	(debug (simple_bitmap_def *)): New.
	* sbitmap.h
	(extern debug (simple_bitmap_def &)): New.
	(extern debug (simple_bitmap_def *)): New.
	(extern debug_raw (simple_bitmap_def &)): New.
	(extern debug_raw (simple_bitmap_def *)): New.
	* sel-sched-dump.c
	(debug (vinsn_def &)): New.
	(debug (vinsn_def *)): New.
	(debug_verbose (vinsn_def &)): New.
	(debug_verbose (vinsn_def *)): New.
	(debug (expr_def &)): New.
	(debug (expr_def *)): New.
	(debug_verbose (expr_def &)): New.
	(debug_verbose (expr_def *)): New.
	(debug (vec<rtx> &)): New.
	(debug (vec<rtx> *)): New.
	* sel-sched-dump.h
	(extern debug (vinsn_def &)): New.
	(extern debug (vinsn_def *)): New.
	(extern debug_verbose (vinsn_def &)): New.
	(extern debug_verbose (vinsn_def *)): New.
	(extern debug (expr_def &)): New.
	(extern debug (expr_def *)): New.
	(extern debug_verbose (expr_def &)): New.
	(extern debug_verbose (expr_def *)): New.
	(extern debug (vec<rtx> &)): New.
	(extern debug (vec<rtx> *)): New.
	* sel-sched-ir.h
	(_list_iter_cond_expr): Make inline instead of static.
	* sreal.c
	(debug (sreal &)): New.
	(debug (sreal *)): New.
	* sreal.h
	(extern debug (sreal &)): New.
	(extern debug (sreal *)): New.
	* tree.h
	(extern debug_raw (const tree_node &)): New.
	(extern debug_raw (const tree_node *)): New.
	(extern debug (const tree_node &)): New.
	(extern debug (const tree_node *)): New.
	(extern debug_verbose (const tree_node &)): New.
	(extern debug_verbose (const tree_node *)): New.
	(extern debug_head (const tree_node &)): New.
	(extern debug_head (const tree_node *)): New.
	(extern debug_body (const tree_node &)): New.
	(extern debug_body (const tree_node *)): New.
	(extern debug (vec<tree, va_gc> &)): New.
	(extern debug (vec<tree, va_gc> *)): New.
	* tree-cfg.c
	(debug (struct loop &)): New.
	(debug (struct loop *)): New.
	(debug_verbose (struct loop &)): New.
	(debug_verbose (struct loop *)): New.
	* tree-dump.c: Add header dependence.
	* tree-flow.h
	(extern debug (struct loop &)): New.
	(extern debug (struct loop *)): New.
	(extern debug_verbose (struct loop &)): New.
	(extern debug_verbose (struct loop *)): New.
	* tree-data-ref.c
	(debug (data_reference &)): New.
	(debug (data_reference *)): New.
	(debug (vec<data_reference_p> &)): New.
	(debug (vec<data_reference_p> *)): New.
	(debug (vec<ddr_p> &)): New.
	(debug (vec<ddr_p> *)): New.
	* tree-data-ref.h
	(extern debug (data_reference &)): New.
	(extern debug (data_reference *)): New.
	(extern debug (vec<data_reference_p> &)): New.
	(extern debug (vec<data_reference_p> *)): New.
	(extern debug (vec<ddr_p> &)): New.
	(extern debug (vec<ddr_p> *)): New.
	* tree-ssa-alias.c
	(debug (pt_solution &)): New.
	(debug (pt_solution *)): New.
	* tree-ssa-alias.h
	(extern debug (pt_solution &)): New.
	(extern debug (pt_solution *)): New.
	* tree-ssa-alias.c
	(debug (_var_map &)): New.
	(debug (_var_map *)): New.
	(debug (tree_live_info_d &)): New.
	(debug (tree_live_info_d *)): New.
	* tree-ssa-alias.h
	(extern debug (_var_map &)): New.
	(extern debug (_var_map *)): New.
	(extern debug (tree_live_info_d &)): New.
	(extern debug (tree_live_info_d *)): New.

Index: gcc/cp/ChangeLog

2013-03-28  Lawrence Crowl  <crowl@google.com>

	* Make-lang.in
	(CXX_PARSER_H): Add header dependence.
	* cp-tree.h
	(extern debug (cp_binding_level &)): New.
	(extern debug (cp_binding_level *)): New.
	* name-lookup.h
	(debug (cp_binding_level &)): New.
	(debug (cp_binding_level *)): New.
	* parser.c
	(debug (cp_parser &)): New.
	(debug (cp_parser *)): New.
	(debug (cp_token &)): New.
	(debug (cp_token *)): New.
	(debug (vec<cp_token, va_gc> &)): New.
	(debug (vec<cp_token, va_gc> *)): New.
	* parser.c: Add header dependence.
	(extern debug (cp_parser &)): New.
	(extern debug (cp_parser *)): New.
	(extern debug (cp_token &)): New.
	(extern debug (cp_token *)): New.
	(extern debug (vec<cp_token, va_gc> &)): New.
	(extern debug (vec<cp_token, va_gc> *)): New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197224 138bc75d-0d04-0410-961f-82ee72b054a4