Commit Graph

99443 Commits

Author SHA1 Message Date
Wei Guozhi
7548c1be3a re PR target/41653 (not optimal result for multiplication with constant when -Os is specified)
PR target/41653
        * config/arm/arm.c (thumb1_size_rtx_costs): New function.
        (arm_size_rtx_costs): Call the new function when optimized for size.

From-SVN: r158110
2010-04-08 09:27:44 +00:00
Jakub Jelinek
aa847cc8ec re PR debug/43670 ("-fcompare-debug failure (length)" with -O -ftree-vrp)
PR debug/43670
	* cfgexpand.c (expand_debug_expr): If for non-NULL offset
	op0 is not a MEM, just return NULL instead of assertion
	failure.
	(discover_nonconstant_array_refs): Don't walk debug stmts.

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

From-SVN: r158108
2010-04-08 11:16:28 +02:00
Doug Kwan
1dcc82c2c7 configure.ac: Recognize gold and do not use its version number to test ld features.
2010-04-07  Doug Kwan  <dougkwan@google.com>

	* configure.ac: Recognize gold and do not use its version number
	to test ld features.
	* configure: Regenerate.

From-SVN: r158106
2010-04-08 08:41:50 +00:00
Maxim Kuvyrkov
b0aef8a83c re PR middle-end/40815 (redundant neg instruction caused by loop-invariant)
PR middle-end/40815
	* tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
	(negate_value): Move code to push elements to broken_up_substracts ...
	(eliminate_plus_minus_pair): ... here.  Push operands that have no
	negative pair to plus_negates.
	(repropagate_negates, init_reassoc, fini_reassoc): Update.

	PR middle-end/40815
	* gcc.dg/tree-ssa/reassoc-19.c: New.

From-SVN: r158105
2010-04-08 08:20:36 +00:00
GCC Administrator
0b2de94824 Daily bump.
From-SVN: r158103
2010-04-08 00:17:39 +00:00
Jason Merrill
fb4117f8d9 re PR c++/43016 ([C++0x] Inappropriate multiple definition error for lambda function when inside inline functions)
PR c++/43016
	* decl.c (start_preparsed_function): Do defer nested functions.

From-SVN: r158095
2010-04-07 18:16:15 -04:00
Joseph Myers
aae43040a0 * crontab: Switch 4.5 snapshots to 4.5 branch.
From-SVN: r158091
2010-04-07 22:36:44 +01:00
Ralf Wildenhues
2d413304b0 Move LTO build option description to correct subheading.
gcc/:
	* doc/install.texi (Configuration): Move description of
	--enable-lto, --with-libelf*, --enable-gold from Java section to
	general section.

From-SVN: r158089
2010-04-07 20:52:27 +00:00
Ralf Wildenhues
7a50adb78f Fix documentation typos.
gcc/:
	* doc/generic.texi (Working with declarations)
	(Function Properties, C and C++ Trees): Fix typos.
	* doc/sourcebuild.texi (Top Level): Likewise.

