Commit Graph

93477 Commits

Author SHA1 Message Date
Michael Matz
ce985b43db re PR middle-end/39976 (Big sixtrack degradation on powerpc 32/64 after revision r146817)
PR middle-end/39976
        * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
        (trivially_conflicts_p): New function.
        (insert_backedge_copies): Use it.

From-SVN: r147494
2009-05-13 20:14:44 +00:00
Janis Johnson
7de1d221ea c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
* c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
	(handle_stdc_pragma): Use new enum constant names.
	(handle_pragma_float_const_decimal64): Ditto.

From-SVN: r147492
2009-05-13 18:26:14 +00:00
Ian Lance Taylor
bfefafc6ae Makefile.in (build/gencheck.o): Depend upon all-tree.def, not tree.def.
* Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
	tree.def.

From-SVN: r147491
2009-05-13 17:40:51 +00:00
Steven G. Kargl
79bd194804 gfortran.h (gfc_code): Rename struct member label to label1.
2009-05-12  Steven G. Kargl  <kargl@gcc.gnu.org>

	* gfortran.h (gfc_code): Rename struct member label to label1.
	* dump-parse-tree.c (show_code_node): Update symbol.
	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto,
	gfc_trans_arithmetic_if)": Ditto.
	* resolve.c (gfc_resolve_blocks, resolve_code): Ditto.
	* match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label,
	gfc_match_assign, gfc_match_goto): Ditto.
	* parse.c (parse_do_block): Ditto.

From-SVN: r147489
2009-05-13 16:17:59 +00:00
Nathan Sidwell
286c4fcbc8 t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
* config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
	* config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
	multilibs.
	* config/m68k/m68k.h (FL_UCLINUX): Define.

From-SVN: r147478
2009-05-13 15:10:55 +00:00
Tobias Burnus
5c71a5e0e9 re PR fortran/34153 (Debugging: Cannot set breakpoint in comment lines or "END PROGRAM")
2009-05-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34153
        * gfortran.h (gfc_exec_op): Add EXEC_END_PROCEDURE.
        * dump-parse-tree.c (show_code_node): Use EXEC_END_PROCEDURE.
        * trans.c (gfc_trans_code): Ditto.
        * resolve.c (resolve_code): Ditto.
        * st.c (gfc_free_statement): Ditto.

From-SVN: r147477
2009-05-13 16:52:54 +02:00
Jan Hubicka
ebaa6ea7ad invoke.texi (-fwhole-file): Update docs.
* doc/invoke.texi (-fwhole-file): Update docs.

	* options.c (gfc_post_options): -fwhole-program imply -fwhole-file.

From-SVN: r147472
2009-05-13 13:43:32 +00:00
Ben Elliston
d68646978c Makefile.am (PCHFLAGS): Remove -Winvalid-pch.
* include/Makefile.am (PCHFLAGS): Remove -Winvalid-pch.
	* include/Makefile.in: Likewise.

From-SVN: r147459
2009-05-13 10:17:09 +10:00
GCC Administrator
43e450d4ea Daily bump.
From-SVN: r147458
2009-05-13 00:16:44 +00:00
Ben Elliston
420162073c compatibility.cc (_ZTIe, [...]): Change type to const void * const.
* src/compatibility.cc (_ZTIe, _ZTIPe, _ZTIPKe): Change type to
	const void * const.

From-SVN: r147455
2009-05-13 10:16:08 +10:00
Kaz Kojima
2b703e1aa2 sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns unless -fschedule-insns is specified.
* config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
	unless -fschedule-insns is specified.

From-SVN: r147454
2009-05-12 22:49:25 +00:00
Kaz Kojima
c353772305 re PR target/39561 (-mno-expand-cbranchdi broken)
PR target/39561
	* config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
	TARGET_EXPAND_CBRANCHDI4.
	* config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
	* config/sh/sh.opt (mexpand-cbranchdi): Remove.
	(cmpeqdi): Fix comment.

