Commit Graph

70413 Commits

Author SHA1 Message Date
Victor Kaplansky
c28e913a8b re PR regression/32582 (Bootstrap with vectorization enabled fails with ICE on PPC)
2007-11-13  Victor Kaplansky  <victork@il.ibm.com>

        PR tree-optimization/32582
        * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize

From-SVN: r130138
2007-11-13 13:53:33 +00:00
GCC Administrator
bfb6c26c07 Daily bump.
From-SVN: r130129
2007-11-13 00:17:30 +00:00
Jakub Jelinek
ffbf581329 re PR c++/29225 (ICE in gimplify_expr, at gimplify.c:4513)
PR c++/29225
	* call.c (build_new_op): Call resolve_args before calling
	build_over_call.

	* g++.dg/template/crash72.C: New test.

From-SVN: r130126
2007-11-13 00:17:18 +01:00
Danny Smith
d32034a78d extend.texi (dllimport): Document that pointers to dllimport'd functions can be used as constant.
* doc/extend.texi (dllimport): Document that pointers to dllimport'd
	functions can be used as constant.

From-SVN: r130124
2007-11-12 22:05:38 +00:00
Uros Bizjak
6ee015bfb5 * ChangeLog: Fix whitespace.
From-SVN: r130123
2007-11-12 22:48:57 +01:00
Eric Botcazou
2aac3a0171 re PR rtl-optimization/34035 (ICE in calc_dfs_tree with -O2 -fnon-call-exceptions -ffast-math -fno-gcse)
PR rtl-optimization/34035
	* cse.c (cse_cfg_altered): New global variable.
	(cse_jumps_altered): Make boolean.
	(recorded_label_ref): Likewise.
	(cse_insn): Adjust for above changes.
	(cse_extended_basic_block): Likewise.  Set cse_cfg_altered
	if dead edges have been purged.
	(cse_main): Change return value specification and adjust code.
	(rest_of_handle_cse): Adjust for above change.
	(rest_of_handle_cse2): Likewise.
	* gcse.c (rest_of_handle_gcse): Likewise.

From-SVN: r130122
2007-11-12 21:21:37 +00:00
Dwarakanath Rajagopal
d51fba8ef2 i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to get the appropriate suffix for the coms* instruction.
2007-11-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
            Michael Meissner  <michael.meissner@amd.com>

        * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix>
        to get the appropriate suffix for the coms* instruction.
        (sse5_pcmov_<mode>): Restrict operands of pcmov
        for scalar case to be only xmm registers and not memory.

        * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
        constraints to follow the mnemonics for the pcmov instruction



Co-Authored-By: Michael Meissner <michael.meissner@amd.com>

From-SVN: r130120
2007-11-12 20:41:14 +00:00
Richard Sandiford
fd0d4c1fbb re PR target/34042 (Segfault in mips_cannot_change_mode_class)
gcc/
	PR target/34042
	* config/mips/mips.c (mips_return_fpr_single): New function.
	(mips_function_value): Use it when returning single-field
	aggregates in FPRs.
	(mips_expand_call): Handle the PARALLELs created by
	mips_return_fpr_single.

From-SVN: r130119
2007-11-12 20:05:46 +00:00
Joseph Myers
3aa64f2ccc * de.po, zh_CN.po: Update.
From-SVN: r130104
2007-11-12 16:37:32 +00:00
Richard Guenther
916c75b473 re PR middle-end/34070 (Wrong code for (int)x%4)
2007-11-12  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34070
	* fold-const.c (fold_binary): If testing for non-negative
	operands with tree_expr_nonnegative_warnv_p make sure to
	use op0 which has all (sign) conversions retained.

	* gcc.c-torture/execute/pr34070-1.c: New testcase.
	* gcc.c-torture/execute/pr34070-2.c: Likewise.