From-SVN: r158088
2010-04-07 20:49:41 +00:00
Jakub Jelinek
ebfbbdc556 re PR c/18624 (GCC does not detect local variable set but never used)
PR c/18624
	* tree.h (DECL_READ_P): Define.
	(struct tree_decl_common): Add decl_read_flag.
	* c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
	a set but not used warning.
	(merge_decls): Merge DECL_READ_P flag.
	(finish_decl, build_compound_literal): Set DECL_READ_P flag.
	(finish_function): Issue -Wunused-but-set-parameter diagnostics.
	* c-common.c (handle_used_attribute, handle_unused_attribute):
	Likewise.
	* c-tree.h (default_function_array_read_conversion, mark_exp_read):
	New prototypes.
	* c-typeck.c (default_function_array_read_conversion, mark_exp_read):
	New functions.
	(default_conversion, c_process_expr_stmt): Call mark_exp_read.
	* c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
	c_parser_binary_expression, c_parser_cast_expression,
	c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
	Call default_function_array_read_conversion instead of
	default_function_array_conversion where needed.
	(c_parser_unary_expression, c_parser_conditional_expression,
	c_parser_postfix_expression_after_primary, c_parser_initelt):
	Likewise.  Call mark_exp_read where needed.
	(c_parser_statement_after_labels, c_parser_asm_operands,
	c_parser_typeof_specifier, c_parser_sizeof_expression,
	c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
	where needed.
	* common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
	New.
	* toplev.c (warn_unused_but_set_variable): Default to warn_unused.
	(warn_unused_but_set_parameter): Default to warn_unused
	&& extra_warnings.
	* doc/invoke.texi: Document -Wunused-but-set-variable and
	-Wunused-but-set-parameter.

	* objc-act.c (finish_var_decl, objc_begin_catch_clause,
	really_start_method, get_super_receiver, handle_class_ref): Set
	DECL_READ_P in addition to TREE_USED.

	* gcc.dg/Wunused-var-1.c: New test.
	* gcc.dg/Wunused-var-2.c: New test.
	* gcc.dg/Wunused-var-3.c: New test.
	* gcc.dg/Wunused-var-4.c: New test.
	* gcc.dg/Wunused-var-5.c: New test.
	* gcc.dg/Wunused-var-6.c: New test.
	* gcc.dg/Wunused-parm-1.c: New test.

From-SVN: r158086
2010-04-07 22:33:36 +02:00
Jakub Jelinek
0bb8c1342f tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not used count variable.
* tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
	used count variable.
	* genemit.c (gen_expand, gen_split): Avoid set but not used warnings
	when operandN variables aren't used in the body of the expander
	or splitter.
	* tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
	FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
	* tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
	* tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
	FOR_EACH_IMM_USE_ON_STMT): Likewise.
	* tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
	* tree.c (PROCESS_ARG): Likewise.
fortran/
	* parse.c (parse_derived, parse_enum): Avoid set but not used
	warning.
java/
	* expr.c (process_jvm_instruction): Avoid set but not used warning.
	* builtins.c (compareAndSwapInt_builtin, compareAndSwapLong_builtin,
	getVolatile_builtin): Likewise.
libjava/
	* exception.cc (_Jv_Throw): Avoid set but not used warning.
	* include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
	sizeof to avoid set but not used warnings.
libjava/classpath/
	* native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c
	(Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1):
	Avoid set but not used warning.
libiberty/
	* regex.c (byte_re_match_2_internal): Avoid set but not used
	warning.
gcc/testsuite/
	* gcc.dg/builtin-choose-expr.c: Avoid set but not used warnings.
	* gcc.dg/trunc-1.c: Likewise.
	* gcc.dg/vla-9.c: Likewise.
	* gcc.dg/dfp/composite-type.c: Likewise.
libffi/
	* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.

From-SVN: r158085
2010-04-07 22:29:01 +02:00
Jakub Jelinek
60d3aec487 tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not used count variable.
* tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
	used count variable.
	* genemit.c (gen_expand, gen_split): Avoid set but not used warnings
	when operandN variables aren't used in the body of the expander
	or splitter.
	* tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
	FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
	* tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
	* tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
	FOR_EACH_IMM_USE_ON_STMT): Likewise.
	* tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
	* tree.c (PROCESS_ARG): Likewise.
fortran/
	* parse.c (parse_derived, parse_enum): Avoid set but not used
	warning.
java/
	* expr.c (process_jvm_instruction): Avoid set but not used warning.
	* builtins.c (compareAndSwapInt_builtin, compareAndSwapLong_builtin,
	getVolatile_builtin): Likewise.
libjava/
	* exception.cc (_Jv_Throw): Avoid set but not used warning.
	* include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
	sizeof to avoid set but not used warnings.
libjava/classpath/
	* native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c
	(Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1):
	Avoid set but not used warning.
libiberty/
	* regex.c (byte_re_match_2_internal): Avoid set but not used
	warning.
gcc/testsuite/
	* gcc.dg/builtin-choose-expr.c: Avoid set but not used warnings.
	* gcc.dg/trunc-1.c: Likewise.
	* gcc.dg/vla-9.c: Likewise.
	* gcc.dg/dfp/composite-type.c: Likewise.
