Commit Graph

117047 Commits

Author SHA1 Message Date
Jan Hubicka c44c2088f7 cgraphbuild.c (record_reference): Update.
* cgraphbuild.c (record_reference): Update.
	* lto-cgraph.c (lto_output_varpool_node): External vars
	are not in other partition even if they are not output
	in current partition.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
	argument; fix.
	(canonicalize_constructor_val): Take FROM_DECL argument.
	(fold_ctor_reference, fold_string_cst_ctor_reference,
	fold_array_ctor_reference, fold_nonarray_ctor_reference,
	fold_ctor_reference): Likewise.
	(fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
	* gimple.h (gimple_fold_builtin): Likewise.

From-SVN: r187678
2012-05-19 09:49:47 +00:00
Eric Botcazou c80c1ce951 decl.c (Has_Thiscall_Convention): New macro.
* gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
	(gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
	calling convention
	(get_minimal_subprog_decl): Likewise.
	(gnat_first_param_is_class): New predicate.

	* gcc-interface/misc.c (gnat_handle_option): Fix formatting.
	* gcc-interface/Makefile.in: Likewise.

From-SVN: r187676
2012-05-19 09:32:50 +00:00
GCC Administrator 2a2aa0391e Daily bump.
From-SVN: r187674
2012-05-19 00:18:29 +00:00
Eric Botcazou 1d5bfe9720 decl.c (gnat_to_gnu_entity): For an object at global level with unconstrained nominal subtype and a...
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at
	global level with unconstrained nominal subtype and a non-fixed size,
	make a variable for the size.

From-SVN: r187666
2012-05-18 20:33:49 +00:00
Ian Lance Taylor b8b552d99b compiler: Fix erroneous use of VEC.
From-SVN: r187664
2012-05-18 20:15:42 +00:00
Olivier Hainque 0ac3cb2a66 Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of $(libsubdir) as libexecsubdir.
gcc/
        * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
        $(libsubdir) as libexecsubdir.

From-SVN: r187658
2012-05-18 16:30:24 +00:00
Bill Schmidt 9c68125ebc rs6000.c (print_operand): Revise code that unsafely relied on signed overflow behavior.
2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (print_operand): Revise code that unsafely
	relied on signed overflow behavior.

From-SVN: r187657
2012-05-18 16:01:17 +00:00
Richard Guenther a4293fa661 re PR target/53346 (Bad if conversion in cptrf2 of rnflow.f90)
2012-05-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53346
	* tree-loop-distribution.c (ldist_gen): Make sure to apply
	builtin transform even when only a single partition with
	all reads/writes exists.

	* gcc.dg/tree-ssa/ldist-18.c: New testcase.
	* gcc.target/i386/incoming-10.c: Adjust.
	* gcc.target/i386/incoming-11.c: Likewise.
	* gcc.target/i386/pr46295.c: Likewise.

From-SVN: r187655
2012-05-18 13:10:01 +00:00
Richard Guenther b696101130 pr53352.c: Return zero.
2012-05-18  Richard Guenther  <rguenther@suse.de>

	* gcc.dg/pr53352.c: Return zero.

From-SVN: r187654
2012-05-18 12:30:36 +00:00
Richard Guenther 7595989bb4 re PR tree-optimization/53390 (ICE: tree check: expected integer_cst, have nop_expr in vect_compute_data_ref_alignmen on 32-bit x86 host)
2012-05-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53390
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
	strided loads.

	* gcc.dg/torture/pr53390.c: New testcase.

From-SVN: r187653
2012-05-18 12:09:49 +00:00
Bill Schmidt 917a52020a tree-ssa-reassoc.c (bip_map): Remove decl.
2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* tree-ssa-reassoc.c (bip_map): Remove decl.
	(completely_remove_stmt): Remove function.
	(remove_def_if_absorbed_call): Remove function.
	(remove_visited_stmt_chain): Remove __builtin_powi handling.
	(possibly_move_powi): Remove function.
	(rewrite_expr_tree): Remove calls to possibly_move_powi.
	(rewrite_expr_tree_parallel): Likewise.
	(attempt_builtin_powi): Build multiplies explicitly rather than
	relying on the ops vector and rank system.
	(transform_stmt_to_copy): New function.
	(transform_stmt_to_multiply): Likewise.
	(reassociate_bb): Handle leftover operations after __builtin_powi
	optimization; build a final multiply if necessary.

From-SVN: r187652
2012-05-18 12:02:54 +00:00
Jan Hubicka 387df87160 cgraphunit.c (varpool_finalize_decl): Allow external decls.
* cgraphunit.c (varpool_finalize_decl): Allow external decls.
	(mark_functions_to_output): Fix sanity check.
	* ipa.c (function_and_variable_visibility): Remove TREE_STATIC
	check.

From-SVN: r187651
2012-05-18 11:44:52 +00:00
Richard Guenther f9a21e1342 tree-flow.h (mark_symbols_for_renaming): Remove.
2012-05-18  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (mark_symbols_for_renaming): Remove.
	* tree-dfa.c (mark_symbols_for_renaming): Likewise.
	* tree-inline.c (copy_edges_for_bb): Do not mark symbols for
	renaming.
	(copy_debug_stmt): Likewise.
	(expand_call_inline): Likewise.
	(declare_return_variable): Mark the return variable for renaming
	if necessary.

From-SVN: r187650
2012-05-18 10:19:22 +00:00
Andrew Stubbs 99aea9436d arm-protos.h (arm_emit_coreregs_64bit_shift): New prototype.
2012-05-18  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
	prototype.
	* config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
	* config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
	(ashrdi3,lshrdi3): Likewise.
	(arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.

From-SVN: r187649
2012-05-18 09:10:36 +00:00
Meador Inge 7cb6668a1f re PR rtl-optimization/53352 (Incorrect CSE optimization on RTL expressions with a paradoxical subreg)
gcc/
2012-05-15  Meador Inge  <meadori@codesourcery.com>

	PR rtl-optimization/53352
	* cse.c (equiv_constant): Ignore paradoxical subregs.

gcc/testsuite/
2012-05-15  Meador Inge  <meadori@codesourcery.com>

	PR rtl-optimization/53352
	* gcc.dg/pr53352.c: New test.

From-SVN: r187648
2012-05-18 09:04:38 +00:00
GCC Administrator 4a3afb1a3d Daily bump.
From-SVN: r187647
2012-05-18 00:18:47 +00:00
David S. Miller 71bc706c51 Fix bessel_7.f90 failures on sparc-*-linux-gnu
* gfortran.dg/bessel_7.f90: Bump allowed precision to avoid
	failure on sparc-*-linux-gnu.

From-SVN: r187636
2012-05-17 12:27:52 -07:00
Paolo Carlini 58d84b67c2 2012-05-17 Paolo Carlini <paolo.carlini@oracle.com>
* Fix typo in the last ChangeLog entry.

From-SVN: r187635
2012-05-17 18:56:06 +00:00
Paolo Carlini 70ba90b226 re PR c++/39681 (Compile error is not descriptive)
/cp
2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/39681
	* parser.c (cp_parser_new_type_id): Early return error_mark_node
	if the cp_parser_type_specifier_seq call has type_specifier_seq.type
	error_mark_node; tidy.
	(cp_parser_new_expression): Always initialize nelts to NULL_TREE to
	avoid uninitialized warnings.
	(cp_parser_init_declarator, cp_parser_late_parse_one_default_arg):
	Call cp_parser_skip_to_end_of_statement if cp_parser_initializer
	returns error_mark_node.

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

	PR c++/39681
	* g++.dg/parse/error48.C: New.
	* g++.dg/cpp0x/error8.C: Likewise.
	* g++.dg/ext/utf-cxx98.C: Adjust dg-error directive.
	* g++.dg/ext/utf-dflt2.C: Likewise.
	* g++.dg/ext/utf-gnuxx98.C: Likewise.
	* g++.dg/ext/utf-dflt.C: Likewise.
	* c-c++-common/raw-string-3.c: Likewise.
	* c-c++-common/raw-string-4.c: Likewise.

From-SVN: r187634
2012-05-17 18:54:37 +00:00
Steven Bosscher 8e6acdb8cd re PR rtl-optimization/53125 (Very slow compilation on SPARC)
PR rtl-optimization/53125
	* regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
	argument.  Simplify calculation of REG_LIVE_LENGTH for regnos that
	die in the basic block.  Correctly top off REG_FREQ and
	REG_FREQ_CALLS_CROSSED.
	Remove do_not_gen.
	(regstat_compute_ri): Allocate and free local_live_last_luid.
	Remove do_not_gen.
	(regstat_bb_compute_calls_crossed): Correctly top off
	REG_FREQ_CALLS_CROSSED.

From-SVN: r187633
2012-05-17 17:54:52 +00:00
Jan Hubicka 6649df51ec lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with constructor over decl without.
* lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with constructor
	over decl without.
	* cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
	* cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
	* cgraphunit.c (process_function_and_variable_attributes): Finalize 
	extrnal decls.
	(mark_functions_to_output): Also accept bodies for functions with clones.
	(output_in_order): Skip external vars.
	* lto-cgraph.c (lto_output_node): External functions are never in other
	partition.
	(lto_output_varpool_node): Likewise.
	* lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
	forgotten initializers.
	* ipa.c (process_references): Handle external vars.
	(symtab_remove_unreachable_nodes): Update to handle external vars.
	(varpool_externally_visible_p): External vars are externally visible.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
	* varpool.c (varpool_remove_node): Remove constructor.
	(decide_is_variable_needed): Handle externals.
	(varpool_remove_unreferenced_decls): Likewise.

	* lto-partition.c (add_references_to_partition): Handle external vars.
	(partition_varpool_node_p): Likewise.
	(lto_promote_cross_file_statics): Do not promote externals.

From-SVN: r187631
2012-05-17 16:37:33 +00:00
Paolo Carlini f9eead1f89 re PR c++/53371 (rvalue reference type as exception-declaration)
/cp
2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53371
	* except.c (is_admissible_throw_operand): Rename to
	is_admissible_throw_operand_or_catch_parameter and handle
	catch parameter too.
	(expand_start_catch_block): Use it.
	(build_throw): Adjust.

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

	PR c++/53371
	* g++.dg/cpp0x/catch1.C: New.

From-SVN: r187630
2012-05-17 15:55:51 +00:00
Paolo Carlini d7faa110dd re PR objc++/53388 (Removal of build_min_nt breaks bootstrap for objc++)
2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR objc++/53388
	* objc-act.c (objc_get_class_reference, objc_build_message_expr):
	Use build_min_nt_loc.

From-SVN: r187629
2012-05-17 15:28:53 +00:00
Manuel López-Ibáñez 9b095bf15c c.opt (--pedantic-errors,-pedantic-errors): Do not handle here.
2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>

c-family/
	* c.opt (--pedantic-errors,-pedantic-errors): Do not handle here.
	* c-opts.c (c_common_handle_option): Do not handle explicitly
	Wreturn-type, Wwrite-strings, warn_ecpp, and -pedantic-errors.
gcc/
	* opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
	(enable_warning_as_error): Do not special case Wuninitialized.
	* optc-gen.awk: Add sanity checks.

From-SVN: r187628
2012-05-17 11:50:37 +00:00
Paolo Carlini f330f5991e re PR c++/44516 (improve error message when no matching operator)
gcc/cp
2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44516
	* typeck.c (build_x_array_ref, build_x_conditional_expr,
	build_x_compound_expr, build_x_modify_expr): Add location_t parameter.
	(finish_class_member_access_expr, build_x_indirect_ref,
	build_x_binary_op, build_x_compound_expr_from_list,
	build_x_compound_expr_from_vec): Adjust callers.
	* tree.c (build_min_nt_loc): New.
	(build_min_nt): Remove.
	* typeck2.c (build_x_arrow): Adjust callers.
	* pt.c (tsubst_qualified_id, tsubst_omp_for_iterator,
	tsubst_copy_and_build): Likewise.
	* semantics.c (finish_mem_initializers, handle_omp_for_class_iterator,
	 finish_omp_atomic): Likewise.
	* decl2.c (grok_array_decl, build_anon_union_vars): Adjust.
	* parser.c (cp_parser_question_colon_clause,
	cp_parser_assignment_expression, cp_parser_expression,
	cp_parser_template_id, cp_parser_omp_for_loop): Likewise.
	* cp-tree.h: Update.

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

	PR c++/44516
	* g++.dg/parse/error48.C: New.
	* g++.dg/template/crash89.C: Adjust dg-error line numbers.
	* g++.old-deja/g++.robertl/eb109.C: Add column info to dg-error string.

libstdc++
2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44516
	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust
	dg-error line number.

From-SVN: r187627
2012-05-17 10:29:46 +00:00
Jan Hubicka 5264f487f0 ipa-reference.c (is_proper_for_analysis): Do not check flags that might change as result of global optimization.
* ipa-reference.c (is_proper_for_analysis): Do not check flags
	that might change as result of global optimization.
	(analyze_function): Do not check analyzed and externally_visible
	flags; be happy about address dereferences.
	(propagate): Prune all_module_statics so it really contains just
	statics; prune all the local summaries.
	(ipa_reference_write_optimization_summary): Simplify.

From-SVN: r187626
2012-05-17 09:22:02 +00:00
Kwok Cheung Yeung de7ee1e98d m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
* config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm,
	51qm.
	* config/m68k/m68k-tables.opt: Regenerated.
	* doc/invoke.texi (M680x0 Options): Document.

From-SVN: r187625
2012-05-17 09:13:35 +00:00
Ian Lance Taylor d7b8f2b781 runtime: Print stack trace on panic or signal.
From-SVN: r187623
2012-05-17 05:30:25 +00:00
Patrick Marlier 8730965e42 [multiple changes]
2012-05-16  Dave Boutcher  <daveboutcher@gmail.com>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	* trans-mem.c (ipa_tm_transform_clone): Transform functions with
	indirect calls.

testsuite/
2012-05-16  Patrick Marlier  <patrick.marlier@gmail.com>

	* gcc.dg/tm/indirect-2.c: New test.

From-SVN: r187621
2012-05-17 02:57:56 +00:00
GCC Administrator e2f7d9f4ad Daily bump.
From-SVN: r187620
2012-05-17 00:17:42 +00:00
H.J. Lu e6d5f8c9c4 Regenerate configure files for libtool.m4 change
boehm-gc/

	* configure: Regenerated.

gcc/

	* configure: Regenerated.

libatomic/

	* configure: Regenerated.

libffi/

	* configure: Regenerated.

libgfortran/

	* configure: Regenerated.

libgomp/

	* configure: Regenerated.

libitm/

	* configure: Regenerated.

libjava/classpath/

	* configure: Regenerated.

libjava/

	* configure: Regenerated.

libmudflap/

	* configure: Regenerated.

libobjc/

	* configure: Regenerated.

libquadmath/

	* configure: Regenerated.

libssp/

	* configure: Regenerated.

libstdc++-v3/

	* configure: Regenerated.

lto-plugin/

	* configure: Regenerated.

zlib/

	* configure: Regenerated.

From-SVN: r187616
2012-05-16 15:11:18 -07:00
Andrew Pinski 763dc99dd3 gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under GIMPLE_ASSIGN.
2012-05-16  Andrew Pinski  <apinski@cavium.com>

	* gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
	GIMPLE_ASSIGN.

From-SVN: r187608
2012-05-16 13:22:03 -07:00
David S. Miller 0e2b0f75cc Fix var tracking ICE due to reorg.
If during reorg we delete a code label, and as a result we decide to
delete all the code following that label, we hit this condition in
jump.c:delete_related_insns():

  if (was_code_label && prev && BARRIER_P (prev))                                

which passes and then we proceed to delete insns until we hit a
non-deleted code label.

During this traversal, we can end up deleting a CALL, but in doing so
we will leave the var tracking note for the call arguments around.

Later in dwarf2_var_location() we will ICE, because we can't find the
CALL when we search backwards for it.

The note searching scheme in the fix below is cribbed from code in
try_split() which has to handle a similar problem.

gcc/

	* jump.c (delete_related_insns): If we remove a CALL, make sure
	we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.

From-SVN: r187606
2012-05-16 13:11:46 -07:00
Tobias Burnus e10f759e19 unix.c (tempfile_open): Pass mode to "open" for O_CREAT.
2012-05-16  Tobias Burnus  <burnus@net-b.de>

        * io/unix.c (tempfile_open): Pass mode to "open" for O_CREAT.

From-SVN: r187604
2012-05-16 20:39:34 +02:00
Olivier Hainque 4677d2eb61 Makefile.in (install-unwind_h): Rename into ...
libgcc/
        * Makefile.in (install-unwind_h): Rename into ...
        (install-unwind_h-forbuild): New target.
        (all): Use it instead of the former install-unwind_h.
        (install-unwind_h): Reinstate, copy to user install destination
        for include files, not to the internal gcc object directory one.
        (install-leaf): Depend on it.

From-SVN: r187599
2012-05-16 15:36:08 +00:00
Ian Lance Taylor eaca667ecf log/syslog: Fix name of C function syslog_c.
From Rainer Orth.

From-SVN: r187596
2012-05-16 14:52:03 +00:00
Bill Schmidt f002c19630 re PR tree-optimization/53217 (internal compiler error: verify_ssa failed)
gcc:

2012-05-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/53217
	* tree-ssa-reassoc.c (bip_map): New static variable.
	(possibly_move_powi): Move feeding multiplies with __builtin_powi call.
	(attempt_builtin_powi): Save feeding multiplies on a stack.
	(reassociate_bb): Create and destroy bip_map.

gcc/testsuite:

2012-05-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/53217
	* gfortran.dg/pr53217.f90: New test.

From-SVN: r187595
2012-05-16 14:39:32 +00:00
Olivier Hainque 8294b6fe4d Makefile.tpl (gcc-no-fixedincludes): Rename into ...
toplevel/
	* Makefile.tpl (gcc-no-fixedincludes): Rename into ...
	(gcc-install-no-fixedincludes): Now forwarder to local target in gcc/
	(install-no-fixedincludes): Adjust accordingly.
	* Makefile.in: Regenerate.

	gcc/
	* Makefile.in (install-no-fixedincludes): New target, former toplevel
	gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
	Add comments and improve stamp preservation across the whole sequence.
	(stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.

From-SVN: r187594
2012-05-16 13:37:14 +00:00
Richard Guenther 6b18b1a37a tree-inline.c (insert_init_stmt): Do not call mark_symbols_for_renaming.
2012-05-16  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (insert_init_stmt): Do not call
	mark_symbols_for_renaming.
	(setup_one_parameter): Avoid initializing unused parameters.
	(declare_return_variable): Properly handle DECL_BY_REFERENCE
	return vars in SSA form.

From-SVN: r187593
2012-05-16 13:36:07 +00:00
Richard Guenther 00d9266fad tree-flow.h (get_virtual_var): Remove.
2012-05-16  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (get_virtual_var): Remove.
	* tree-dfa.c (get_virtual_var): Likewise.

From-SVN: r187592
2012-05-16 13:31:39 +00:00
Richard Guenther c334023f37 tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Remove set-only bitmap of new names.
2012-05-16  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
	Remove set-only bitmap of new names.
	(slpeel_tree_peel_loop_to_edge): Likewise.  Do not set
	CFG hooks.
	* tree-flow.h (ssa_names_to_replace): Remove.
	* tree-into-ssa.c (ssa_names_to_replace): Likewise.

From-SVN: r187591
2012-05-16 13:21:38 +00:00
Richard Guenther a952cc068c re PR tree-optimization/53364 (Wrong code generation)
2012-05-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53364
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
	detect a view-conversion of the decl.

	* g++.dg/torture/pr53364.C: New testcase.

From-SVN: r187590
2012-05-16 13:11:01 +00:00
Georg-Johann Lay 219d42f11a re PR testsuite/52641 (Test cases fail for 16-bit int targets)
PR testsuite/52641
	* gcc.dg/pr52549.c: Fix test for long != void*
	* gcc.c-torture/execute/pr52979-1.x: New file.
	* gcc.c-torture/execute/pr52979-2.x: New file.

From-SVN: r187588
2012-05-16 12:46:36 +00:00
Dodji Seketeli 0b2c4be5fd PR preprocessor/7263 - Avoid pedantic warnings on system headers macro tokens
Now that we track token locations accross macro expansions, it would
be cool to be able to fix PR preprocessor/7263 for real.  That is,
consider this example where we have a system header named header.h
like this:

	#define _Complex __complex__ #define _Complex_I 1.0iF

and then a normal C file like this:

    #include "header.h"

    static _Complex float c = _Complex_I;

If we compile the file with -pedantic, the usages of _Complex or
_Complex_I should not trigger any warning, even though __complex__ and
the complex literal are extensions to the standard C.

They shouldn't trigger any warning because _Complex and _Complex_I are
defined in a system header (and expanded in normal user code).

To be able to handle this, we must address two separate concerns.

First, warnings about non-standard usage of numerical literals are emitted
directly from within libcpp.  So we must teach libcpp's parser for numerical
literals to use virtual locations, instead of the spelling
location it uses today.  Once we have that, as the diagnostics machinery
already knows how to avoid emitting errors happening on tokens that come from
system headers, we win.

Second, there is the issue of tracking locations for declaration
specifiers, like the "_Complex" in the declaration:

	static _Complex float c;

For that, we need to arrange for each possible declaration specifier
to have its own location, because otherwise, we'd warn on e.g, on:

    _Complex float c;

but not on:

    static _Complex float c;

So this patch addresses the two concerns above.  It's actually a
follow-up on an earlier patch[1] I wrote as part of my initial work on
virtual locations.  We then agreed[2] that the second concern was
important to address before the patch could get a chance to go in.

[1]: http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00957.html
[2]: http://gcc.gnu.org/ml/gcc-patches/2011-10/msg00264.html

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

libcpp/

	PR preprocessor/7263
	* include/cpplib.h (cpp_classify_number): Take a location
	parameter.
	* expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
	macros that take a location parameter.
	(cpp_classify_number): Take a (virtual) location parameter.  Use
	it for diagnostics.  Adjust comments.
	(eval_token): Take a location parameter.  Pass it to
	cpp_classify_number and to diagnostic routines.
	(_cpp_parse_expr): Use virtual locations of tokens when parsing
	expressions.  Pass a virtual location to eval_token and to
	diagnostic routines.

gcc/c-family/

	PR preprocessor/7263
	* c-lex.c (c_lex_with_flags):  Pass a virtual location to the call
	to cpp_classify_number.  For diagnostics, use the precise location
	instead of the global input_location.

gcc/
	PR preprocessor/7263
	* c-tree.h (enum c_declspec_word): Declare new enum.
	(struct c_declspecs::locations): New member.
	(declspecs_add_qual, declspecs_add_scspec)
	(declspecs_add_addrspace, declspecs_add_alignas): Take a new
	location parameter.
	* c-decl.c (build_null_declspecs): Initialize the new struct
	c_declspecs::locations member.
	(declspecs_add_addrspace): Take a location parameter for the
	address space.  Store it onto declaration specifiers.
	(declspecs_add_qual): Likewise, take a location parameter for the
	qualifier.
	(declspecs_add_type): Likewise, take a location parameter for the
	type specifier.
	(declspecs_add_scspec): Likewise, take a location parameter for
	the storage class specifier.
	(declspecs_add_attrs): Likewise, take a location parameter for the
	first attribute.
	(declspecs_add_alignas): Likewise, take a location parameter for
	the alignas token.
	(finish_declspecs): For diagnostics, use the location of the
	relevant declspec, instead of the global input_location.
	* c-parser.c (c_parser_parameter_declaration): Pass the precise
	virtual location of the declspec to the declspecs-setters.
	(c_parser_declspecs): Likewise.  Avoid calling c_parser_peek_token
	repeatedly.

gcc/cp/

	PR preprocessor/7263
	* cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all
	the possible declarator specifiers so far.
	(struct cp_decl_specifier_seq::locations): Declare new member.
	(cp_decl_specifier_seq::{specs, type_location}): Remove.
	(decl_spec_seq_has_spec_p): Declare new function.
	* parser.c (cp_parser_check_decl_spec): Remove.
	(set_and_check_decl_spec_loc): Define new static function.
	(decl_spec_seq_has_spec_p): Define new public function.
	(cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt)
	(cp_parser_type_specifier, cp_parser_simple_type_specifier)
	(cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
	(cp_parser_alias_declaration): Set the locations for each
	declspec, using set_and_check_decl_spec_loc.
	(cp_parser_explicit_instantiation, cp_parser_init_declarator)
	(cp_parser_member_declaration, cp_parser_init_declarator): Use the
	new declspec location for specifiers.  Use the new
	decl_spec_seq_has_spec_p.
	(cp_parser_type_specifier_seq): Use the new
	set_and_check_decl_spec_loc.  Stop using
	cp_parser_check_decl_spec.  Use the new decl_spec_seq_has_spec_p.
	(, cp_parser_init_declarator): Use the new
	set_and_check_decl_spec_loc.
	(cp_parser_single_declaration, cp_parser_friend_p)
	(cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration):
	Use the new decl_spec_seq_has_spec_p.
	* decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p.  Use
	the more precise ds_redefined_builtin_type_spec location for
	diagnostics about re-declaring C++ built-in types.
	(start_decl, grokvardecl, grokdeclarator): Use the new
	decl_spec_seq_has_spec_p.

gcc/testsuite/

	PR preprocessor/7263
	* gcc.dg/binary-constants-2.c: Run without tracking locations
	accross macro expansion.
	* gcc.dg/binary-constants-3.c: Likewise.
	* gcc.dg/cpp/sysmac2.c: Likewise.
	* testsuite/gcc.dg/nofixed-point-2.c: Adjust for more precise
	location.
	* gcc.dg/cpp/syshdr3.c: New test.
	* gcc.dg/cpp/syshdr3.h: New header for the new test above.
	* gcc.dg/system-binary-constants-1.c: New test.
	* gcc.dg/system-binary-constants-1.h: New header for the new test
	above.
	* g++.dg/cpp/syshdr3.C: New test.
	* g++.dg/cpp/syshdr3.h: New header the new test above.
	* g++.dg/system-binary-constants-1.C: New test.
	* g++.dg/system-binary-constants-1.h: New header the new test
	above.

From-SVN: r187587
2012-05-16 12:51:15 +02:00
Igor Zamyatin 40295cc722 configure.ac: Stack protector enabling for Android targets.
* configure.ac: Stack protector enabling for Android targets.
        * configure: Regenerate.

From-SVN: r187586
2012-05-16 09:59:04 +00:00
Olivier Hainque a224c14871 e500-double.h: Really remove.
* config/rs6000/e500-double.h: Really remove.

From-SVN: r187585
2012-05-16 09:21:27 +00:00
Richard Sandiford a36b270612 ira.c (pseudo_move_insn): Delete.
gcc/
	* ira.c (pseudo_move_insn): Delete.
	(find_moveable_pseudos): Don't set it.
	(move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
	the definitions of the original pseudo.  Delete all of them.

From-SVN: r187582
2012-05-16 09:01:54 +00:00
Olivier Hainque a7c6c6d64d rs6000-opts.h (enum processor_type): Add PROCESSOR_PPC8548.
* config/rs6000/rs6000-opts.h (enum processor_type): Add
        PROCESSOR_PPC8548.
        * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
        * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
        * config/rs6000/8540.md: indicate that the units/patterns apply to
        ppc8548 as well.

        * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
        default_cpu into implicit_cpu, conveying what --with-cpu was passed at
        configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
        related flags,  check that what is queried is supported by the selected
        configuration. Rework the single/double_float and MASK_STRING resets to
        hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
        costs for PROCESSOR_PPC8548 as well.
        (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
        (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
        statement instead of a sequence of ifs.

        * config/rs6000/rs6000.h (TARGET_E500): Remove.
        (TARGET_NO_LWSYNC): Adjust accordingly.
        * config/rs6000/e500.h (TARGET_E500): Remove.
        (CHECK_E500_OPTIONS): Adjust accordingly.
        * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
        (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
        * config/rs6000/linuxspe.h: Likewise.
        * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
        superfluous comments.
        * config/rs6000/e500-double.h: Remove.

        * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
        default to with_cpu=8548 if --enable-e500-double, and to 8540
        otherwise.
        (set misc flags section): For powerpc*|rs6000*, remove inclusion
        of e500-double.h for --enable-e500-double.

From-SVN: r187581
2012-05-16 08:43:41 +00:00
Olivier Hainque af0a7a9227 Makefile.in (s-header-vars): Resort to -n instead of trailing -e d in sed invocation.
* Makefile.in (s-header-vars): Resort to -n instead of trailing
       -e d in sed invocation.

From-SVN: r187580
2012-05-16 08:23:58 +00:00
Ian Lance Taylor c39cbb22b0 debug/dwarf: Fix handling of LineSetFile.
From-SVN: r187578
2012-05-16 05:36:31 +00:00