From-SVN: r130098
2007-11-12 14:16:05 +00:00
Richard Guenther
65648dd47e re PR tree-optimization/34027 (-Os code size nearly doubled)
2007-11-12  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34027
	* fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
	(fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.

	* gcc.dg/pr34027-1.c: New testcase.
	* gcc.dg/pr34027-2.c: Likewise.

From-SVN: r130097
2007-11-12 13:24:06 +00:00
Ira Rosen
50d76c246f re PR tree-optimization/33953 (internal compiler error: vector VEC(tree,base) index domain error, in vectorizable_operation at tree-vect-transform.c:4017)
PR tree-optimization/33953
	* tree-vect-transform.c (vectorizable_operation): In case of SLP,
	allocate vec_oprnds1 according to the number of created vector
	statements. In case of shift with scalar argument, store scalar operand
	for every vector statement to be created for the SLP node. Fix a
	comment.

From-SVN: r130096
2007-11-12 09:32:13 +00:00
Tom Tromey
f1e207107a re PR c++/17577 (#pragma implementation no longer diagnoses use after file to which it applies)
gcc/cp
	PR c++/17577:
	* lex.c (handle_pragma_implementation): Use cpp_included_before.
gcc/testsuite
	PR c++/17577:
	* g++.dg/ext/pr17577.h: New file.
	* g++.dg/ext/pr17577.C: New file.
libcpp
	PR c++/17557:
	* include/cpplib.h (cpp_included_before): Declare.
	* files.c (struct file_hash_entry) <location>: New field.
	(_cpp_find_file): Initialize new field.
	(make_cpp_dir): Likewise.
	(cpp_included_before): New function.

From-SVN: r130093
2007-11-12 00:38:48 +00:00
Manuel López-Ibáñez
b131ad7c3d re PR c++/8570 (line number in error message is badly placed with illegal template friend declaration)
2007-11-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/8570
cp/
	* pt.c (redeclare_class_template): Update error message. Use a
	note to show the previous declaration.
	(tsubst_friend_class): Use the location of the friend template as
	the input location before calling redeclare_class_template.
testsuite/
	* g++.old-deja/g++.ns/template13.C: Update expected output.
	* g++.old-deja/g++.pt/friend23.C: Likewise.
	* g++.dg/warn/pr8570.C: New.

From-SVN: r130092
2007-11-12 00:28:41 +00:00
GCC Administrator
acd7ad0afc Daily bump.
From-SVN: r130090
2007-11-12 00:17:13 +00:00
Jakub Jelinek
09b1ccd6d8 re PR c++/34068 (ICE using pseudo-destructor for invalid expression)
PR c++/34068
	* semantics.c (finish_pseudo_destructor_expr): Handle
	object == error_mark_node.

	* g++.dg/template/pseudodtor4.C: New test.

From-SVN: r130087
2007-11-11 23:27:18 +01:00
GCC Administrator
d4b5dc8945 Daily bump.
From-SVN: r130080
2007-11-11 00:17:05 +00:00
Samuel Tardieu
14678e4662 a-tasatt.adb: Revert previous change for this file as it will generate an error when...
gcc/ada/
	* a-tasatt.adb: Revert previous change for this file as it will
	generate an error when this package is instantiated from a
	local context.

From-SVN: r130076
2007-11-10 22:20:15 +00:00
Joseph Myers
db171f6f50 be.po, [...]: Update.
* be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
	ru.po, sr.po, sv.po, tr.po, zh_CN.po, zh_TW.po: Update.

From-SVN: r130074
2007-11-10 18:36:27 +00:00
Francois-Xavier Coudert
1130e1607d * trans-common.c: Remove prototype for gfc_get_common.
From-SVN: r130073
2007-11-10 18:03:22 +00:00
Francois-Xavier Coudert
28762eb089 re PR fortran/33592 (FAIL: gfortran.dg/array_constructor_11.f90 -O1 execution test)
PR fortran/33592
	* trans.c (gfc_call_realloc): Fix the logic and rename variables.

From-SVN: r130072
2007-11-10 18:02:18 +00:00
Steven Bosscher
2272b24c41 gcse.c (CUID_INSN): Remove.
2007-11-10  Steven Bosscher  <stevenb.gcc@gmail.com>

	* gcse.c (CUID_INSN): Remove.
	(cuid_insn): Ditto.
	(alloc_gcse_mem): Don't allocate cuid_insn.
	(free_gcse_mem): Don't free cuid_insn.

From-SVN: r130071
2007-11-10 14:54:39 +00:00
Jakub Jelinek
78e4746337 re PR fortran/34020 (Bogus codegen for openmp atomics w/ indirects operands on IPF)
PR fortran/34020
	* gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
	nops.

	* testsuite/libgomp.fortran/pr34020.f90: New test.

From-SVN: r130069
2007-11-10 08:51:55 +01:00
Jakub Jelinek
416c991fdd re PR middle-end/34018 (ICE: verify_stmts failed)
PR middle-end/34018
	* tree-inline.h (copy_body_data): Add regimplify field.
	* tree-inline.c (copy_body_r): Set id->regimplify to true
	if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
	substitutions.
	(copy_bb): Clear id->regimplify before walk_tree, if it is
	set afterwards, regimplify the whole statement.

	* g++.dg/opt/inline14.C: New test.

From-SVN: r130068
2007-11-10 08:46:31 +01:00
Jakub Jelinek
6481b879ba re PR tree-optimization/33680 (ICE when compilling elbg.c from ffmpeg (vectorizer))
PR tree-optimization/33680
	* tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
	if the added cast involves variable length types.

	* gcc.c-torture/compile/20071108-1.c: New test.

From-SVN: r130067
2007-11-10 08:40:37 +01:00
Jakub Jelinek
3d9b2eb64f re PR c++/32241 (ICE trying to call x.~X(); in a template)
PR c++/32241
	* pt.c (tsubst_copy_and_build) <case COMPONENT_REF>: If object_type
	is not scalar type, let finish_class_member_access_expr handle
	diagnostics.  Pass BIT_NOT_EXPR argument to
	finish_pseudo_destructor_expr.  Handle SCOPE_REF properly.

	* g++.dg/template/pseudodtor3.C: New test.

From-SVN: r130066
2007-11-10 08:36:09 +01:00
Douglas Gregor
49b5e2f6b5 re PR c++/33510 (Array size of array with size determined by the initializer wrong with packs)
2007-11-09  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33510
	* decl.c (cp_complete_array_type): If any of the initializer
	elements are pack expansions, don't compute the array size yet.

2007-11-09  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33510
	* g++.dg/cpp0x/variadic-init.C: New.

From-SVN: r130065
2007-11-10 02:53:31 +00:00
GCC Administrator
a4d60af8e9 Daily bump.
From-SVN: r130063
2007-11-10 00:17:18 +00:00
Alexander Monakov
0a1766b289 Maxim Kuvyrkov <maxim@codesourcery.com>
* gcc/sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
	instead of TRUE_BARRIER for jumps.  Add register dependencies
	even when reg_pending_barrier is set.


Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>

From-SVN: r130052
2007-11-09 20:23:42 +03:00
Alexander Monakov
ac4a7e21ca haifa-sched.c (haifa_classify_insn): Rename to ...
* gcc/haifa-sched.c (haifa_classify_insn): Rename to ...
	(haifa_classify_rtx): ...  this.  Improve handling of COND_EXECs,
	handle PARALLELs by recursing.  Use it ...  
	(haifa_classify_insn): ...  here.  Reimplement.

From-SVN: r130050
2007-11-09 20:02:10 +03:00
Richard Guenther
76e910c6b7 bitmap.h (bitmap_single_bit_set_p): Declare.
2007-11-09  Richard Guenther  <rguenther@suse.de>

	* bitmap.h (bitmap_single_bit_set_p): Declare.
	* bitmap.c (bitmap_single_bit_set_p): New function.
	* tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
	(maybe_create_global_var): Use bitmap_empty_p.

From-SVN: r130045
2007-11-09 14:01:33 +00:00
Paolo Bonzini
de26695057 re PR rtl-optimization/34012 (Pessimization caused by fwprop)
PR rtl-optimization/34012
	* fwprop.c (try_fwprop_subst): Do not replace if the new
	SET_SRC has a higher cost than the old one.

	* gcc.target/i386/pr34012.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r130043
2007-11-09 14:02:25 +01:00
Eric Botcazou
96cdfb52ff re PR rtl-optimization/33732 (gcc.c-torture/execute/longlong.c execution at -O3)
PR rtl-optimization/33732
	* reload.c (push_reload): Check that the REG_DEAD note was referring
	to a hardreg or to a pseudo that has been assigned exactly one hardreg
	before considering it in order to select the reload register.
	(combine_reloads): Likewise.
	(find_dummy_reload): Likewise.

From-SVN: r130042
2007-11-09 12:49:55 +00:00
Richard Guenther
91a17a346e tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD.
2007-11-09  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (struct ptr_info_def): Make escape_mask a
	ENUM_BITFIELD.
	(struct ptr_info_def): Likewise.
	(enum escape_type): Also use bit zero.

From-SVN: r130041
2007-11-09 12:47:22 +00:00
Richard Guenther
6aaa40131a re PR target/33604 (Revision 119502 causes significantly slower results with 4.3/4.4 compared to 4.2)
2007-11-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33604
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Disregard changes in CV qualifiers of pointed to types for
	forward propagating ADDR_EXPRs.
	* tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
	expression.

	* g++.dg/tree-ssa/pr33604.C: New testcase.
	* gcc.dg/pr32721.c: Adjust pattern.

From-SVN: r130040
2007-11-09 12:32:20 +00:00
Richard Sandiford
06acf7d0ad dse.c (find_shift_sequence): Always choose an integer mode for new_mode.
gcc/
	* dse.c (find_shift_sequence): Always choose an integer mode for
	new_mode.
	(replace_read): Require both the read and store mode to be
	integer ones.  Remove a then-redundant FLOAT_P check.

gcc/testsuite/
	* gcc.target/mips/dse-1.c: Disable.

From-SVN: r130039
2007-11-09 12:11:48 +00:00
GCC Administrator
ea9d4a1937 Daily bump.
From-SVN: r130033
2007-11-09 00:17:22 +00:00
Richard Guenther
7d32e17a1a tree-dfa.c (remove_referenced_var): If removing a variable which has subvars...
2007-11-08  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (remove_referenced_var): If removing a
	variable which has subvars, also remove those from
	the referenced vars.  Do not create a variable annotation.

From-SVN: r130030
2007-11-08 22:35:44 +00:00
Bob Wilson
35a3be486a xtensa.c (xtensa_expand_prologue): Remove first argument for gen_entry calls.
* config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
	argument for gen_entry calls.
	* config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
	(entry): Use the new attribute value.  Remove unused first operand.

From-SVN: r130029
2007-11-08 22:08:02 +00:00
Joseph Myers
4665db2c36 * gcc.pot: Regenerate.
From-SVN: r130026
2007-11-08 21:15:16 +00:00
Tom Tromey
c7412148f7 c-parser.c (c_parser_translation_unit): Use location in error.
gcc
	* c-parser.c (c_parser_translation_unit): Use location in error.
	(c_parser_external_declaration): Likewise.
	(c_parser_declaration_or_fndef): Likewise.
	(c_parser_enum_specifier): Likewise.
	(c_parser_struct_or_union_specifier): Likewise.
	(c_parser_struct_declaration): Likewise.
	(c_parser_typeof_specifier): Likewise.
	(c_parser_parms_list_declarator): Likewise.
	(c_parser_asm_string_literal): Likewise.
	(c_parser_braced_init): Likewise.
	(c_parser_initelt): Likewise.
	(c_parser_compound_statement_nostart): Likewise.
	(c_parser_statement_after_labels): Likewise.
	(c_parser_do_statement): Likewise.
	(c_parser_asm_statement): Likewise.
	(c_parser_conditional_expression): Likewise.
	(c_parser_unary_expression): Likewise.
	(c_parser_sizeof_expression): Likewise.
	(c_parser_postfix_expression): Likewise.
	(c_parser_postfix_expression_after_paren_type): Likewise.
	(c_parser_objc_class_instance_variables): Likewise.
	(c_parser_objc_method_definition): Likewise.
	(c_parser_objc_methodprotolist): Likewise.
	(c_parser_pragma): Likewise.
	(c_parser_omp_clause_num_threads): Likewise.
	(c_parser_omp_clause_schedule): Likewise.
	(c_parser_omp_all_clauses): Likewise.
	(c_parser_omp_sections_scope): Likewise.
	(c_parser_label): Use location of label, not colon.
gcc/testsuite
	* gcc.dg/empty-source-3.c: Update warning location.
	* gcc.dg/gomp/barrier-2.c: Likewise.
	* gcc.dg/label-decl-3.c: Likewise.
	* gcc.dg/label-decl-2.c: Likewise.
	* gcc.dg/empty-source-2.c: Likewise.

From-SVN: r130025
2007-11-08 20:50:37 +00:00
Danny Smith
349fcd7817 re PR target/33774 (Cygwin/mingw do not support 16 byte alignment of struct/union fields)
PR target/33774
	* config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
	IN_TARGET_LIBS.

From-SVN: r130024
2007-11-08 20:20:02 +00:00
Tom Tromey
c02cdc25dc re PR c++/30297 (ICE with extern "C" and inheritance)
gcc/cp
2007-11-08  Andrew Pinski  <pinskia@gmail.com>
	PR c++/30297:
	* tree.c (decl_linkage): Fields have no linkage.
gcc/testsuite
	PR c++/30297:
	* g++.dg/inherit/pr30297.C: New file.

From-SVN: r130018
2007-11-08 19:50:38 +00:00
Danny Smith
061c5ee427 * gcc.dg/compat/struct-layout-1_generate.c (dg-options) Add
-fno-common for cygwin and mingw32.

From-SVN: r130017
2007-11-08 19:47:36 +00:00
Francois-Xavier Coudert
4cdf766ef6 re PR debug/33739 (Failure of gfortran.dg/literal_character_constant_1_*.F with -m64 -g on Darwin)
PR fortran/33739
	* scanner.c (start_source_file, end_source_file,
	exit_remaining_files): New functions.
	(gfc_advance_line): Use the new functions.

From-SVN: r130016
2007-11-08 19:19:50 +00:00
Kenneth Zadeck
17541d72a7 [multiple changes]
2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/33826
	* ipa-pure-const (static_execute): Added code to keep recursive
	functions from being marked as pure or const.
	* ipa-utils (searchc): Fixed comment.
2007-11-08  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/33826
	* gcc.dg/pr33826.c: New.
	* gcc.dg/tree-ssa/20030714-1.c: Removed two tests that depend on 
	recursive functions being marked pure or const.

From-SVN: r130006
2007-11-08 16:45:53 +00:00
Tom Tromey
f6230c17e9 common.opt (fshow-column): Default to 0.
* common.opt (fshow-column): Default to 0.
	* configure: Rebuilt.
	* configure.ac (--enable-mapped-location): Default to 'yes'.

From-SVN: r130005
2007-11-08 16:39:59 +00:00
Francois-Xavier Coudert
8dc9f613ea re PR fortran/34028 (Type mismatch with optimization of ISHFT)
PR fortran/34028
	* trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use correct type.

From-SVN: r130003
2007-11-08 15:33:23 +00:00
Tobias Burnus
abf86978b3 re PR fortran/33917 (Rejects valid PROCEDURE declarations)
2007-11-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33917
        * interface.c (check_sym_interfaces): Disallow PROCEDURE-declared
        procedures for MODULE PROCEDURE.
        * decl.c (match_procedure_in_interface): Do not mark as procedure.

2007-11-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33917
        * gfortran.dg/proc_decl_5.f90: New.
        * gfortran.dg/proc_decl_6.f90: New.

From-SVN: r130002
2007-11-08 16:28:30 +01:00
Kenneth Zadeck
71733172a4 common.opt: Add pointer to doc/options.texi.
2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	 * common.opt: Add pointer to doc/options.texi.
	 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
	 -fipa-reference): Add or correct doc.  Sorted options list for -Os
	 -O, -O2.

From-SVN: r130000
2007-11-08 13:47:41 +00:00
Bernhard Fischer
d3a9662cad re PR target/16350 (gcc only understands little endian ARM systems)
PR target/16350
* config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
* config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on TARGET_BIG_ENDIAN_DEFAULT.
   Use for MULTILIB_DEFAULTS.
   (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
   (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
* config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according to TARGET_BIG_ENDIAN_DEFAULT.
   (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
* gcc/config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according to TARGET_BIG_ENDIAN_DEFAULT.

From-SVN: r129999
2007-11-08 13:44:09 +00:00
Jakub Jelinek
c4e2c79ee4 re PR tree-optimization/32575 (With -ftree-vrp miscompiles a single line of code in SQLite)
PR tree-optimization/32575
	* gcc.c-torture/execute/20071108-1.c: New test.

From-SVN: r129998
2007-11-08 14:07:54 +01:00
Daniel Jacobowitz
8208d7dc30 class.c (build_ctor_vtbl_group): Lay out the new type and decl.
* class.c (build_ctor_vtbl_group): Lay out the new type and decl.

	* g++.dg/opt/anchor1.C: New.

From-SVN: r129997
2007-11-08 12:48:28 +00:00
Diego Novillo
24c1b08d69 tree.h (struct tree_struct_field_tag): Move field in_nested_struct ...
* tree.h (struct tree_struct_field_tag): Move field
	in_nested_struct ...
	(struct tree_memory_tag): ... here.

From-SVN: r129982
2007-11-07 21:18:32 -05:00
GCC Administrator
eba0c53727 Daily bump.
From-SVN: r129980
2007-11-08 00:17:22 +00:00
Diego Novillo
6f09f3140c re PR tree-optimization/33870 (miscompiles sqlite)
PR 33870
	* tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
	(SFT_IN_NESTED_STRUCT): Define.
	* tree-dfa.c (dump_subvars_for): Show offset of each
	sub-var.
	* tree-flow.h (struct fieldoff): Add field in_nested_struct.
	* tree-ssa-structalias.c (struct variable_info): Likewise.
	(push_fields_onto_fieldstack): If OFFSET is positive,
	set in_nested_struct.
	(create_variable_info_for): Copy setting of
	in_nested_struct from the field offset object.
	(set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
	variable info object.
	* tree-ssa-operands.c (add_vars_for_offset): If VAR
	belongs to a nested structure, adjust OFFSET by
	SFT_OFFSET(VAR).

testsuite/ChangeLog

	* gcc.c-torture/execute/pr33870.x: Remove.

From-SVN: r129976
2007-11-07 19:01:38 -05:00
Douglas Gregor
e4fd5b87bf re PR c++/33045 ([c++0x] Incorrect decltype result for function calls.)
2007-11-07  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33045
	PR c++/33837
	PR c++/33838
	* semantics.c (finish_decltype_type): See through INDIRECT_REFs.
	Be careful with ERROR_MARK_NODEs.
	* parser.c (cp_parser_check_access_in_redeclaration): Handle NULL
	argument.
	
2007-11-07  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33045
	PR c++/33837
	PR c++/33838
	* g++.dg/cpp0x/decltype-33837.C: New.
	* g++.dg/cpp0x/decltype-refbug.C: New.
	* g++.dg/cpp0x/decltype-33838.C: New.

From-SVN: r129975
2007-11-07 23:37:29 +00:00
Tom Tromey
4a54716a85 re PR java/34019 (Minor typo in gcj documentation)
PR java/34019:
	* gcj.texi (Input Options): Add missing noun.

From-SVN: r129974
2007-11-07 22:55:58 +00:00
Eric Botcazou
52982a970e re PR rtl-optimization/33737 (verify_flow_info failed: Wrong probability of edge 94->1 -6651)
PR rtl-optimization/33737
	* cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
	target block after computing the probabilities of outgoing edges.
	Cap the frequency to BB_FREQ_MAX.
	* tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
	frequency of the basic block if it has been reused.

From-SVN: r129973
2007-11-07 22:05:37 +00:00
Eric Botcazou
8c6c36a3c9 re PR rtl-optimization/33822 (-g -O -mstrict-align causes an ICE in set_variable_part,)
PR rtl-optimization/33822
	* rtl.h (REG_OFFSET): Fix comment.
	* var-tracking.c (INT_MEM_OFFSET): New macro.
	(var_mem_set): Use it.
	(var_mem_delete_and_set): Likewise.
	(var_mem_delete): Likewise.
	(same_variable_part_p): Likewise.
	(vt_get_decl_and_offset): Likewise.
	(offset_valid_for_tracked_p): New predicate.
	(count_uses): Do not track locations with invalid offsets.
	(add_uses): Likewise.
	(add_stores): Likewise.

From-SVN: r129970
2007-11-07 20:48:08 +00:00
Tom Tromey
83eb8eb789 Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
* Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
	(BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).

From-SVN: r129969
2007-11-07 20:15:38 +00:00
Jakub Jelinek
2811f33dcd re PR c++/33501 (Copy constructor assumed to exist for undefined class)
PR c++/33501
	* call.c (build_over_call): Don't check TREE_ADDRESSABLE
	on incomplete type.

	* g++.dg/warn/incomplete2.C: New test.
	* g++.dg/template/incomplete4.C: New test.
	* g++.dg/template/incomplete5.C: New test.

From-SVN: r129968
2007-11-07 20:27:27 +01:00
Dmitry Zhurikhin
5cd537421e modulo-sched.c (sms_order_nodes, [...]): Fix prototypes.
* modulo-sched.c (sms_order_nodes, permute_partial_schedule,
        generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
        (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
        Save calculated max_asap in it.
        (sms_schedule): Calculate maxii using max_asap.


Co-Authored-By: Andrey Belevantsev <abel@ispras.ru>

From-SVN: r129966
2007-11-07 19:07:29 +03:00
Samuel Tardieu
d9c1dc68ad sem_attr.adb (Analyze_Attribute): Remove duplicate identical embedded check for "Ada_Version >= Ada_05".
gcc/ada/
	* sem_attr.adb (Analyze_Attribute): Remove duplicate identical
	embedded check for "Ada_Version >= Ada_05".

From-SVN: r129965
2007-11-07 14:52:24 +00:00
Samuel Tardieu
bc01690e80 tracebak.c (i386 alternative): Remove useless comparaison which is always false...
gcc/ada/
	* tracebak.c (i386 alternative): Remove useless comparaison
	which is always false; LOWEST_ADDRESS is 0 and is never greater
	than an unsigned integer.

From-SVN: r129964
2007-11-07 14:51:05 +00:00
Samuel Tardieu
dcbd752dc4 a-tasatt.adb: Use 'Access instead of 'Unchecked_Access when applicable.
gcc/ada/
	* a-tasatt.adb: Use 'Access instead of 'Unchecked_Access when
	applicable. Local lifetime is the one of the package.
	(Set_Value): W is allocated on the heap.

	* g-socket.adb: Use 'Access instead of 'Unchecked_Access when
	applicable.
	(Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
	access type.
	(Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
	access type.

	* s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
	applicable.
	(elaboration code): Timer_Queue lifetime is the one of the
	package.

From-SVN: r129963
2007-11-07 14:49:46 +00:00
Samuel Tardieu
f9d806de0b a-tasatt.adb: Type Wrapper should be declared in comment instead of already declared type...
gcc/ada/
	* a-tasatt.adb: Type Wrapper should be declared in comment instead
	of already declared type Node_Access.

From-SVN: r129962
2007-11-07 14:47:19 +00:00
Olivier Hainque
cb88a3eae3 decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we craft and expand comment.
2007-11-07  Olivier Hainque  <hainque@adacore.com>

        * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
        craft and expand comment.

        testsuite/
        * gnat.dg/max_align.adb: New test.

From-SVN: r129958
2007-11-07 09:51:46 +00:00
Andreas Krebbel
4daf64719c invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp with -mhard-dfp/-mno-hard-dfp.
2007-11-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
	with -mhard-dfp/-mno-hard-dfp.

From-SVN: r129957
2007-11-07 08:57:02 +00:00
Diego Novillo
28f6b1e4e2 tree-flow.h (struct fieldoff): Reformat comment.
* tree-flow.h (struct fieldoff): Reformat comment.
	Document fields.
	* tree-ssa-operands.c: Tidy top-level comments.
	(add_vop): Likewise.
	(add_vars_for_offset): Tidy parameter formatting..
	(get_addr_dereference_operands): Likewise.
	(get_indirect_ref_operands): Likewise.
	(get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
	<OMP_ATOMIC_STORE>: Likewise.

From-SVN: r129956
2007-11-06 22:00:22 -05:00
GCC Administrator
b6e2138fb7 Daily bump.
From-SVN: r129952
2007-11-07 00:17:50 +00:00
Maxim Kuvyrkov
3c9cc6f470 re PR middle-end/33670 (cc1 segfault with -O2 -fsched-stalled-insns=0 for twolf)
PR middle-end/33670
	* haifa-sched.c (check_sched_flags): Remove.
	(sched_init): Don't call it.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r129948
2007-11-07 00:20:38 +01:00
H.J. Lu
6a9497ff33 Correct ChangeLog entry for revision 129904.
From-SVN: r129945
2007-11-06 13:38:44 -08:00
Rask Ingemann Lambertsen
a6ecb05c86 re PR target/32787 (Sun Studio 12 Undefined symbol addl)
2007-11-06  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/32787
	* config/i386/driver-i386.c: Test for __GNUC__ instead of
	GCC_VERSION which is always defined.

From-SVN: r129944
2007-11-06 20:14:22 +00:00
H.J. Lu
b3519e7c8a re PR target/30961 (redundant reg/mem stores/moves)
gcc/

2007-11-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/30961
	* reload1.c (find_reloads): Also check in_reg when handling a
	simple move with an input reload and a destination of a hard
	register.

gcc/testsuite/

2007-11-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/30961
	* gcc.target/i386/pr30961-1.c: New.

From-SVN: r129943
2007-11-06 11:19:23 -08:00
Maxim Kuvyrkov
b8c963204c m68k.c (sched-int.h, [...]): New includes.
* config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
	(TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
	TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
	TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
	TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
	(m68k_sched_attr_type2): New function.
	(sched_adjust_cost_state): New static variable.
	(m68k_sched_adjust_cost): New static function implementing
	scheduler hook.
	(sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
	New static variables.
	(m68k_sched_variable_issue): New static function implementing
	scheduler hook.
	(sched_dump_class_def, sched_dump_class_func_t): New typedefs.
	(sched_dump_split_class): New static function.
	(sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
	variables.
	(sched_dump_dfa_class, m68k_sched_dump): New static function.
	(m68k_sched_md_init_global, m68k_sched_md_finish_global,
	m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
	m68k_sched_dfa_post_advance_cycle): New static functions implementing
	scheduler hooks.

	* config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
	(CPU_UNITS_QUERY): Define.

	* config/m68k/cf.md: New file.
	* config/m68k/m68.md (cf.md): New include.

From-SVN: r129938
2007-11-06 16:52:17 +00:00
Tom Tromey
38d346765a PR c++/32256, PR c++/32368:
gcc
	PR c++/32256, PR c++/32368:
	* function.c (saved_in_system_header): New global.
	(push_cfun): Save in_system_header.
	(pop_cfun): Restore in_system_header.
	(push_struct_function): Save in_system_header.
gcc/testsuite
	PR c++/32368:
	* g++.dg/warn/pragma-system_header3.h: New.
	* g++.dg/warn/pragma-system_header3.C: New.

	PR c++/32256:
	* g++.dg/warn/pragma-system_header4.C: New.
	* g++.dg/warn/pragma-system_header4.h: New.

From-SVN: r129936
2007-11-06 15:57:02 +00:00
Douglas Gregor
9ae165a072 re PR c++/33977 (internal compiler error: canonical types differ for identical types const char [5] and const sal_Char [5])
2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33977
	PR c++/33886
	* tree.c (c_build_qualified_type): Define bridge to
	cp_build_qualified_type.

2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33977
	PR c++/33886
	* c-common.c (c_build_qualified_type): Moved to c-typeck.c.
	(complete_array_type): Set canonical type appropriately.
	* c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
	C and C++ front ends now have different versions of this function,
	because the C++ version needs to maintain canonical types here.

2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33977
	PR c++/33886
	* g++.dg/other/canon-array.C: New.

From-SVN: r129929
2007-11-06 14:39:41 +00:00
Douglas Gregor
1ad8aeeb96 re PR c++/31439 (ICE with variadic template and broken specialization)
2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/31439
	PR c++/32114
	PR c++/32115
	PR c++/32125
	PR c++/32126
	PR c++/32127
	PR c++/32128
	PR c++/32253
	PR c++/32566
	* typeck.c (check_return_expr): Pass address of retval to
	check_for_bare_parameter_packs.
	* class.c (build_base_field): Tolerate bases that have no layout
	due to errors.
	(end_of_base): Ditto.
	* tree.c (canonical_type_variant): Be careful with
	ERROR_MARK_NODE.
	* cp-tree.h (check_for_bare_parameter_packs): Now accepts a
	tree*.
	* pt.c (find_parameter_pack_data): Add set_packs_to_error field,
	which states whether parameter packs should be replaced with
	ERROR_MARK_NODE.
	(find_parameter_packs_r): Pass addresses to cp_walk_tree wherever
	possible. If set_packs_to_error is set true, replace the parameter
	pack with ERROR_MARK_NODE. Manage our own pointer sets.
	(uses_parameter_packs): Don't set parameter packs to
	ERROR_MARK_NODE.
	(check_for_bare_parameter_packs): Now takes a pointer to a tree,
	which may be modified (if it is a parameter pack). Instructs
	find_parameter_packs_r to replace parameter packs with
	ERROR_MARK_NODE (so that they won't cause errors later on).
	(process_template_parm): Pass pointer to
	check_for_bare_parameter_packs.
	(process_partial_specialization): Replace pack expansions before
	the end of the template argument list with ERROR_MARK_NODE.
	(push_template_decl_real): Pass pointer to
	check_for_bare_parameter_packs. Replace parameter packs not at the
	end of the template parameter list with ERROR_MARK_NODE.
	(convert_template_argument): Be more careful about using DECL_NAME
	on only declarations.
	(unify): Can't unify against ERROR_MARK_NODE.
	* semantics.c (finish_cond): Pass pointer to
	check_for_bare_parameter_packs.
	(finish_expr_stmt): Ditto.
	(finish_for_expr): Ditto.
	(finish_switch_cond): Pass pointer to
	check_for_bare_parameter_packs, and call it before we put the
	condition into the statement.
	(finish_mem_initializers): Pass pointer to
	check_for_bare_parameter_packs.
	(finish_member_declaration): Ditto.
	* parser.c (cp_parser_base_clause): Ditto.
	
2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>

	* testsuite/g++.dg/parser/crash36.C: Tweak expected errors.
	* testsuite/g++.dg/cpp0x/pr31439.C: New.
	* testsuite/g++.dg/cpp0x/pr32114.C: New.
	* testsuite/g++.dg/cpp0x/pr32115.C: New.
	* testsuite/g++.dg/cpp0x/pr32125.C: New.
	* testsuite/g++.dg/cpp0x/pr32126.C: New.
	* testsuite/g++.dg/cpp0x/pr32127.C: New.
	* testsuite/g++.dg/cpp0x/pr32128.C: New.
	* testsuite/g++.dg/cpp0x/pr32253.C: New.
	* testsuite/g++.dg/cpp0x/pr32566.C: New.
	* testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors.
	* testsuite/g++.dg/cpp0x/pr31438.C: Ditto.
	* testsuite/g++.dg/cpp0x/variadic81.C: Ditto.
	* testsuite/g++.dg/cpp0x/pr31432.C: Ditto.
	* testsuite/g++.dg/cpp0x/pr31442.C: Ditto.

From-SVN: r129928
2007-11-06 14:37:56 +00:00
Razya Ladelsky
0eb7e7aa01 tree-parloops.c (reduction_info): Remove reduction_init field.
2007-11-04  Razya Ladelsky  <razya@il.ibm.com>
	
	* tree-parloops.c (reduction_info): Remove reduction_init field.
	(initialize_reductions): Remove creation of the reduction_init variable.
	(struct data_arg): Remove.
	(add_field_for_reduction, create_stores_for_reduction): New functions.
	(add_field_for_name): Remove reduction handling.
	(separate_decls_in_loop): Call add_field_for_reduction, 
	create_stores_for_reduction.

From-SVN: r129923
2007-11-06 10:29:12 +00:00
Jakub Jelinek
b0eb6a8f72 re PR target/33168 (GCC Boot failure, building libstc++)
PR target/33168
	* decl.c (cp_finish_decl): Call make_rtl_for_nonlocal_decl already
	with the final TREE_READONLY flag in place.  processing_template_decl
	is known to be 0 in this part of function.

	* g++.dg/other/datasec1.C: New test.

From-SVN: r129922
2007-11-06 09:33:25 +01:00
Jakub Jelinek
36b6e79343 re PR tree-optimization/33458 (ICE "PHI def is not a GIMPLE value")
PR tree-optimization/33458
	* tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
	!is_gimple_val PHI argument, gimplify it and insert it on edge.

	* g++.dg/opt/inline12.C: New test.

From-SVN: r129921
2007-11-06 09:29:48 +01:00
Jakub Jelinek
c563bcd1da re PR tree-optimization/33993 (ICE: verify_stmts failed (invalid reference prefix))
PR tree-optimization/33993
	* tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
	rather than build_constructor_from_list if all list values are
	constants.
	(get_initial_def_for_induction): Use build_vector instead of
	build_constructor_from_list.

	* gcc.c-torture/compile/20071105-1.c: New test.

From-SVN: r129920
2007-11-06 09:28:37 +01:00
Jakub Jelinek
239371f9c7 re PR c++/33894 (pragma omp atomic broken)
PR c++/33894
	* cp-tree.h: Update comment - TYPE_LANG_FLAG_0 is not
	OMP_ATOMIC_DEPENDENT_P in OMP_ATOMIC.
	* pt.c (tsubst_expr): Assert OMP_ATOMIC_DEPENDENT_P.
	* semantics.c (finish_omp_atomic): Revert most of the
	2007-02-05 changes, just keep the new representation of
	OMP_ATOMIC_DEPENDENT_P OMP_ATOMIC.

	* testsuite/libgomp.c++/atomic-1.C: New test.

From-SVN: r129919
2007-11-06 09:26:50 +01:00
Mark Mitchell
873c716480 re PR target/33579 (INIT_PRIORITY is broken)
PR target/33579
	* tree.h (DECL_INIT_PRIORITY): Do not require
	DECL_HAS_INIT_PRIORITY_P.
	(DECL_FINI_PRIORITY): Likewise.
	* tree.c (decl_init_priority_lookup): Remove assert.
	(decl_fini_priority_insert): Likewise.
	* cgraphunit.c (static_ctors): Make it a VEC.
	(static_dtors): Likewise.
	(record_cdtor_fn): Adjust accordingly.
	(build_cdtor): Generate multiple functions for each initialization
	priority.
	(compare_ctor): New function.
	(compare_dtor): Likewise.
	(cgraph_build_cdtor_fns): Sort the functions by priority before
	calling build_cdtor.
	(cgraph_build_static_cdtor): Put the priority in the function's
	name.

From-SVN: r129918
2007-11-06 00:30:52 +00:00
GCC Administrator
7ef52af452 Daily bump.
From-SVN: r129916
2007-11-06 00:17:19 +00:00
H.J. Lu
528dc60364 re PR driver/32632 (-pie won't override -shared in -shared -pie)
2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/32632
	* common.opt: Add shared and pie.

From-SVN: r129913
2007-11-05 15:42:30 -08:00
Bob Wilson
d99ffa9404 xtensa.c (xtensa_expand_nonlocal_goto): Do not replace references to virtual_stack_vars_rtx in goto_handler.
* config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not replace
	references to virtual_stack_vars_rtx in goto_handler.

From-SVN: r129912
2007-11-05 23:37:38 +00:00
H.J. Lu
565603f84a re PR c++/33871 (typeinfo name referenced in ... defined in discarded section)
2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/33871
	* decl2.c (constrain_visibility): Clear DECL_ONE_ONLY if marked
	local.

From-SVN: r129911
2007-11-05 15:11:57 -08:00
Jakub Jelinek
d03b2e6b4d Fix last entry.
From-SVN: r129910
2007-11-05 23:00:07 +01:00
Jakub Jelinek
2dc675d531 re PR rtl-optimization/33648 (ICE in verify_flow_info for -fmodulo-sched -freorder-blocks-and-partition)
PR rtl-optimization/33648
	* gcc.dg/pr33648.c: New test.

From-SVN: r129909
2007-11-05 22:55:37 +01:00
Revital Eres
77cfbfe79e Fix check_750cl_hw_available function
From-SVN: r129906
2007-11-05 18:58:43 +00:00
Douglas Gregor
86089be5e1 Index...
Index: testsuite/g++.dg/cpp0x/pr33996.C
===================================================================
--- testsuite/g++.dg/cpp0x/pr33996.C	(revision 0)
+++ testsuite/g++.dg/cpp0x/pr33996.C	(revision 0)
@@ -0,0 +1,52 @@
+// { dg-options "-std=c++0x" }
+
+#define BUG
+struct type
+{
+  type() { }
+  type(const type&) { }
+
+private:
+  type(type&&);
+};
+
+template<typename _Tp>
+  struct identity
+  {
+    typedef _Tp type;
+  };
+
+template<typename _Tp>
+  inline _Tp&&
+  forward(typename identity<_Tp>::type&& __t)
+  { return __t; }
+
+struct vec
+{
+  template<typename _Args>
+    void
+    bar(_Args&& __args)
+#ifdef BUG
+    ;
+#else
+    {
+      type(forward<_Args>(__args));
+    }
+#endif
+};
+
+#ifdef BUG
+template<typename _Args>
+  void
+  vec::bar(_Args&& __args)
+  {
+    type(forward<_Args>(__args));
+  }
+#endif
+
+int main()
+{
+  vec v;
+  type c;
+  v.bar(c);
+}
Index: testsuite/g++.dg/cpp0x/rv-trivial-bug.C
===================================================================
--- testsuite/g++.dg/cpp0x/rv-trivial-bug.C	(revision 0)
+++ testsuite/g++.dg/cpp0x/rv-trivial-bug.C	(revision 0)
@@ -0,0 +1,33 @@
+// { dg-do "run" }
+// { dg-options "-std=c++0x" }
+// PR c++/33235
+#include <cassert>
+
+int move_construct = 0;
+int move_assign = 0;
+
+struct base2
+{
+    base2() {}
+    base2(base2&&) {++move_construct;}
+    base2& operator=(base2&&) {++move_assign; return *this;}
+};
+
+int test2()
+{
+    base2 b;
+    base2 b2(b);
+    assert(move_construct == 0);
+    base2 b3(static_cast<base2&&>(b));
+    assert(move_construct == 1);
+    b = b2;
+    assert(move_assign == 0);
+    b = static_cast<base2&&>(b2);
+    assert(move_assign == 1);
+}
+
+int main()
+{
+    test2();
+    return 0;
+}
Index: testsuite/g++.dg/cpp0x/pr33930.C
===================================================================
--- testsuite/g++.dg/cpp0x/pr33930.C	(revision 0)
+++ testsuite/g++.dg/cpp0x/pr33930.C	(revision 0)
@@ -0,0 +1,10 @@
+// { dg-options "-std=c++0x" }
+typedef const int* type;
+
+float& foo( const type& ggg );
+int& foo( type&& ggg );
+
+void bar( int* someptr )
+{
+  int& x = foo( someptr );
+}
Index: cp/typeck.c
===================================================================
--- cp/typeck.c	(revision 129899)
+++ cp/typeck.c	(working copy)
@@ -620,7 +620,7 @@ merge_types (tree t1, tree t2)
 	if (code1 == POINTER_TYPE)
 	  t1 = build_pointer_type (target);
 	else
-	  t1 = build_reference_type (target);
+	  t1 = cp_build_reference_type (target, TYPE_REF_IS_RVALUE (t1));
 	t1 = build_type_attribute_variant (t1, attributes);
 	t1 = cp_build_qualified_type (t1, quals);
 
Index: cp/call.c
===================================================================
--- cp/call.c	(revision 129899)
+++ cp/call.c	(working copy)
@@ -5076,7 +5076,8 @@ build_over_call (struct z_candidate *can
 	    return build_target_expr_with_type (arg, DECL_CONTEXT (fn));
 	}
       else if (TREE_CODE (arg) == TARGET_EXPR
-	       || TYPE_HAS_TRIVIAL_INIT_REF (DECL_CONTEXT (fn)))
+	       || (TYPE_HAS_TRIVIAL_INIT_REF (DECL_CONTEXT (fn))
+		   && !move_fn_p (fn)))
 	{
 	  tree to = stabilize_reference
 	    (build_indirect_ref (TREE_VALUE (args), 0));
@@ -6118,7 +6119,11 @@ compare_ics (conversion *ics1, conversio
   if (ics1->kind == ck_qual
       && ics2->kind == ck_qual
       && same_type_p (from_type1, from_type2))
-    return comp_cv_qual_signature (to_type1, to_type2);
+    {
+      int result = comp_cv_qual_signature (to_type1, to_type2);
+      if (result != 0)
+	return result;
+    }
 
   /* [over.ics.rank]

From-SVN: r129905
2007-11-05 18:42:22 +00:00
Paul Brook
b76c3c4bee config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
2007-11-05  Paul Brook  <paul@codesourcery.com>

	gcc/
	* config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
	* config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
	(arm_file_start): Don't set Tag_ABI_PCS_wchar_t.  Call
	arm_lang_output_object_attributes_hook.
	* config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
	(REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
	* config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
	prototype.
	* config/arm/t-arm.c (arm.o): New rule.
	* config/arm/arm-c.c: New file.

From-SVN: r129904
2007-11-05 17:13:46 +00:00
Nick Clifton
f0ed4cfb9d re PR tree-optimization/32540 (Exponential time behavior in PRE)
2007-11-05  Nick Clifton  <nickc@redhat.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/32540
	PR tree-optimization/33922
	* doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
	* tree-ssa-pre.c: Include params.h.
	(compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
	to limit the maximum length of the PA set for a given block.
	* Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
	* params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.

	* gcc.dg/tree-ssa/pr32540-1.c: New.
	* gcc.dg/tree-ssa/pr32540-2.c: New.
	* gcc.dg/tree-ssa/pr33922.c: New.


Co-Authored-By: Sebastian Pop <sebastian.pop@amd.com>

From-SVN: r129901
2007-11-05 15:42:30 +00:00
Douglas Gregor
2afad0f6bb re PR c++/33939 (Rvalue references not deduced correctly in vararg function templates)
2007-11-05  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33939
	* pt.c (unify_pack_expansion): bring handling of function call
	arguments into line with type_unification_real. 

2007-11-05  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33939
	* g++.dg/cpp0x/variadic-rref.C: New.

From-SVN: r129900
2007-11-05 12:50:21 +00:00
Nathan Sidwell
f139f5faa7 libgcc2.c (__fixunstfDI, [...]): Make return type unsigned.
* libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
	__fixunssfDI): Make return type unsigned.
	* libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
	__fixunssfDI): Make return type unsigned.

From-SVN: r129899
2007-11-05 11:41:40 +00:00
Manuel López-Ibáñez
278b63df62 typeck.c (build_binary_op): Use pedwarn instead of error for consistency.
2007-11-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
cp/
	* typeck.c (build_binary_op): Use pedwarn instead of error for
	consistency.
testsuite/
	* g++dg/warn/pointer-integer-comparison.C: New.

From-SVN: r129898
2007-11-05 10:03:04 +00:00
Jakub Jelinek
0976ffb63f re PR tree-optimization/33856 (Segfault in create_data_ref/compute_data_dependences_for_loop)
PR tree-optimization/33856
	* tree-data-ref.c (get_references_in_stmt): Don't add
	REFERENCE_CLASS_P trees to references vector if get_base_address
	returns NULL on them.

	* gcc.c-torture/compile/20071027-1.c: New test.

From-SVN: r129897
2007-11-05 09:44:23 +01:00
Jakub Jelinek
f370e66bb8 re PR c++/33836 (ICE with invalid use of &&)
PR c++/33836
	* parser.c (cp_parser_unary_expression): For &&label call
	cp_parser_non_integral_constant_expression and return error_mark_node
	if it returned true.

	* g++.dg/ext/label10.C: New test.

From-SVN: r129896
2007-11-05 09:18:03 +01:00
Jakub Jelinek
1b021ff438 re PR c++/33969 (ICE with const and function pointer)
PR c++/33969
	* decl.c (grokdeclarator): Don't call build_memfn_type if type
	is neither FUNCTION_TYPE nor METHOD_TYPE.

	* g++.dg/other/ptrmem9.C: New test.

From-SVN: r129895
2007-11-05 09:10:09 +01:00
Alexandre Oliva
9656bc0fdc * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
From-SVN: r129893
2007-11-05 06:34:34 +00:00
GCC Administrator
dbf05723cd Daily bump.
From-SVN: r129891
2007-11-05 00:17:30 +00:00
Andrew Pinski
f519a4b315 Index...
Index: ChangeLog
===================================================================
--- ChangeLog   (revision 129887)
+++ ChangeLog   (working copy)
@@ -6447,6 +6447,7 @@
 
 2007-09-02  Joseph Myers  <joseph@codesourcery.com>
 
+       PR c/29237
        PR middle-end/33272
        * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
        decayed from array.
Index: testsuite/ChangeLog
===================================================================
--- testsuite/ChangeLog (revision 129887)
+++ testsuite/ChangeLog (working copy)
@@ -3041,6 +3041,7 @@
 
 2007-09-02  Joseph Myers  <joseph@codesourcery.com>
 
+       PR C/29237
        PR middle-end/33272
        * gcc.dg/c99-arraydecl-3.c: New test.

From-SVN: r129888
2007-11-04 16:08:04 -08:00
Andrew Pinski
4c85a3da5f re PR middle-end/32931 (FORALL and WHERE give an ICE with -m64)
2007-11-04  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/32931
        * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
        for TRUTH_NOT_EXPR to type.

2007-11-04  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/32931
        * gfortran.fortran-torture/compile/forall-1.f90: New testcase.

From-SVN: r129886
2007-11-04 11:04:49 -08:00
Gerald Pfeifer
7284a19735 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
From-SVN: r129884
2007-11-04 17:49:16 +00:00
David Edelsohn
bc6812beee _Pragma1.C: Disable on AIX.
* g++.dg/cpp/_Pragma1.C: Disable on AIX.
        * g++.dg/ext/visibility/namespace2.C: Add argument to
        dg-require-visibility.
        * g++.dg/ext/java-1.C: Disable on AIX.

From-SVN: r129883
2007-11-04 11:34:37 -05:00
Francois-Xavier Coudert
9adfa70e26 re PR fortran/10220 (attribute DW_AT_calling_convention not correct for fortran)
PR fortran/10220
	* dwarf2out.c (add_calling_convention_attribute): Change
	second argument. Set calling convention to DW_CC_program for
	Fortran main program.
	(gen_subprogram_die): Adjust to new prototype for
	add_calling_convention_attribute.

From-SVN: r129882
2007-11-04 14:43:45 +00:00
Dorit Nuzman
55e67e4462 no-vfa-pr32377.f90: Remove xfail.
* gfortran.dg/vect/no-vfa-pr32377.f90: Remove xfail.

From-SVN: r129881
2007-11-04 04:34:47 +00:00
Dorit Nuzman
a0aa00d709 re PR tree-optimization/33987 (internal compiler error: in get_initial_def_for_reduction, at tree-vect-transform.c:2110 with -O3 -msse2)
PR tree-optimization/33987
        * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
        Fix indentation.
        (vectorizable_reduction): Add type check.

From-SVN: r129880
2007-11-04 03:48:58 +00:00
GCC Administrator
e45d5d63ea Daily bump.
From-SVN: r129878
2007-11-04 00:17:09 +00:00
Francois-Xavier Coudert
83dffdeb44 re PR fortran/33881 (wrong code for assumed length character arrays)
PR fortran/33881

	* trans-array.c (gfc_conv_array_parameter): Evaluate
	se->string_length instead of the expr->ts.cl->backend_decl.

	* gfortran.dg/assumed_charlen_arg_1.f90: New test.

From-SVN: r129874
2007-11-03 22:12:03 +00:00
Manuel López-Ibáñez
847c8ce4d1 re PR c/29062 (unclear diagnostic for declaration after label)
2007-11-03  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/29062
	* c-parser.c (c_parser_statement_after_labels): Error if a
	declaration is parsed after a label.
testsuite/
	* gcc.dg/20031223-1.c: Adjust error output.
	* gcc.dg/parse-decl-after-label.c: New.

From-SVN: r129873
2007-11-03 19:41:20 +00:00
Daniel Jacobowitz
47c95bff6b re PR debug/33921 (FAIL: gcc.dg/debug/debug-6.c -gdwarf-2 -O scan-assembler xyzzy)
PR debug/33921
	* reorg.c (emit_delay_sequence): Do not clear the locator on
	the jump instruction.

From-SVN: r129872
2007-11-03 17:50:20 +00:00
Jerry DeLisle
241b92c8c5 re PR libfortran/24685 (real(16) formatted input is broken for huge values (gfortran.dg/default_format_2.f90))
2007-11-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/24685
	* gfortran.dg/default_format_2.f90: XFAIL powerpc*-*-linux*
	* gfortran.dg/default_format_denormal_2.f90: XFAIL powerpc*-*-linux*
	* gfortran.dg/large_real_kind_form_io_2.f90: XFAIL powerpc*-*-linux*

From-SVN: r129871
2007-11-03 16:47:37 +00:00
Francois-Xavier Coudert
ecf24057f8 gfortran.h: Shorten comment.
* gfortran.h: Shorten comment.
	* trans-types.c (gfc_get_function_type): Allow argument to have
	flavor FL_PROGRAM.
	* trans-decl.c (gfc_sym_mangled_function_id): Mangle main program
	name into MAIN__.
	(build_function_decl): Fix comment.
	* parse.c (main_program_symbol): Give the main program its proper
	name, if any. Set its flavor to FL_PROGRAM.
	(gfc_parse_file): Likewise.

From-SVN: r129869
2007-11-03 14:51:51 +00:00
Eric Botcazou
9d85b4853b re PR rtl-optimization/28940 (address selection does not work correctly)
PR rtl-optimization/28940
	* gcc.target/i386/addr-sel-1.c: New test.

From-SVN: r129868
2007-11-03 07:53:01 +00:00
GCC Administrator
57ca9c742a Daily bump.
From-SVN: r129866
2007-11-03 00:17:26 +00:00
Jakub Jelinek
ec8628e835 re PR middle-end/33670 (cc1 segfault with -O2 -fsched-stalled-insns=0 for twolf)
PR middle-end/33670
	* haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
	current sched region.

	* gcc.dg/pr33670.c: New test.

From-SVN: r129863
2007-11-03 00:06:36 +01:00
Jakub Jelinek
eba5fc70ad re PR c++/33516 (Rejects typedef qualified name-lookup)
PR c++/33516
	* parser.c (cp_parser_nested_name_specifier_opt): Use
	TYPE_MAIN_VARIANT (new_scope) as scope if new_scope is an incomplete
	typedef of currently open class.

	* g++.dg/lookup/typedef1.C: New test.

From-SVN: r129862
2007-11-02 22:37:35 +01:00
Jakub Jelinek
444a356a3b ia64.c (struct reg_write_state): Change into unsigned short bitfields rather than unsigned int...
* config/ia64/ia64.c (struct reg_write_state): Change into
	unsigned short bitfields rather than unsigned int, decrease
	first_pred to just 10 bits.
	(rws_insn): Change into a bitmap or if not ENABLE_CHECKING
	into two char array.
	(rws_insn_set, rws_insn_test): New functions.
	(in_safe_group_barrier): New variable.
	(rws_update): Remove first argument, always set rws_sum array.
	(rws_access_regno): Use rws_insn_set macro.  Only call rws_update
	or update rws_sum if !in_safe_group_barrier, adjust rws_update
	args.
	(rtx_needs_barrier): Use rws_insn_test macro.
	(safe_group_barrier_needed): Don't save/restore rws_sum array,
	instead set/clear in_safe_group_barrier flag.

From-SVN: r129861
2007-11-02 21:38:11 +01:00
Tom Tromey
7c4b32bcdc re PR java/33765 (gcj internal compiler error when reading an empty file)
PR java/33765:
	* jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
	* zipfile.h (ZIPEMPTYMAGIC): New define.

From-SVN: r129860
2007-11-02 20:02:35 +00:00
Janis Johnson
ea094d1f23 re PR testsuite/32076 ("gcc.dg/tree-ssa/pr17141-1.c scan-tree-dump locp.*->i =" is the same name twice)
PR testsuite/32076
	* lib/scandump.exp (dump-suffix): New.
	(scan-dump, scan-dump-times, scan-dump-dem, scan-dump-dem-not):
	Include dump suffix in pass/fail messages, put regexp in quotes.

From-SVN: r129858
2007-11-02 17:54:12 +00:00
Francois-Xavier Coudert
3097268934 * intrinsic.texi (ALLOCATED): Fix typo.
From-SVN: r129857
2007-11-02 17:42:06 +00:00
Bob Wilson
4e6c21930e xtensa.c (xtensa_expand_prologue): Put a REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack...
* config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
	REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
	pointer or frame pointer.
	* config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
	(MUST_USE_SJLJ_EXCEPTIONS): Define.
	(DWARF2_UNWIND_INFO): Define.
	(INCOMING_RETURN_ADDR_RTX): Define.
	(DWARF_FRAME_RETURN_COLUMN): Define.

From-SVN: r129854
2007-11-02 16:06:41 +00:00
Tom Tromey
f3a032e928 varpool.c (dump_varpool): Use 'next', not 'next_needed' when traversing pool.
* varpool.c (dump_varpool): Use 'next', not 'next_needed' when
	traversing pool.

From-SVN: r129851
2007-11-02 15:29:09 +00:00
Paolo Carlini
10a6624ad6 re PR c++/33495 (Broken diagnostic: Trouble pretty-printing statement expressions)
2007-11-02  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33495
	* error.c (dump_expr): Deal specially with statements.

2007-11-02  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33495
	* g++.dg/other/error19.C: New.

From-SVN: r129850
2007-11-02 14:06:43 +00:00
Eric Botcazou
5625d7ca05 re PR rtl-optimization/28062 (ICE in simplify_subreg, at simplify-rtx.c:4466)
PR rtl-optimization/28062
	* gcc.c-torture/compile/20071102-1.c: New test.

From-SVN: r129846
2007-11-02 11:57:05 +00:00
Diego Novillo
c4e622b658 langhooks.h (struct lang_hooks_for_callgraph): Remove third argument from function pointer ANALYZE_EXPR.
* langhooks.h (struct lang_hooks_for_callgraph): Remove third
	argument from function pointer ANALYZE_EXPR.  Update all
	users.
	* cgraph.c (debug_cgraph_node): New.
	(debug_cgraph): New.

From-SVN: r129845
2007-11-02 07:12:30 -04:00
Jason Merrill
ef3b7b1761 re PR c++/30897 (ICE with default argument in template template parameter)
PR c++/30897
        * pt.c (push_template_decl_real): Set DECL_CONTEXT on template
        template parms.
        (lookup_template_class): Use it to get the outer template args
        for instantiating one.

        PR c++/29236
        * pt.c (reduce_template_parm_level): tsubst the parameters
        of a template template parm.

From-SVN: r129844
2007-11-02 01:50:06 -04:00
Douglas Gregor
e1a18c68eb re PR c++/33955 (internal compiler error: in dependent_type_p, at cp/pt.c:15245 (vararg template problem))
2007-11-01  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33955
	* pt.c (find_parameter_packs_r): Handle TYPENAME_TYPE.

2007-11-01  Douglas Gregor  <doug.gregor@gmail.com>

	* g++.dg/cpp0x/pr33955.C: New.

From-SVN: r129843
2007-11-02 03:26:46 +00:00
GCC Administrator
a19309466a Daily bump.
From-SVN: r129841
2007-11-02 00:17:22 +00:00
Tom Tromey
17bfa461cf re PR preprocessor/30805 (Internal compiler error when using "x##,##__VA_ARGS__" in macro)
PR preprocessor/30805:
	* gcc.dg/cpp/pr30805.c: Use -std=gnu89.

From-SVN: r129838
2007-11-01 23:38:52 +00:00
Jakub Jelinek
3e7eb73400 re PR rtl-optimization/33648 (ICE in verify_flow_info for -fmodulo-sched -freorder-blocks-and-partition)
PR rtl-optimization/33648
	* cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
	the newly created basic block.

	* gcc.dg/pr33648.c: New test.

From-SVN: r129837
2007-11-02 00:27:23 +01:00
Jakub Jelinek
e426bd2cc8 re PR c++/32384 (Pseudo-dtor in template class rejected)
PR c++/32384
	* parser.c (cp_parser_postfix_dot_deref_expression): If
	POSTFIX_EXPRESSION is type dependent, try to parse it as pseudo dtor
	first and if that succeeds and type is SCALAR_TYPE_P, create
	PSEUDO_DTOR_EXPR.

	* g++.dg/template/pseudodtor1.C: New test.
	* g++.dg/template/pseudodtor2.C: New test.

From-SVN: r129836
2007-11-01 23:54:39 +01:00
Jakub Jelinek
3a44f39543 re PR c++/32260 (too many warning: dereferencing type-punned pointer will break strict-aliasing rules)
PR c++/32260
	* rtti.c (enum_tinfo_kind): Fix TK_TYPE_INFO_TYPE comment.
	(typeid_ok_p): Use the same alias set for abi::__type_info_pseudo
	as for std::type_info.

	* g++.dg/rtti/typeid7.C: New test.

From-SVN: r129835
2007-11-01 23:50:32 +01:00
Richard Guenther
945bfaca2e ggc-page.c (extra_order_size_tab): Add bitmap_head size.
2007-11-01  Richard Guenther  <rguenther@suse.de>

        * ggc-page.c (extra_order_size_tab): Add bitmap_head size.

From-SVN: r129833
2007-11-01 22:20:29 +00:00
Steven Bosscher
f8423fea8d re PR rtl-optimization/33828 (Issues with code hoisting implementation in gcse.c)
PR rtl-optimization/33828
	* gcse.c (compute_code_hoist_vbeinout): Fix order of computation
	of VBEIN and VBEOUT.

From-SVN: r129832
2007-11-01 21:03:50 +00:00
Eric Botcazou
ba8a73e9fb optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
* optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
	* sched-rgn.c (compute_trg_info): Zero 'el' local variable.
	* tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.

From-SVN: r129830
2007-11-01 20:48:21 +00:00
Tom Tromey
cff75efa57 Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
* Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
	(java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
	(java/jcf-io.o): Depend on zipfile.h.

From-SVN: r129829
2007-11-01 19:37:32 +00:00
Tom Tromey
f373b44d28 re PR preprocessor/30805 (Internal compiler error when using "x##,##__VA_ARGS__" in macro)
libcpp
	PR preprocessor/30805:
	* macro.c (paste_tokens): Handle padding token.
	(paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
gcc/testsuite
	PR preprocessor/30805:
	* gcc.dg/cpp/pr30805.c: New file.

From-SVN: r129827
2007-11-01 18:20:48 +00:00
Eric Botcazou
233a722b41 lang-specs.h: Move translation of -fRTS= after -gnatez switch.
* lang-specs.h: Move translation of -fRTS= after -gnatez switch.

From-SVN: r129826
2007-11-01 18:06:47 +00:00
Nathan Sidwell
5557813a4e gcc.c (getenv_spec_function): Escape the environment variable's value.
* gcc.c (getenv_spec_function): Escape the environment variable's
	value.

From-SVN: r129825
2007-11-01 16:42:39 +00:00
Janis Johnson
d6a64b9df9 invoke.texi (Optimize Options): Under -fcse-follow-jumps, show that CSE means common subexpression elimination.
* doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
	show that CSE means common subexpression elimination.  Change wording
	for -fsee and define LCM.  Remove capitalization of optimizations
	for -ftree-reassoc, -ftree-pre, and -ftree-fre.

From-SVN: r129824
2007-11-01 16:34:48 +00:00
Janis Johnson
fdaea7e286 re PR testsuite/25352 (xfail within dg-do command has no effect)
gcc/
	PR testsuite/25352
	* doc/sourcebuild.texi (Test Directives): Document that xfail
	has no effect for dg-do except when dg-do-what is "run".

libstdc++-v3/
	PR testsuite/25352
	* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
	Remove xfail from dg-do and add dg-skip-if.

gcc/testsuite/
	PR testsuite/25352
	* gcc.c-torture/compile/20000804-1.c: Remove xfail from dg-do and
	add dg-skip-if.
	* gcc.c-torture/compile/20001205-1.c: Ditto.
	* gcc.c-torture/compile/20001226-1.c: Ditto.
	* gcc.c-torture/compile/20020312-1.c: Ditto.
	* gcc.c-torture/compile/20020604-1.c: Ditto.
	* gcc.c-torture/compile/920501-12.c: Ditto.
	* gcc.c-torture/compile/920501-4.c: Ditto.
	* gcc.c-torture/compile/920520-1.c: Ditto.
	* gcc.c-torture/compile/980506-1.c: Ditto.
	* gcc.c-torture/compile/990617-1.c: Ditto.
	* gcc.dg/compare6.c: Ditto.
	* g++.old-deja/g++.brendan/crash43.C: Ditto.
	* g++.old-deja/g++.brendan/synth1.C: Ditto.
	* g++.old-deja/g++.oliva/dwarf2.C: Ditto.
	* g++.old-deja/g++.oliva/dwarf3.C: Ditto.
	* g++.old-deja/g++.pt/static6.C: Ditto.
	* g++.old-deja/g++.pt/crash16.C: Ditto.
	* g++.old-deja/g++.mike/p10416.C: Ditto.
	* g++.old-deja/g++.mike/ns15.C: Ditto.
	* g++.old-deja/g++.mike/eh46.C: Ditto.

From-SVN: r129823
2007-11-01 16:22:36 +00:00
Tom Tromey
5af28c7452 c-decl.c (grokdeclarator): Set decl source locations.
gcc
	* c-decl.c (grokdeclarator): Set decl source locations.
	* c-parser.c (c_parser_enum_specifier): Set location.
	(c_parser_struct_or_union_specifier): Likewise.
gcc/testsuite
	* gcc.dg/redecl-1.c: Update.
	* gcc.dg/pr20368-3.c: Update.
	* gcc.dg/inline-14.c: Update.
	* gcc.dg/builtins-30.c: Update.
	* gcc.dg/dremf-type-compat-4.c: Update.
	* gcc.dg/pr20368-2.c: Update.

From-SVN: r129822
2007-11-01 15:31:12 +00:00
Tom Tromey
18aa09d195 * print-tree.c (print_node): Print column number.
From-SVN: r129821
2007-11-01 15:06:11 +00:00
Jakub Jelinek
611cd333cd re PR debug/33537 (C++ arguments passed by invisible reference have wrong type)
PR debug/33537
	* dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
	gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
	rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).

From-SVN: r129820
2007-11-01 11:17:42 +01:00
Jakub Jelinek
d0a55efc84 re PR rtl-optimization/33673 (ICE in verify_flow_info, missing barrier, when multiple tree opts disabled)
PR rtl-optimization/33673
	* gcse.c (cprop_jump): If a conditional jump has been optimized
	into unconditional jump, make the remaining normal edge fallthru
	and delete the jump insn.

	* gcc.dg/pr33673.c: New test.

From-SVN: r129819
2007-11-01 09:48:05 +01:00
Ben Elliston
895a813643 emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
* emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
	(set_mem_attrs_from_reg): Likewise.

From-SVN: r129818
2007-11-01 16:57:02 +11:00
Michael Matz
e08f02f0bb re PR tree-optimization/33961 (gcc 4.3 causes crash valid code to crash)
PR tree-optimization/33961
        * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
        (name_to_bb_hash, name_to_bb_eq): Consider and check it.
        (add_or_mark_expr): New argument 'store', using it to search
        the hash table.
        (nt_init_block): Adjust calls to add_or_mark_expr.

        * gcc.dg/pr33961.c: New test.

From-SVN: r129817
2007-11-01 03:06:38 +00:00
Paolo Carlini
42e2a99953 re PR c++/33494 (Broken diagnostic: 'modop_expr' not supported by dump_expr)
/cp
2007-10-31  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33494
	* cxx-pretty-print.c (pp_cxx_typeid_expression,
	pp_cxx_delete_expression): Change to static linkage.
	* cxx-pretty-print.h: Adjust declarations.
	* error.c (dump_expr, case EXPR_PACK_EXPANSION, TYPEID_EXPR,
	MEMBER_REF, DOTSTAR_EXPR, DELETE_EXPR, VEC_DELETE_EXPR,
	MODOP_EXPR): Forward to pp_expression.

	* cxx-pretty-print.c (pp_cxx_expression, case NON_DEPENDENT_EXPR):
	Fix typo.

/testsuite
2007-10-31  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33494
	* g++.dg/template/error35.C: New.

From-SVN: r129816
2007-11-01 02:18:44 +00:00
Paolo Carlini
066f956c80 re PR c++/33494 (Broken diagnostic: 'modop_expr' not supported by dump_expr)
/cp
2007-10-31  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33494
	* cxx-pretty-print.c (pp_cxx_typeid_expression,
	pp_cxx_delete_expression): Change to static linkage.
	* cxx-pretty-print.h: Adjust declarations.
	* error.c (dump_expr, case EXPR_PACK_EXPANSION, TYPEID_EXPR,
	MEMBER_REF, DOTSTAR_EXPR, DELETE_EXPR, VEC_DELETE_EXPR,
	MODOP_EXPR): Forward to pp_expression.

	* cxx-pretty-print.c (pp_cxx_expression, case NON_DEPENDENT_EXPR):
	Fix typo.

/testsuite
2007-10-31  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33494
	* g++.dg/template/error35.C: New.

From-SVN: r129815
2007-11-01 02:17:02 +00:00
GCC Administrator
e52e300091 Daily bump.
From-SVN: r129811
2007-11-01 00:17:19 +00:00
Jakub Jelinek
a7efdc8427 re PR target/31507 (libffi regression, many.c, closure_fn2/fn3.c with -Os)
PR target/31507
	* config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
	for the first push_operand.

	* gcc.dg/pr31507-1.c: New test.
	* gcc.dg/pr31507-2.c: New test.

From-SVN: r129807
2007-10-31 23:35:01 +01:00
Revital Eres
e2e95f45a8 Enable auto-vectorization for PowerPC 750CL paired-single instructions
From-SVN: r129803
2007-10-31 17:04:42 +00:00
Tobias Burnus
1e4c40729a [multiple changes]
2007-10-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33941
        * modules.c (intrinsics): Use only alphabetic names for
        intrinsic operators.


2007-10-31  Dominique d'Humieres  <dominiq@lps.ens.fr>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/33941
        * gfortran.dg/module_read_1.f90: New.

From-SVN: r129801
2007-10-31 16:10:12 +01:00
Tom Tromey
5b9a40df4e re PR preprocessor/30786 (ICE on _Pragma at end of file)
gcc/testsuite
	PR preprocessor/30786:
	* gcc.dg/cpp/pr30786.c: New file.
libcpp
	PR preprocessor/30786:
	* macro.c (builtin_macro): Return result of _cpp_do__Pragma.
	* directives.c (_cpp_do__Pragma): Return error status.
	* internal.h (_cpp_do__Pragma): Update.
	* directives.c (get__Pragma_string): Back up if EOF seen.

From-SVN: r129800
2007-10-31 14:50:13 +00:00
Jerry DeLisle
69d10e15fb re PR fortran/33162 (INTRINSIC functions as ACTUAL argument)
2007-10-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33162
	* gfortran.dg/interface_19.f90: New.
	* gfortran.dg/interface_20.f90: New.
	* gfortran.dg/interface_21.f90: New.

From-SVN: r129799
2007-10-31 14:30:48 +00:00
Jerry DeLisle
26033479fb re PR fortran/33162 (INTRINSIC functions as ACTUAL argument)
2007-10-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33162
	* interface.c (compare_intr_interfaces): New function to check intrinsic
	function arguments against formal arguments. (compare_interfaces): Fix
	logic in comparison of function and subroutine attributes.
	(compare_parameter): Use new function for intrinsic as argument.
	* resolve.c (resolve_actual_arglist): Allow an intrinsic without
	function attribute to be checked further.  Set function attribute if
	intrinsic symbol is found, return FAILURE if not.

From-SVN: r129798
2007-10-31 14:26:57 +00:00
Sebastian Pop
2c26cbfd23 re PR tree-optimization/32377 (can't determine dependence (source/destination overlap without more than size))
2007-10-31  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/32377
	* tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
	work also for unknown number of iterations.
	(analyze_subscript_affine_affine): Clean up.  Don't fail when the 
	number of iterations is not known.

	* gfortran.dg/vect/pr32377.f90: New.

From-SVN: r129797
2007-10-31 13:53:03 +00:00
Richard Guenther
ac029795f3 re PR middle-end/33779 (folds unsigned multiplication == 0 to true)
2007-10-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33779
	* fold-const.c (extract_muldiv_1): Make sure to not introduce
	new undefined integer overflow.
	(fold_binary): Avoid useless conversion.

	* gcc.c-torture/execute/pr33779-1.c: New testcase.
	* gcc.c-torture/execute/pr33779-2.c: Likewise.

From-SVN: r129796
2007-10-31 12:33:05 +00:00
Paul Thomas
182393f4f7 re PR fortran/33897 (Incorrect host association in module)
2007-10-31  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/33897
        * decl.c (gfc_match_entry): Do not make ENTRY name
        global for contained procedures.
        * parse.c (gfc_fixup_sibling_symbols): Fix code for
        determining whether a procedure is external.

2007-10-31  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/33897
        * gfortran.dg/contained_3.f90: New.

From-SVN: r129795
2007-10-31 10:59:16 +01:00
Richard Sandiford
a3d977243d re PR target/33948 (Bootstrap broken on mips-sgi-irix6.5)
gcc/
	PR target/33948
	* config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P
	check.

From-SVN: r129794
2007-10-31 08:23:30 +00:00
Andreas Krebbel
47d94c1a50 rs6000.opt: Rename -mdfp option to -mhard-dfp.
2007-10-31  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.

	* config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
	with -mhard-dfp/-mno-hard-dfp.
	* config/s390/s390.opt: Likewise.
	* config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
	definition.

From-SVN: r129793
2007-10-31 07:56:01 +00:00
Christian Bruel
0e95aec103 fix PR c++/19531: NRV is performed on volatile temporary
Co-Authored-By: Mark Mitchell <mark@codesourcery.com>

From-SVN: r129792
2007-10-31 08:55:46 +01:00
GCC Administrator
4ac4ec1822 Daily bump.
From-SVN: r129790
2007-10-31 00:17:17 +00:00
Janis Johnson
ba927a8b4c * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
From-SVN: r129787
2007-10-30 22:47:38 +00:00
Janis Johnson
0c166d0f1c invoke.texi (Option Summary): Add -fdce and -fdse to list of optimization options.
* doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
	optimization options.
	(Optimize Options): Add -fdce and -fdse to the list of optimizations
	enabled by -O.  Document -fdce and -fdse.

From-SVN: r129786
2007-10-30 22:45:00 +00:00
Jakub Jelinek
33a49c17e8 re PR c++/33709 (Type verification failure with new expression)
PR c++/33709
	* fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
	convert second operand of COMPOUND_EXPR to the original type of
	that argument.

	* g++.dg/opt/compound1.C: New test.

From-SVN: r129785
2007-10-30 23:40:13 +01:00
Jakub Jelinek
4c38e99eb4 re PR c++/33616 ("lvalue required as unary '&' operand" with template pmf)
PR c++/33616
	* decl2.c (build_offset_ref_call_from_tree): Call
	build_non_dependent_expr on object prior to building ADDR_EXPR from it
	if FN is DOTSTAR_EXPR.

	* g++.dg/template/ptrmem18.C: New test.

From-SVN: r129784
2007-10-30 23:37:53 +01:00
Francois-Xavier Coudert
e1332188a4 re PR fortran/33596 (ICE with simplified ISNAN)
PR fortran/33596

	* trans-intrinsic.c (gfc_conv_intrinsic_isnan): Strip NOP_EXPR
	from the result of build_call_expr.

	* gfortran.dg/isnan_2.f90: New test.

From-SVN: r129782
2007-10-30 21:48:23 +00:00
Ed Schouten
7e79298c1d re PR tree-optimization/32500 (Loop optimization limits range to size of array used inside loop)
PR tree-optimization/32500
	* gcc.c-torture/execute/pr32500.c: Fix buffer overflow in testcase.

From-SVN: r129781
2007-10-30 20:30:47 +00:00
H.J. Lu
26796ffd3b Remove ">>>>>>> .r129772".
From-SVN: r129777
2007-10-30 10:54:29 -07:00
Doug Gregor
9c6fc6c6e5 Revert accidental change to crash36.C
From-SVN: r129774
2007-10-30 13:38:10 +00:00
Doug Gregor
88b823145e re PR c++/31993 (ICE with template class in variadic template class)
2007-10-30  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/31993
	PR c++/32252
	* pt.c (find_parameter_packs_r): Fix typo in comment.
	(convert_template_argument): Look at the pattern of a pack
	expansion to determine what kind of entity we're converting.
	(coerce_template_parameter_pack): When we have coerced a non-type
	template parameter pack, substitute into the type of that pack.
	(tsubst_pack_expansion): When our substitution of a parameter pack
	is a "trivial" substitution of itself, just substitute into the
	pack expansion rather than actually expanding.

2007-10-30  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/31993
	PR c++/32252
	* g++.dg/cpp0x/pr31993.C: New
	* g++.dg/cpp0x/pr32252.C: New

From-SVN: r129773
2007-10-30 13:36:34 +00:00
Jakub Jelinek
310750d8ec re PR tree-optimization/33723 (Inefficient code with compound literals)
PR tree-optimization/33723
	* gcc.dg/tree-ssa/pr33723.c (T): Decrease size of field s.

From-SVN: r129772
2007-10-30 14:29:57 +01:00
Richard Guenther
e0734f6239 tree-ssa-operands.c (add_vars_for_offset): Fix exit test of loop adding SFTs as virtual operands.
2007-10-30  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_vars_for_offset): Fix exit test
	of loop adding SFTs as virtual operands.

	* gcc.c-torture/execute/20071030-1.c: New testcase copied from
	gcc.target/i386/loop-3.c.

From-SVN: r129770
2007-10-30 13:22:36 +00:00
Richard Guenther
19d8eb46e3 Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H)
2007-10-30  Richard Guenther  <rguenther@suse.de>

        * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H)
        * dependencies.

From-SVN: r129768
2007-10-30 09:05:44 +00:00
Revital Eres
56ac967158 Fix vectorizer testcase
From-SVN: r129767
2007-10-30 08:26:14 +00:00
Revital Eres
1631b7dee2 Fix vectorizer testcases
From-SVN: r129766
2007-10-30 07:03:49 +00:00
Dorit Nuzman
a96681aaee re PR target/32893 (zlib segfault in inflate_table() compiled w/ -O -msse2 ftree-vectorize)
PR tree-optimization/32893
        * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
        STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.

From-SVN: r129764
2007-10-30 05:25:10 +00:00
GCC Administrator
43970902e4 Daily bump.
From-SVN: r129759
2007-10-30 00:17:29 +00:00
Rask Ingemann Lambertsen
9fe2319ede longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and x86_64 versions.
* longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
	x86_64 versions.
	(sub_ddmmss): Likewise.
	(umul_ppmm): Likewise.
	(udiv_qrnnd): Likewise.

From-SVN: r129756
2007-10-29 23:54:54 +00:00
Janis Johnson
9f143763f0 re PR testsuite/24841 (dg-require compilation-test trigged on test with additional-sources barfs)
PR testsuite/24841
	* doc/sourcebuild.texi (Test Directives): Document that dg-require
	directives must come before dg-additional-sources.

From-SVN: r129744
2007-10-29 22:33:53 +00:00
Jakub Jelinek
489f2598af re PR tree-optimization/33723 (Inefficient code with compound literals)
PR tree-optimization/33723
	* c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
	MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.

	* gcc.c-torture/execute/20071029-1.c: New test.
	* gcc.dg/tree-ssa/pr33723.c: New test.

From-SVN: r129743
2007-10-29 23:26:59 +01:00
Richard Sandiford
9f1da821e6 re PR tree-optimization/33614 (ICE on semi-constant vector CONSTRUCTORs)
gcc/
	PR tree-optimization/33614
	* gimplify.c (gimplify_init_constructor): Gimplify vector constructors
	if they can't be reduced to VECTOR_CSTs and aren't legitimate
	initializer constants.

gcc/testsuite/
	PR tree-optimization/33614
	* gcc.c-torture/compile/pr33614.c: New test.

From-SVN: r129739
2007-10-29 22:01:24 +00:00
Richard Guenther
5a347f2b40 re PR tree-optimization/33870 (miscompiles sqlite)
2007-10-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33870
	* tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
	(add_virtual_operand): Do not recurse into MPTs looking for pointed-to
	SFTs.

	* gcc.c-torture/execute/pr33870.x: XFAIL testcase for -O2 and -Os.

From-SVN: r129738
2007-10-29 21:47:05 +00:00
Jakub Jelinek
9c67102d11 re PR tree-optimization/33757 (Revision 126149 fails gcc.dg/tree-ssa/ssa-fre-4.c)
PR tree-optimization/33757
	* gcc.dg/tree-ssa/ssa-fre-4.c: Run on selected TARGET_PROMOTE_PROTOTYPES
	true architectures instead of having a big dg-skip-if.

From-SVN: r129737
2007-10-29 22:42:51 +01:00
Jakub Jelinek
e7df01809d re PR c++/33841 (ICE with non-integral bit-field)
PR c++/33841
	* class.c (check_bitfield_decl): Don't set field's type to error_mark_node
	for non-integral type bitfields.  Return true if bitfield is correct, false
	error has been diagnosed.
	(check_field_decls): If check_bitfield_decl returned false, call also
	check_field_decl.

	* g++.dg/other/bitfield3.C: New test.

From-SVN: r129736
2007-10-29 22:41:29 +01:00
Richard Guenther
324d22176d passes.c (init_optimization_passes): Exchange store_copy_prop with copy_prop.
2007-10-29  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Exchange store_copy_prop
	with copy_prop.
	* tree-pass.h (pass_store_copy_prop): Remove.
	* tree-ssa-copy.c (do_store_copy_prop): Remove.
	(stmt_may_generate-copy): Do not handle store_copy_prop.
	(get_copy_of_val): Likewise.
	(set_copy_of_val): Likewise.
	(copy_prop_visit_assignment): Likewise.
	(copy_prop_visit_stmt): Likewise.
	(copy_prop_visit_phi_node): Likewise.
	(init_copy_prop): Likewise.
	(execute_copy_prop): Likewise.
	(do_copy_prop): Remove.
	(gate_store_copy_prop): Likewise.
	(store_copy_prop): Likewise.
	(pass_store_copy_prop): Likewise.
	(pass_copy_prop): Call execute_copy_prop.
	* opts.c (decode_options): Do not set flag_tree_store_copy_prop.
	* common.opt (ftree-store-copy-prop): Mark obsolete.
	* doc/invoke.texi (ftree-store-copy-prop): Remove documentation.

	* gcc.dg/tree-ssa/ssa-copyprop-1.c: Scan optimized dump.

From-SVN: r129734
2007-10-29 21:16:45 +00:00
Ian Lance Taylor
0ba227b5a4 ifcvt.c (noce_can_store_speculate_p): New static function.
* ifcvt.c (noce_can_store_speculate_p): New static function.
	(noce_process_if_block): Call it.
	(if_convert): Remove recompute_dominance parameter.  Change all
	callers.

From-SVN: r129729
2007-10-29 20:41:17 +00:00
Richard Guenther
8ad6aff303 tree-flow-inline.h (get_subvar_at): Use binary search.
2007-10-29  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (get_subvar_at): Use binary search.
	(get_first_overlapping_subvar): New function to binary search
	for the first overlapping subvar.
	* tree-ssa-operands.c (add_vars_for_offset): Strip down to
	just handle adding subvars for a pointed-to subvar.  Optimize
	and use get_first_overlapping_subvar.
	(add_vars_for_bitmap): Fold into single caller.
	(add_virtual_operand): Streamline, inherit add_vars_for_bitmap
	and non pointed-to bits of add_vars_for_offset.

From-SVN: r129727
2007-10-29 18:27:38 +00:00
Uros Bizjak
bcf49b9e57 ChangeLog: Fix formatting.
* ChangeLog: Fix formatting.
	* testsuite/ChangeLog: Ditto.

From-SVN: r129723
2007-10-29 16:28:55 +01:00
Revital Eres
22c7e1461a SMS: Add use-def chain problem
From-SVN: r129721
2007-10-29 14:45:56 +00:00
Paul Thomas
640670c7f4 [multiple changes]
2007-10-29  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/31217
        PR fortran/33811
        PR fortran/33686
        * trans-array.c (gfc_conv_loop_setup): Send a complete type to
        gfc_trans_create_temp_array if the temporary is character.
        * trans-stmt.c (gfc_trans_assign_need_temp): Do likewise for
        allocate_temp_for_forall_nest.
        (forall_replace): New function.
        (forall_replace_symtree): New function.
        (forall_restore): New function.
        (forall_restore_symtree): New function.
        (forall_make_variable_temp): New function.
        (check_forall_dependencies): New function.
        (cleanup_forall_symtrees): New function.
        gfc_trans_forall_1): Add and initialize pre and post blocks.
        Call check_forall_dependencies to check for all dependencies
        and either trigger second forall block to copy temporary or
        copy lval, outside the forall construct and replace all
        dependent references. After assignment clean-up and coalesce
        the blocks at the end of the function.
        * gfortran.h : Add prototypes for gfc_traverse_expr and
        find_forall_index.
        expr.c (gfc_traverse_expr): New function to traverse expression
        and visit all subexpressions, under control of a logical flag,
        a symbol and an integer pointer. The slave function is caller
        defined and is only called on EXPR_VARIABLE.
        (expr_set_symbols_referenced): Called by above to set symbols
        referenced.
        (gfc_expr_set_symbols_referenced): Rework of this function to
        use two new functions above.
        * resolve.c (find_forall_index): Rework with gfc_traverse_expr,
        using forall_index.
        (forall_index): New function used by previous.
        * dependency.c (gfc_check_dependency): Use gfc_dep_resolver for
        all references, not just REF_ARRAY.
        (gfc_dep_resolver): Correct the logic for substrings so that
        overlapping arrays are handled correctly.

2007-10-29 Paul Thomas <pault@gcc.gnu.org>

        PR fortran/31217
        PR fortran/33811
        * gfortran.dg/forall_12.f90: New test.

        PR fortran/33686
        * gfortran.dg/forall_13.f90: New test.

From-SVN: r129720
2007-10-29 15:13:44 +01:00
Razya Ladelsky
a270181e40 2007-10-29 Razya Ladelsky
Automatic parallelization reduction tests.

        * testsuite/gcc.dg/tree-ssa/reduc-1.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-1char.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-1short.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-2.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-2char.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-2short.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-3.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-6.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-7.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-8.c: New test.
        * testsuite/gcc.dg/tree-ssa/reduc-9.c: New test.

From-SVN: r129718
2007-10-29 11:57:39 +00:00
Razya Ladelsky
e19149bfb0 2007-09-23 Razya Ladelsky
Zdenek Dvorak

	OMP_ATOMIC expand testsuite related changes.

	* testsuite/gcc.dg/gomp/atomic-3.c: Search for string on
	ompexp dump instead of gimple dump.
	* testsuite/gcc.dg/gomp/atomic-9.c: Same.
	* testsuite/gcc.dg/gomp/atomic-10.c: Same.
	* testsuite/g++.dg/gomp/atomic-3.C: Same.
	* testsuite/g++.dg/gomp/atomic-9.C: Same.
	* testsuite/g++.dg/gomp/atomic-10.C: Same.

From-SVN: r129717
2007-10-29 11:09:09 +00:00
Razya Ladelsky
a509ebb5a1 2007-09-23 Razya Ladelsky
Zdenek Dvorak

        OMP_ATOMIC Changes,
        Reduction support for automatic parallelization.

        * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
        OMP_ATOMIC_STORE.
        * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
        * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
        and OMP_ATOMIC_STORE.
        * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD,
        OMP_ATOMIC_STORE.
        * gimple-low.c (lower_stmt): Same.
        * gimplify.c (gimplify_expr): Same.
        (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
        gimplify_omp_atomic_mutex): Remove.
        (gimplify_omp_atomic): Change it to simply gimplify the
        statement instead of expanding it.
        * omp-low.c: Add includes to optabs.h, cfgloop.h.
        (expand_omp_atomic, expand_omp_atomic_pipeline,
        goa_stabilize_expr, expand_omp_atomic_mutex,
        expand_omp_atomic_fetch_op): New functions to implement
        expansion of OMP_ATOMIC.
        (expand_omp, build_omp_regions_1): Add support for
        OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
        * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
        OMP_ATOMIC_STORE.
        * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
        OMP_ATOMIC_STORE.
        * tree-parloops.c: add include to tree-vectorizer.h.
        (reduction_info): New structure for reduction.
        (reduction_list): New list to represent list of reductions
        per loop.
        (struct data_arg): New helper structure for reduction.
        (reduction_info_hash, reduction_info_eq, reduction_phi,
        initialize_reductions,
        create_call_for_reduction, create_phi_for_local_result,
        create_call_for_reduction_1, create_loads_for_reductions,
        create_final_loads_for_reduction): New functions.
        (loop_parallel_p): Identify reductions, add reduction_list parameter.
        (separate_decls_in_loop_name): Support reduction variables.
        (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
        call create_loads_for_reduction for each reduction.
        (canonicalize_loop_ivs): Identify reductions, add reduction_list
        parameter.
        (transform_to_exit_first_loop): Add reduction support, add
        reduction_list parameter.
        (gen_parallel_loop): Add reduction_list parameter. Add call
        separate_decls_in_loop with
        the new argument. Traverse reductions and call
        initialize_reductions, create_call_for_reduction.
        (parallelize_loops): Create and delete the reduction list.
        (add_field_for_name): Change use of data parameter. Add fields for
        reductions.
        * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
        * tree-vect-analyze.c (vect_analyze_loop_form): export it.
        * tree.def: Add definitions for OMP_ATOMIC_LOAD,
        OMP_ATOMIC_STORE.
        * tree-inline.c (estimate_num_insns_1): add cases for
        OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
        * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD,
        OMP_ATOMIC_STORE.
        * tree-ssa-operands.c (get_addr_dereference_operands):
        New function. Subroutine of get_indirect_ref_operands.
        (get_indirect_ref_operands): Call get_addr_dereference_operands.
        (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.

From-SVN: r129716
2007-10-29 11:05:04 +00:00
Hans-Peter Nilsson
a3ef23490a cris.c: Include df.h.
* config/cris/cris.c: Include df.h.
	(cris_address_cost): Add gcc_assert for canonicalization
	assumptions.  For PLUS with MULT or register, correct
	test for register in other arm.  Tweak comments.

From-SVN: r129713
2007-10-29 00:26:20 +00:00