libffi/
	* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.

From-SVN: r158084
2010-04-07 22:27:37 +02:00
Iain Sandoe
b51e84c954 re PR objc/35996 (ICE while building simple ObjC code with -fobjc-gc)
gcc/objc/Changelog:
2010-04-07  Iain Sandoe <iains@gcc.gnu.org>

	PR objc/35996
	* objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
	-fgnu-runtime and set flag_objc_gc to zero.

testsuite:
2010-04-07  Iain Sandoe <iains@gcc.gnu.org>

	PR objc/35996
	* objc.dg/objc-gc-4.m: Run for all targets, prune new warning.
	* obj-c++.dg/objc-gc-3.mm: Ditto.

From-SVN: r158083
2010-04-07 19:57:46 +00:00
Janne Blomqvist
927f484261 PR fortran/40539 Document LOGICAL representation
From-SVN: r158080
2010-04-07 21:01:24 +03:00
Simon Baldwin
87cf065171 diagnostic.h (diagnostic_override_option_index): New macro to set a diagnostic's option_index.
* diagnostic.h (diagnostic_override_option_index): New macro to
	set a diagnostic's option_index.
	* c-tree.h (c_cpp_error): Add warning reason argument.
	* opts.c (_warning_as_error_callback): New.
	(register_warning_as_error_callback): Store callback for
	warnings enabled via enable_warning_as_error.
	(enable_warning_as_error): Call callback, minor code tidy.
	* opts.h (register_warning_as_error_callback): Declare.
	* c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
	response to -Werror=.
	(c_common_init_options): Register warning_as_error_callback in opts.c.
	* common.opt: Add -Wno-cpp option.
	* c-common.c (struct reason_option_codes_t): Map cpp warning
	reason codes to gcc option indexes.
	* (c_option_controlling_cpp_error): New function, lookup the gcc
	option index for a cpp warning reason code.
	* (c_cpp_error): Add warning reason argument, call
	c_option_controlling_cpp_error for diagnostic_override_option_index.
	* doc/invoke.texi: Document -Wno-cpp.

	* cpp.c (cb_cpp_error): Add warning reason argument, set a value
	for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.

	* directives.c (do_diagnostic): Add warning reason argument,
	call appropriate error reporting function for code.
	(directive_diagnostics): Call specific warning functions with
	warning reason where appropriate.
	(do_error, do_warning, do_pragma_dependency): Add warning reason
	argument to do_diagnostic calls.
	* macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
	_cpp_create_definition): Call specific warning functions with
        warning reason where appropriate.
	* Makefile.in: Add new diagnostic functions to gettext translations.
	* include/cpplib.h (struct cpp_callbacks): Add warning reason code
	to error callback.
	(CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
	CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
	(CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
	CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
	CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
	CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
	CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
	CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
	CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
	warning reason codes.
	(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
	cpp_warning_with_line, cpp_pedwarning_with_line,
	cpp_warning_with_line_syshdr): New specific error reporting functions.
	* pch.c (cpp_valid_state): Call specific warning functions with
        warning reason where appropriate.
	* errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
	diagnostic handlers.
	(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
	cpp_warning_with_line, cpp_pedwarning_with_line,
	cpp_warning_with_line_syshdr): New specific error reporting functions.
	* expr.c (cpp_classify_number, eval_token, num_unary_op): Call
	specific warning functions with warning reason where appropriate.
	* lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
	warn_about_normalization, lex_identifier_intern, lex_identifier,
	_cpp_lex_direct): Ditto.
	* charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
	narrow_str_to_charconst): Ditto.

	* gcc.dg/cpp/warn-undef-2.c: New.
	* gcc.dg/cpp/warn-traditional-2.c: New.
	* gcc.dg/cpp/warn-comments-2.c: New.
	* gcc.dg/cpp/warning-directive-1.c: New.
	* gcc.dg/cpp/warn-long-long.c: New.
	* gcc.dg/cpp/warn-traditional.c: New.
	* gcc.dg/cpp/warn-variadic-2.c: New.
	* gcc.dg/cpp/warn-undef.c: New.
	* gcc.dg/cpp/warn-normalized-1.c: New.
	* gcc.dg/cpp/warning-directive-2.c: New.
	* gcc.dg/cpp/warn-long-long-2.c: New.
	* gcc.dg/cpp/warn-variadic.c: New.
	* gcc.dg/cpp/warn-normalized-2.c: New.
	* gcc.dg/cpp/warning-directive-3.c: New.
	* gcc.dg/cpp/warn-deprecated-2.c: New.
	* gcc.dg/cpp/warn-trigraphs-1.c: New.
	* gcc.dg/cpp/warn-multichar-2.c: New.
	* gcc.dg/cpp/warn-normalized-3.c: New.
	* gcc.dg/cpp/warning-directive-4.c: New.
	* gcc.dg/cpp/warn-unused-macros.c: New.
	* gcc.dg/cpp/warn-trigraphs-2.c: New.
	* gcc.dg/cpp/warn-cxx-compat-2.c: New.
	* gcc.dg/cpp/warn-cxx-compat.c: New.
	* gcc.dg/cpp/warn-redefined.c: New.
	* gcc.dg/cpp/warn-trigraphs-3.c: New.
	* gcc.dg/cpp/warn-unused-macros-2.c: New.
	* gcc.dg/cpp/warn-deprecated.c: New.
	* gcc.dg/cpp/warn-trigraphs-4.c: New.
	* gcc.dg/cpp/warn-redefined-2.c: New.
	* gcc.dg/cpp/warn-comments.c: New.
	* gcc.dg/cpp/warn-multichar.c: New.
	* g++.dg/cpp/warning-directive-1.C: New.
	* g++.dg/cpp/warning-directive-2.C: New.
	* g++.dg/cpp/warning-directive-3.C: New.
	* g++.dg/cpp/warning-directive-4.C: New.
	* gfortran.dg/warning-directive-1.F90: New.
	* gfortran.dg/warning-directive-3.F90: New.
	* gfortran.dg/warning-directive-2.F90: New.
	* gfortran.dg/warning-directive-4.F90: New.