From-SVN: r147453
2009-05-12 22:47:03 +00:00
Tobias Burnus
2be517627a re PR fortran/40110 (Bind(C): gfortran rejects the questionable but formally correct INTEGER(C_CHAR))
2009-05-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40110
        * decl.c (gfc_match_kind_spec): Turn C kind error into a
        * warning.

2009-05-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40110
        * gfortran.dg/bind_c_usage_18.f90: Change dg-error into
        dg-warning.
        * gfortran.dg/c_kind_tests_2.f03: Ditto.
        * gfortran.dg/interop_params.f03: Ditto.

From-SVN: r147452
2009-05-13 00:42:45 +02:00
Kaz Kojima
cdeed45ae6 sh-protos.h (sh_legitimate_index_p): Declare.
* config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
	(sh_legitimate_address_p): Likewise.
	* config/sh/sh.c (sh_legitimate_index_p): New.
	(sh_legitimate_address_p): Likewise.
	* config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
	(REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
	(MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
	(MAYBE_BASE_REGISTER_RTX_P): New macro.
	(MAYBE_INDEX_REGISTER_RTX_P): Likewise.
	(BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
	(INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
	(GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
	(GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.

From-SVN: r147450
2009-05-12 22:41:54 +00:00
Edward Smith-Rowland
1195342643 status_cxx200x.xml: Note missing constexpr for random number engines...
2009-05-12  Edward Smith-Rowland  <3dw4rd@verizon.net>

        * doc/xml/manual/status_cxx200x.xml: Note missing constexpr for
	random number engines, complex, bitset, array, time utilities, and
	char_traits.

From-SVN: r147449
2009-05-12 22:16:52 +00:00
Jonathan Wakely
182da14a62 exception: Include nested_exception.h in C++0x mode.
2009-05-12  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* libsupc++/exception: Include nested_exception.h in C++0x mode.
	* libsupc++/nested_exception.h: New.
	* libsupc++/Makefile.am: Add new header.
	* libsupc++/Makefile.in: Regenerate.
	* testsuite/18_support/nested_exception/rethrow_nested.cc: New.
	* testsuite/18_support/nested_exception/throw_with_nested.cc: New.
	* testsuite/18_support/nested_exception/cons.cc: New.
	* testsuite/18_support/nested_exception/nested_ptr.cc: New.
	* testsuite/18_support/nested_exception/rethrow_if_nested.cc: New.
	* doc/xml/manual/status_cxx200x.xml: Adjust.

From-SVN: r147446
2009-05-12 22:08:00 +01:00
H.J. Lu
704bf7c8ae re PR target/37179 (gcc emits bad opcode 'ffreep')
PR target/37179:
	* Correct PR number for revision 147429.

From-SVN: r147441
2009-05-12 09:33:14 -07:00
Jan Hubicka
02f0b13a1f loop-36.c: Reduce amount of iterations to 2 so unrolling still happens.
* gcc.dg/tree-ssa/loop-36.c: Reduce amount of iterations to 2 so unrolling
	still happens.
	* gcc.dg/ipa/ipacost-1.c: Prevent inlining
	* gcc.dg/ipa/ipacost-2.c: Likewise.
	* gcc.dg/vect/slp-3.c: Loop is no longer unrolled.

	* tree-inline.c (estimate_operator_cost): Add operands;
	when division happens by constant, it is cheap.
	(estimate_num_insns): Loads and stores are not having cost of 0;
	EH magic stuff is cheap; when computing runtime cost of switch,
	use log2 base of amount of its cases; builtin_expect has cost of 0;
	compute cost for moving return value of call.
	(init_inline_once): Initialize time_based flags.
	* tree-inline.h (eni_weights_d): Add time_based flag.

From-SVN: r147436
2009-05-12 14:05:28 +00:00
Paolo Bonzini
ecb7f6de29 df-core.c: Update head documentation.
2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	* df-core.c: Update head documentation.

From-SVN: r147435
2009-05-12 13:47:26 +00:00
Michael Meissner
c24151ce62 Fix PR bootstrap/40118
From-SVN: r147434
2009-05-12 12:52:45 +00:00
David Billinghurst
8ce718667e default_format_1.f90: XFAIL on cygwin.
2009-05-12  David Billinghurst <billingd@gcc.gnu.org>

        * gfortran.dg/default_format_1.f90: XFAIL on cygwin.

From-SVN: r147430
2009-05-12 11:55:20 +00:00
Uros Bizjak
fbdf817d6b re PR target/37197 (-msse4 ICE on __builtin_parityl)
PR target/37197
	* config/i386/driver-i386.c (processor_signatures): New enum.
	(SIG_GEODE): Move from vendor_signatures to processor_signatures.
	(host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
	processor signature to detect geode processor.

From-SVN: r147429
2009-05-12 13:42:53 +02:00
Paolo Bonzini
5e8d18263d revert: optabs.c (prepare_cmp_insn): Temporarily disable test that causes spurious differences between trunk and...
2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	Revert:

	2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	* optabs.c (prepare_cmp_insn): Temporarily disable test that
	causes spurious differences between trunk and cond-optab branch.

From-SVN: r147426
2009-05-12 09:52:27 +00:00
Paolo Bonzini
f90b7a5a79 Merge cond-optab branch.
From-SVN: r147425
2009-05-12 09:43:48 +00:00
David Billinghurst
b7a0af6806 target-supports.exp (check_profiling_available): Return false for -p on *-*-cygwin* targets.
2009-05-12  David Billinghurst <billingd@gcc.gnu.org>

    * lib/target-supports.exp (check_profiling_available): Return
    false for -p on *-*-cygwin* targets.

From-SVN: r147421
2009-05-12 08:34:46 +00:00
Paolo Bonzini
1667049585 optabs.c (prepare_cmp_insn): Temporarily disable test that causes spurious differences between trunk and...
2009-05-12  Paolo Bonzini  <bonzini@gnu.org>

	* optabs.c (prepare_cmp_insn): Temporarily disable test that
	causes spurious differences between trunk and cond-optab branch.

From-SVN: r147418
2009-05-12 06:42:59 +00:00
Alexandre Oliva
4a4a4e9933 re PR target/37137 (unrecognized command line option "-minterlink-mips16")
ChangeLog:
PR target/37137
* Makefile.def (flags_to_pass): Remove redundant and incomplete
STAGE1_CFLAGS, STAGE2_CFLAGS, STAGE3_CFLAGS, and STAGE4_CFLAGS.
Add FLAGS_FOR_TARGET and BUILD_CONFIG.
(bootstrap_stage): Remove bootstrap-debug custom stages.  Turn
stage_configureflags, stage_cflags and stage_libcflags into
explicit Makefile macros.
* Makefile.tpl (HOST_EXPORTS, EXTRA_HOST_FLAGS): Pass GCJ and
GFORTRAN.
(POSTSTAGE1_HOST_EXPORTS): Add XGCC_FLAGS_FOR_TARGET and TFLAGS to
CC.  Set CC_FOR_BUILD from CC.
(BASE_TARGET_EXPORTS, RAW_CXX_TARGET_EXPORTS,
NORMAL_TARGET_EXPORTS): Move SYSROOT_CFLAGS_FOR_TARGET and
DEBUG_PREFIX_CFLAGS_FOR_TARGET from CFLAGS and CXXFLAGS to
XGCC_FLAGS_FOR_TARGET.  Add it along with TFLAGS to CC, CXX, GCJ,
and GFORTRAN.
(TFLAGS, STAGE_CFLAGS, STAGE_TFLAGS, STAGE_CONFIGURE_FLAGS): New.
(_LIBCFLAGS): Renamed to _TFLAGS.
(do-compare-debug, do-compare3-debug): Drop.
(CC, GCC_FOR_TARGET, CXX_FOR_TARGET, RAW_CXX_FOR_TARGET,
GCJ_FOR_TARGET, GFORTRAN_FOR_TARGET): Remove FLAGS_FOR_TARGET.
(FLAGS_FOR_TARGET, SYSROOT_CFLAGS_FOR_TARGET,
DEBUG_PREFIX_CFLAGS_FOR_TARGET): Move down.
(XGCC_FLAGS_FOR_TARGET): New.
(BASE_FLAGS_TO_PASS): Pass STAGEid_CFLAGS, STAGEid_TFLAGS and TFLAGS.
(EXTRA_HOST_FLAGS): Pass GCJ and GFORTRAN.
(POSTSTAGE1_FLAGS_TO_PASS): Move SYSROOT_CFLAGS_FOR_TARGET and
DEBUG_PREFIX_CFLAGS_FOR_TARGET from CFLAGS, CXXFLAGS, LIBCFLAGS,
LIBCXXFLAGS to XGCC_FLAGS_FOR_TARGET.    Add it along with TFLAGS
to CC, CXX, GCJ, and GFORTRAN.  Pass XGCC_FLAGS_FOR_TARGET and
TFLAGS.
(BUILD_CONFIG): Include if requested.
(all): Set TFLAGS on bootstrap.
(configure-stageid-prefixmodule): Pass TFLAGS, adjust FLAGS.
(all-stageid-prefixmodule): Likewise.
(do-clean, distclean-stageid): Set TFLAGS.
(restrap): Fix whitespace.
* Makefile.in: Rebuilt.
config/ChangeLog:
* multi.m4: Save CXX, GFORTRAN and GCJ in config.status.
* mt-gnu (CXXFLAGS_FOR_TARGET): Adjust.
* bootstrap-O1.mk: New.
* bootstrap-O3.mk: New.
* bootstrap-debug.mk: New.
gcc/ChangeLog:
PR target/37137
* doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
gcc/java/ChangeLog:
* Make-lang.in (GCJ): Renamed to...
(XGCJ): ... this.
libjava/ChangeLog:
* configure.ac: Insert libgcjdir in the GCJ passed in the
environment, rather than overriding completely.
* configure: Rebuilt.

From-SVN: r147415
2009-05-12 05:49:28 +00:00
Alexandre Oliva
72b9acff14 tree.c (iterative_hash_pointer): Delete.
* tree.c (iterative_hash_pointer): Delete.
(iterative_hash_expr): Short-circuit handling of NULL pointer.
Hash UIDs and versions of SSA names.  Don't special-case built-in
function declarations.

From-SVN: r147414
2009-05-12 05:43:51 +00:00
Ian Lance Taylor
b7dd69ac5b re PR bootstrap/40103 (CLooG header files are not -Wc++-compat ready)
PR bootstrap/40103
	* graphite.c: Force -Wc++-compat to only be a warning before
	#including "cloog/cloog.h".

From-SVN: r147407
2009-05-12 01:26:45 +00:00
GCC Administrator
1c3c34dbec Daily bump.
From-SVN: r147404
2009-05-12 00:16:46 +00:00
H.J. Lu
66d41e0ce5 re PR tree-optimization/38632 (ICE with try/catch and -ftree-parallelize-loops)
2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR tree-optimization/38632
	* g++.dg/tree-ssa/pr38632.C: New.

From-SVN: r147401
2009-05-11 17:09:17 -07:00
Martin Jambor
ed102b70fe ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
2009-05-11  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.

From-SVN: r147396
2009-05-11 22:58:08 +02:00
Jan Hubicka
08f1af2ed0 pr21829.c: Simplify matching since we now optimize better.
* gcc.dg/tree-ssa/pr21829.c: Simplify matching since
	we now optimize better.
	* gcc.dg/Wunreachable-8.c: Bogus warnings now come
	out at different places.
	* gcc.dg/vect/vect-92.c: Increase loop iteration count to prevent
	unroling.
	* gcc.dg/vect/vect-76.c: Likewise.
	* gcc.dg/vect/vect-70.c: Likewise.
	* gcc.dg/vect/vect-66.c: Likewise.
	* gcc.dg/vect/no-section-anchors-vect-66.c: Likewise.
	* gcc.dg/vect/slp-3.c: One of loops gets now fully unrolled.
	* tree-ssa-loop-ivcanon.c: Include target.h
	(struct loop_size): new structure.
	(constant_after_peeling): New predicate.
	(tree_estimate_loop_size): New function.
	(estimated_unrolled_size): Rewrite for new estimates.
	(try_unroll_loop_completely): Use new estimates.
	* Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h

From-SVN: r147395
2009-05-11 20:54:56 +00:00
Andrew Pinski
a7d39bd39c spu-c.c (spu_categorize_keyword): Update for recent libcpp interface change.
2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
        libcpp interface change.
        (spu_macro_to_expand): Likewise.

From-SVN: r147393
2009-05-11 12:14:08 -07:00
H.J. Lu
26ab6a9370 re PR middle-end/40080 (error: missing callgraph edge for call stmt)
2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/40080
	* gcc.c-torture/compile/pr40080.c: New.

From-SVN: r147389
2009-05-11 09:37:07 -07:00
Paolo Bonzini
f5a1f0d01f re PR middle-end/40026 (ICE during gimplify_init_constructor)
2009-05-11  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/40026
	* gimplify.c (gimplify_init_constructor): Change initial conditional
	to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
	optimize_compound_literals_in_ctor.

testsuite:
2009-05-11  Paolo Bonzini  <bonzini@gnu.org>

	* gcc.c-torture/compile/pr40026.c: New testcase.

From-SVN: r147386
2009-05-11 16:05:45 +00:00
Nathan Sidwell
c260f01fcc m68k-devices.def (52274, [...]): New devices.
* config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
	New devices.
	* doc/invoke.texi (M680x0 Options): Document new coldfire cpus.

From-SVN: r147383
2009-05-11 15:46:54 +00:00
Steve Ellcey
e4bf01a404 * resolve.c (check_host_association): Initialize tail.
From-SVN: r147381
2009-05-11 15:23:25 +00:00
Janus Weil
cbb9a26e0a re PR fortran/40089 (Public type with public component which has a private type)
2009-05-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/40089
	* resolve.c (resolve_fl_derived): Only return FAILURE if
	gfc_notify_std fails.


2009-05-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/40089
	* gfortran.dg/proc_ptr_comp_7.f90: New.

From-SVN: r147379
2009-05-11 16:14:38 +02:00
H.J. Lu
df398a3708 tree-vect-data-refs.c (vect_analyze_group_access): Use HOST_WIDE_INT for gap.
2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-vect-data-refs.c (vect_analyze_group_access): Use
	HOST_WIDE_INT for gap.

From-SVN: r147375
2009-05-11 06:51:14 -07:00
Ira Rosen
4da39468e7 re PR tree-optimization/40074 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:944)
PR tree-optimization/40074
	* tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
	account in group size and step comparison.

From-SVN: r147372
2009-05-11 12:33:13 +00:00
Richard Guenther
4effdf02d4 passes.c (init_optimization_passes): Strip now incorrect comment.
2009-05-11  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Strip now incorrect comment.
	(execute_function_todo): Do not set PROP_alias.
	* tree-pass.h (PROP_alias): Remove.
	* tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
	* tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
	* tree-nrv.c (pass_return_slot): Likewise.
	* tree-object-size.c (pass_object_sizes): Likewise.
	* tree-ssa-dom.c (pass_dominator): Likewise.
	(pass_phi_only_cprop): Likewise.
	* tree-ssa-dse.c (pass_dse): Likewise.
	* tree-ssa-phiopt.c (pass_phiopt): Likewise.
	(pass_cselim): Likewise.
	* tree-ssa-pre.c (pass_pre): Likewise.
	(pass_fre): Likewise.
	* tree-ssa-reassoc.c (pass_reassoc): Likewise.
	* tree-ssa-sink.c (pass_sink_code): Likewise.
	* tree-stdarg.c (pass_stdarg): Likewise.
	* tree-tailcall.c (pass_tail_calls): Likewise.
	* tree-vrp.c (pass_vrp): Likewise.

From-SVN: r147371
2009-05-11 12:19:00 +00:00
Ian Lance Taylor
24b97832e7 basic-block.h (enum profile_status): Break out of struct control_flow_graph.
./:	* basic-block.h (enum profile_status): Break out of struct
	control_flow_graph.
	* cgraph.h (struct inline_summary): Break out of struct
	cgraph_local_info.
	* cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
	of struct cgraph_order_sort.
	* combine.c (enum undo_kind): New enum, broken out of struct
	undo.
	* cse.c (struct branch_path): Break out of struct
	cse_basic_block_data.
	* except.h (enum eh_region_type): Break out of struct eh_region.
	* gcc.c (enum add_del): Break out of struct modify_target.
	* genrecog.c (enum decision_type): Break out of struct
	decision_test.
	* ggc-page.c (struct ggc_pch_ondisk): Break out of struct
	ggc_pch_data.
	* matrix-reorg.c (struct free_info): Break out of struct
	matrix_info.
	* regmove.c (enum match_use): New enum, broken out of struct
	match.
	* sched-int.h (enum post_call_group): New enum, broken out of
	struct deps.
	(struct deps_reg): Break out of struct deps.
	* target.h (struct asm_int_op): Break out of struct gcc_target.
	* tree-eh.c (struct goto_queue_node): Break out of struct
	leh_tf_state.
	* tree-inline.h (enum copy_body_cge_which): Break out of
	copy_body_data.
	* tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.

	* c-decl.c (in_struct, struct_types): New static variables.
	(pushtag): Add loc parameter.  Change all callers.
	(lookup_tag): Add ploc parameter.  Change all callers.
	(check_compound_literal_type): New function.
	(parser_xref_tag): Add loc parameter.  Change all callers.  If
	-Wc++-compat, warn about struct/union/enum types defined within a
	struct or union.
	(start_struct): Add enclosing_in_struct, enclosing_struct_types,
	and loc parameters.  Change all callers.  Change error calls to
	error_at, using loc.  For a redefinition, if the location of the
	original definition is known, report it.  Set in_struct and
	struct_types.  If -Wc++-compat warn if in sizeof, typeof, or
	alignof.
	(finish_struct): Add new parameters enclosing_in_struct and
	enclosing_struct_types.  Change all callers.  Set
	C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
	in the struct.  If in a struct, add this struct to struct_types.
	(start_enum): Add loc parameter.  Change all callers.  Use
	error_at for errors, using loc.  For a redefinition, if the
	location of the original definition is known, report it.  If in a
	struct, add this enum type to struct_types.  If -Wc++-compat warn
	if in sizeof, typeof, or alignof.
	* c-parser.c (disable_extension_diagnostics): Disable
	-Wc++-compat.
	(enable_extension_diagnostics): Reenable -Wc++-compat if
	appropriate.
	(c_parser_enum_specifier): Get enum location for start_enum.
	(c_parser_struct_or_union_specifier): Get struct location for
	start_struct.  Save in_struct and struct_types status between
	start_struct and finish_struct.
	(c_parser_cast_expression): Get location of cast.
	(c_parser_alignof_expression): Get location of type.
	(c_parser_postfix_expression): Likewise.
	(c_parser_postfix_expression_after_paren_type): Add type_loc
	parameter.  Change all callers.  Call
	check_compound_literal_type.  Use type_loc for error about
	variable size type.
	* c-typeck.c (build_external_ref): If -Wc++-compat, warn about a
	use of an enum constant from an enum type defined in a struct or
	union.
	(c_cast_expr): Add loc parameter.  Change all callers.  If
	-Wc++-compat, warn about defining a type in a cast.
	* c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
	(start_enum, start_struct, finish_struct): Update declarations.
	(parser_xref_tag, c_cast_expr): Update declarations.
	(check_compound_literal_type): Declare.
fortran/:
	* gfortran.h (enum gfc_omp_sched_kind): New enum, broken out of
	gfc_omp_clauses.
	(enum gfc_omp_default_sharing): Likewise.
	* module.c (enum gfc_rsym_state): New enum, broken out of
	pointer_info.
	(enum gfc_wsym_state): Likewise.
	* parse.c (enum state_order): New enum, broken out of st_state.
objc/:
	* objc-act.c (objc_building_struct): New static variable.
	(objc_in_struct, objc_struct_types): New static variables.
	(objc_start_struct, objc_finish_struct): New static functions.
	(generate_struct_by_value_array): Call objc_start_struct instead
	of start_struct, and call objc_finish_struct instead of
	finish_struct.
	(objc_build_struct, build_objc_symtab_template): Likewise.
	(build_module_descriptor): Likewise.
	(build_next_objc_exception_stuff): Likewise.
	(build_protocol_template): Likewise.
	(build_method_prototype_list_template): Likewise.
	(build_method_prototype_template): Likewise.
	(build_category_template, build_selector_template): Likewise.
	(build_class_template, build_super_template): Likewise.
	(build_ivar_template, build_ivar_list_template): Likewise.
	(build_method_list_template): Likewise.
	(build_method_template): Likewise.
objcp/:
	* objcp-decl.h (start_struct): Add three new, ignored, macro
	parameters.
	(finish_struct): Add two new, ignored, macro parameters.
testsuite/:
	* gcc.dg/Wcxx-compat-7.c: New testcase.
	* gcc.dg/Wcxx-compat-8.c: New testcase.
	* gcc.dg/c99-tag-1.c: Recognize new "originally defined here"
	notes
	* gcc.dg/pr17188-1.c: Likewise.
	* gcc.dg/pr39084.c: Likewise.

From-SVN: r147358
2009-05-11 01:02:40 +00:00
GCC Administrator
76a5dd01eb Daily bump.
From-SVN: r147356
2009-05-11 00:16:46 +00:00
Ben Elliston
7a2738fadf rs6000-c.c (altivec_categorize_keyword): Update for recent libcpp interface change.
* config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
	for recent libcpp interface change.
	(rs6000_macro_to_expand): Likewise.

From-SVN: r147352
2009-05-11 09:17:55 +10:00
Michael Matz
af618949a4 re PR target/40031 (ARM broken with addresses in PHIs with -fPIC)
PR target/40031
        * config/arm/arm.c (require_pic_register): Emit on entry
        edge, not at entry of function.
testsuite/
        * gcc.dg/pr40031.c: New test.

From-SVN: r147350
2009-05-10 18:40:16 +00:00
Richard Guenther
b7d7a473ab re PR tree-optimization/40081 (verify_stmts failed with -O2)
2009-05-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40081
	Revert
	* tree-sra.c (instantiate_element): Instantiate scalar replacements
	using the main variant of the element type.  Do not fiddle with
	TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.

	* tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
	structs with volatile fields.

From-SVN: r147349
2009-05-10 16:40:55 +00:00
Eric Botcazou
ade1f226fa Remove junk file
From-SVN: r147348
2009-05-10 16:39:39 +00:00
Jan Hubicka
078c364462 tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
* tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
	(estimate_move_cost): Assert that it does not get called for VOID_TYPE_P.
	(estimate_num_insns): Skip VOID types in argument handling.
	(optimize_inline_calls): Delete unreachable blocks and verify that
	callgraph is valid.

From-SVN: r147344
2009-05-10 15:20:27 +00:00
Jan Hubicka
ea5783ee95 Fix changelog entry.
From-SVN: r147343
2009-05-10 15:13:23 +00:00