From-SVN: r158079
2010-04-07 17:18:10 +00:00
Iain Sandoe
58e0f0d345 re PR objc++/23716 (obj-c++.dg/comp-types-10.mm ICE with the GNU runtime)
fix PR23716

2010-04-07  Iain Sandoe <iains@gcc.gnu.org>

	PR objc++/23716
	* objc-act.c (build_module_initializer_routine): Make the argument
	to objc_start_function NULL_TREE when compiling ObjC++.

2010-04-07  Iain Sandoe <iains@gcc.gnu.org>

	PR objc++/23716
	* obj-c++.dg/comp-types-10.mm: Remove XFAIL.

From-SVN: r158076
2010-04-07 16:20:08 +00:00
Jason Merrill
483264879c PR c++/11094, DR 408
PR c++/11094, DR 408
	* cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
	* decl2.c (finish_static_data_member_decl): Set it.
	* decl.c (duplicate_decls): Propagate it.
	* pt.c (tsubst_decl): Don't substitute the domain of an array
	VAR_DECL if it's set.
	(regenerate_decl_from_template): Substitute it here.
	(type_dependent_expression_p): Return true if it's set.
	* semantics.c (finish_decltype_type): Instantiate such a variable.
	* typeck.c (cxx_sizeof_expr): Likewise.
	(strip_array_domain): New.

From-SVN: r158075
2010-04-07 11:55:20 -04:00
Jason Merrill
ae099258d3 name-lookup.c (current_decl_namespace): Non-static.
* name-lookup.c (current_decl_namespace): Non-static.
	(pop_nested_namespace): Sanity check.
	* cp-tree.h: Declare current_decl_namespace.
	* decl.c (grokvardecl): Use it instead of current_namespace.
	(grokfndecl): Likewise.
	* gnu/gcj/runtime/natSharedLibLoader.cc (findCore): Move
	declaration of _Jv_create_core out of the function.

From-SVN: r158074
2010-04-07 11:55:02 -04:00
Jason Merrill
feb3b88ad7 re PR c++/38392 (Template friend function injection)
PR c++/38392
	* pt.c (tsubst_friend_function): Instatiate a friend that has already
	been used.

From-SVN: r158073
2010-04-07 11:54:42 -04:00
Jason Merrill
7dcfe861f1 pt.c (print_template_statistics): New.
* pt.c (print_template_statistics): New.
	* cp-tree.h: Declare it.
	* tree.c (cxx_print_statistics): Call it.

From-SVN: r158072
2010-04-07 11:54:29 -04:00
Jason Merrill
2401726e18 re PR c++/41970 (use of a type with no linkage to declare a variable with linkage)
PR c++/41970
	* decl.c (grokvardecl): Tweak warning message.
	(grokfndecl): Likewise.

From-SVN: r158071
2010-04-07 11:54:17 -04:00
Richard Guenther
2ea9dc6459 ipa-reference.c (mark_load): Use get_base_address.
2010-04-07  Richard Guenther  <rguenther@suse.de>

	* ipa-reference.c (mark_load): Use get_base_address.
	(mark_store): Likewise.

	* tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
	inserting GIMPLE_NOPs into the IL.
	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Explicitly strip handled components and indirect references.
  
	* fold-const.c (fold_unary_loc): Do not strip qualifiers when
	folding address expressions.
	* gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
	* tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
	operand_equal_p to compare decls.
	(ptr_deref_may_alias_decl_p): Likewise.
	* tree-ssa-operands.c (get_asm_expr_operands): Simplify
	* tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
	Handle reversed comparison ops.
	* tree-sra.c (asm_visit_addr): Use get_base_address.
	* ipa-prop.c (visit_store_addr_for_mod_analysis): Use
	get_base_address.
	* ipa-reference.c (mark_address): Use get_base_address.

From-SVN: r158069
2010-04-07 15:31:37 +00:00
Dodji Seketeli
5fd5c97a34 re PR c++/42697 (ice-on-legal-code: template class template function local objects)
Fix PR c++/42697

gcc/cp/ChangeLog:
	PR c++/42697
	*pt.c (tsubst_decl): Get the arguments of a specialization from
	the specialization template, not from the most general template.

gcc/testsuite/ChangeLog:
	PR c++/42697
	* g++.dg/template/crash94.C: New test.

From-SVN: r158068
2010-04-07 17:16:12 +02:00
Dodji Seketeli
7c094c1151 re PR c++/40239 (Aggregate initialization requires copy constructor)
Fix PR c++/40239

gcc/cp/ChangeLog:
	PR c++/40239
	* typeck2.c (process_init_constructor_record):
	value-initialize members that are are not explicitely
	initialized.

gcc/testsuite/ChangeLog:
	PR c++/40239
	* g++.dg/init/aggr5.C: New test.
	* g++.dg/init/aggr5.C: New test.

From-SVN: r158066
2010-04-07 17:11:42 +02:00
Richard Guenther
95d938ee6f tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate constants everywhere.
2010-04-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr):
	Propagate constants everywhere.

From-SVN: r158063
2010-04-07 14:34:35 +00:00
Jakub Jelinek
1a299ae4f2 re PR debug/43516 ("-fcompare-debug failure" at -O2)
PR debug/43516
	* tree.c (MAX_INT_CACHED_PREC): Define.
	(nonstandard_integer_type_cache): New array.
	(build_nonstandard_integer_type): Cache results for precision
	<= MAX_INT_CACHED_PREC.

From-SVN: r158062
2010-04-07 16:23:35 +02:00
Richard Guenther
0d3c82d66e invoke.texi (-fargument-alias, [...]): Remove.
2010-04-07  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-fargument-alias, -fargument-noalias,
	-fargument-noalias-global, -fargument-noalias-anything): Remove.
	* common.opt: Likewise.
	* tree-ssa-structalias.c (intra_create_variable_infos): Adjust
	comment.
	* alias.c (base_alias_check): Remove flag_argument_noalias
	handling.
	(nonoverlapping_memrefs_p): Likewise.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
	* opts.c (common_handle_option): Handle OPT_fargument_alias,
	OPT_fargument_noalias, OPT_fargument_noalias_anything and
	OPT_fargument_noalias_global for backward compatibility.

	fortran/
	* options.c (gfc_init_options): Do not set.

From-SVN: r158060
2010-04-07 13:08:24 +00:00
Richard Guenther
12bd5a1e9f re PR tree-optimization/43270 (array-bounds false negative)
2010-04-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43270
	* tree-vrp.c (check_array_ref): Fix flexible array member
	detection.
	* tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
	* tree-ssa-pre.c (phi_translate_1): Adjust.
	(fully_constant_expression): Split out vn_reference handling to ...
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
	Fold reads from constant strings.
	(vn_reference_lookup): Handle fully constant references.
	(vn_reference_lookup_pieces): Likewise.
	* Makefile.in (expmed.o-warn): Add -Wno-error.

	* g++.dg/warn/Warray-bounds-4.C: New testcase.
	* gcc.dg/Warray-bounds-7.c: Likewise.

From-SVN: r158058
2010-04-07 12:31:32 +00:00
Martin Jambor
a775239672 tree-sra.c (find_param_candidates): Allow scalar va_list types.
2010-04-07  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (find_param_candidates): Allow scalar va_list types.

From-SVN: r158057
2010-04-07 13:43:38 +02:00
Eric Botcazou
b1fa9126ab exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type if the size is small enough.
* exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type
	if the size is small enough.  Propagate the alignment if there is an
	alignment clause on the original array type.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>
	Deal with under-aligned packed array types.  Copy the size onto the
	justified modular type and don't lay it out again.  Likewise for the
	padding type built for other under-aligned subtypes.
	* gcc-interface/utils.c (finish_record_type): Do not set a default mode
	on the type.

From-SVN: r158056
2010-04-07 11:38:06 +00:00
Eric Botcazou
19c8469429 decl.c (gnat_to_gnu_entity): Set default alignment on the RETURN type built for the Copy-In Copy-Out mechanism.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set default
	alignment on the RETURN type built for the Copy-In Copy-Out mechanism.

From-SVN: r158054
2010-04-07 10:51:30 +00:00
Eric Botcazou
55ba23c404 trans.c (call_to_gnu): In the return-by-target-ptr case do not set the result type if...
* gcc-interface/trans.c (call_to_gnu): In the return-by-target-ptr case
	do not set the result type if there is a specified target and do not
	convert the result in any cases.
	(protect_multiple_eval): Make direct SAVE_EXPR for CALL_EXPR.
	(maybe_stabilize_reference) <COMPOUND_EXPR>: Merge with CALL_EXPR.

From-SVN: r158053
2010-04-07 10:49:53 +00:00
Iain Sandoe
6392bea602 re PR driver/41594 (-static-libstdc++ is not recognized as valid by the gcc driver.)
2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>

	PR driver/41594
	* gcc.c: Add -static-libstdc++ to list of recognized options.

From-SVN: r158052
2010-04-07 10:40:06 +00:00
Rainer Orth
9d151aff95 Update comment for last commit.
From-SVN: r158051
2010-04-07 10:35:19 +00:00
Rainer Orth
9af272207f config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
* config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to
	generic.

From-SVN: r158049
2010-04-07 10:30:32 +00:00
Richard Guenther
83a416b095 re PR rtl-optimization/42617 (TARGET_MEM_REF and plain INDIRECT_REFs are not handled by the RTL oracle)
2010-04-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42617
	* expr.c (expand_expr_real_1): For TARGET_MEM_REFs with
	pointer bases build simple mem attributes to retain
	points-to information.

From-SVN: r158048
2010-04-07 10:15:05 +00:00
Jie Zhang
6addabbbe8 re PR c++/42556 (Unnecessary generation of a zero initializer for array with C++)
cp/
	PR c++/42556
	* typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
	when all of its elements are non-constant and have been split out.

	testsuite/
	PR c++/42556
	* g++.dg/init/pr42556.C: New test.

From-SVN: r158047
2010-04-07 10:14:45 +00:00
Richard Guenther
366f945f9b re PR rtl-optimization/42617 (TARGET_MEM_REF and plain INDIRECT_REFs are not handled by the RTL oracle)
2010-04-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42617
	* alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
	preserve points-to related information.

From-SVN: r158046
2010-04-07 10:14:17 +00:00
Richard Guenther
56c47f2271 re PR rtl-optimization/42617 (TARGET_MEM_REF and plain INDIRECT_REFs are not handled by the RTL oracle)
2010-04-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42617
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
	discard plain indirect references.
	* fold-const.c (operand_equal_p): Guard against NULL_TREE
	type.
	* tree.c (tree_nop_conversion): Likewise.

From-SVN: r158045
2010-04-07 10:13:25 +00:00
Dodji Seketeli
a42f121709 re PR debug/43628 (in-class func-ptr type parameter has unspecified DW_AT_type)
Fix PR debug/43628

gcc/ChangeLog:
	PR debug/43628
	* dwarf2out.c (modified_type_die): Ignore artificial typedefs.

gcc/testsuite/ChangeLog:
	PR debug/43628
	* g++.dg/debug/dwarf2/typedef2.C: New test.

From-SVN: r158044
2010-04-07 11:59:04 +02:00
Kai Tietz
b97b26342e i386.c (ix86_handle_cconv_attribute): Ignore calling convention attributes on METHOD_TYPEs for w64 ABI, too.
2010-04-06  Kai Tietz  <kai.tietz@onevision.com>

        * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
        calling convention attributes on METHOD_TYPEs for w64 ABI, too.

From-SVN: r158042
2010-04-07 10:04:59 +02:00
Sebastian Pop
62ef243189 Fix comments.
2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Fix indentation and comments.

From-SVN: r158041
2010-04-07 06:33:55 +00:00
Sebastian Pop
baaa8e9638 Sort static functions in topological order.
2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Sort static functions in topological order.

From-SVN: r158040
2010-04-07 06:33:45 +00:00
Sebastian Pop
b6779d815b Fix comments in ifconvert.
2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Fix indentation and comments.

From-SVN: r158039
2010-04-07 06:33:35 +00:00
GCC Administrator
bdd277f3a0 Daily bump.
From-SVN: r158038
2010-04-07 00:19:41 +00:00
Dodji Seketeli
c88199cdaf redeclaration-1.C: Moved from c-c++-common/dwarf2/redeclaration-1.C
2010-04-06  Dodji Seketeli  <dodji@redhat.com>

	* g++.dg/debug/dwarf2/redeclaration-1.C: Moved from
	c-c++-common/dwarf2/redeclaration-1.C

From-SVN: r158031
2010-04-06 23:26:35 +02:00
Jason Merrill
d4a2b48623 parser.c (cp_parser_class_specifier): Set class location to that of IDENTIFIER_NODE instead of '{' when possible.
* parser.c (cp_parser_class_specifier): Set class location to that
	of IDENTIFIER_NODE instead of '{' when possible.
	* semantics.c (begin_class_definition): Do not overide locations
	with less precise ones.

From-SVN: r158030
2010-04-06 17:13:07 -04:00
Sebastian Pop
9310a3e269 Add ChangeLog entries.
From-SVN: r158029
2010-04-06 21:05:06 +00:00
Sebastian Pop
b8132a7dfb Fix 473.astar miscompile.
2010-04-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* graphite-clast-to-gimple.c (max_signed_precision_type): Use
	lang_hooks.types.type_for_size instead of build_nonstandard_integer_type.
	When converting an unsigned type to signed, double its precision.
	(gcc_type_for_interval): Use lang_hooks.types.type_for_size.
	(gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
	(graphite_create_new_loop_guard): When ub + 1 wraps around, use lb <= ub.

From-SVN: r158028
2010-04-06 21:03:37 +00:00
Sebastian Pop
dbe0d65216 Use POINTER_PLUS_EXPR for pointer types.
2010-04-04  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
	POINTER_PLUS_EXPR for pointer types.

	* gcc.dg/graphite/id-19.c: New.

From-SVN: r158027
2010-04-06 21:02:25 +00:00