gcc.git
13 years agoPR 45629 Remove usage of setjmp/longjmp
Janne Blomqvist [Tue, 2 Nov 2010 12:56:38 +0000 (14:56 +0200)]
PR 45629 Remove usage of setjmp/longjmp

From-SVN: r166180

13 years agoRestore canonical type comparison for dependent type(def)s
Dodji Seketeli [Tue, 2 Nov 2010 12:44:19 +0000 (12:44 +0000)]
Restore canonical type comparison for dependent type(def)s

This patch restores canonical type comparison for dependent types and
then dependent typedefs. After this patch, two template type
parameters T are equal if they have the same index, level, *and*
number of sibling parameters. The novelty is to take in account the
number of sibling parameters.

To do this we first build the template parameters w/o taking in
account their number of siblings. When we know the number of template
parameters we fix up each template parameter with the number of
slibling parameters and we build the appropriate canonical types
accordingly. The patch fixes the fallouts deemed necessary.

This fixes PR c++/45606 but actually fixes all the previous bugs
related to dependent typedef comparison we had since we started to
properly representing dependent typedefs.

gcc/cp/ChangeLog:
PR c++/45606
* cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): Remove.
(struct template_parm_index_s)<num_siblings>: New field.
(TEMPLATE_PARM_NUM_SIBLINGS): New accessor.
(process_template_parm): Extend the API to accept the number of
template parms in argument.
(cp_set_underlying_type): Remove this.
* class.c (build_self_reference): Require canonical type equality
back on the self reference of class.
* decl2.c (grokfield): Require canonical type equality back on
typedef class fields.
* name-lookup.c (pushdecl_maybe_friend): Require canonical type
equality back on typedefs.
* parser.c (cp_parser_template_parameter_list): Do not require
canonical type equality on dependent types created during
template parameters parsing.
* pt.c (fixup_template_type_parm_type, fixup_template_parm_index)
(fixup_template_parm, fixup_template_parms): New private
functions.
(current_template_args): Declare this.
(process_template_parm): Pass the total number of template parms
to canonical_type_parameter.
(build_template_parm_index): Add a new argument to carry the total
number of template parms.
(reduce_template_parm_level, process_template_parm, make_auto): Adjust.
(current_template_args): Fix this for template template
parameters.
(tsubst_template_parm): Split out of ...
(tsubst_template_parms): ... this.
(reduce_template_parm_level): Don't loose
TEMPLATE_PARM_NUM_SIBLINGS when cloning a TEMPLATE_PARM_INDEX.
(template_parm_to_arg): Extracted this function from
current_template_args. Make it represent invalid template parms
with an error_mark_node instead of a LIST_TREE containing an
error_mark_node.
(current_template_args): Use template_parm_to_arg.
(dependent_template_arg_p): Consider an invalid template argument
as dependent.
(end_template_parm_list): Do not update template sibling parms
here anymore. Use fixup_template_parms instead.
(process_template_parm): Pass the number of template parms to
canonical_type_parameter.
(make_auto): Require structural equality on auto
TEMPLATE_TYPE_PARM for now.
(unify)<BOUND_TEMPLATE_TEMPLATE_PARM>: Coerce template parameters
using all the arguments deduced so far.
(tsubst)<TEMPLATE_TYPE_PARM>: Pass the number of sibling parms to
canonical_type_parameter.
* tree.c (cp_set_underlying_type): Remove.
* typeck.c (get_template_parms_of_dependent_type)
(incompatible_dependent_types_p): Remove.
(structural_comptypes): Do not call incompatible_dependent_types_p
anymore.
(comp_template_parms_position): Re-organized. Take the length of
template parms list in account.

gcc/testsuite/ChangeLog:
PR c++/45606
* g++.dg/template/typedef36.C: New test.
* gcc/testsuite/g++.dg/template/canon-type-9.C: Likewise.
* g++.dg/template/canon-type-10.C: Likewise.
* g++.dg/template/canon-type-11.C: Likewise.
* g++.dg/template/canon-type-12.C: Likewise.
* g++.dg/template/canon-type-13.C: Likewise.

From-SVN: r166179

13 years agoi386.c (cpu_names): Add "corei7".
Bernd Schmidt [Tue, 2 Nov 2010 12:40:42 +0000 (12:40 +0000)]
i386.c (cpu_names): Add "corei7".

* config/i386/i386.c (cpu_names): Add "corei7".
* config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.

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

13 years agoTune alignment for Intel Core i7
Bernd Schmidt [Tue, 2 Nov 2010 12:34:02 +0000 (12:34 +0000)]
Tune alignment for Intel Core i7

* config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
(enum processor_type): Update comment.  Add entries for Core i7.
* config/i386-c.c (ix86_target_macros_internal): Update.
* config/i386.c (m_COREI7{_32,_64}): New macros.
(m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
(processor_target_table): Tune alignment for Core i7.
(ix86_option_override_internal): Use PROCESSOR_COREI7_*.

* doc/invoke.texi: Document "corei7" option value.

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

13 years agoBasic support for Intel Core i7
Bernd Schmidt [Tue, 2 Nov 2010 12:30:26 +0000 (12:30 +0000)]
Basic support for Intel Core i7

* i386.c (ix86_option_override_internal): Add entry for corei7, use
generic tuning.  Use generic32 when compiling for 32-bit ABI.

Co-Authored-By: H.J. Lu <hjl.tools@gmail.com>
Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
From-SVN: r166176

13 years agoimprove darwin section ordering between debug/non-debug cases.
Iain Sandoe [Tue, 2 Nov 2010 11:14:42 +0000 (11:14 +0000)]
improve darwin section ordering between debug/non-debug cases.

gcc:

* config/darwin.c (darwin_asm_named_section): Check for __DWARF
sections and call darwin_asm_dwarf_section() to handle them.
(darwin_asm_dwarf_section): New.
(darwin_file_start): Remove code emitting dwarf section symbols.

testsuite:

* g++.dg/debug/dwarf2/pubnames-1.C: Amend to check for only one instance
of debug_pubnames on darwin.

From-SVN: r166174

13 years agoMakefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector...
Chung-Lin Tang [Tue, 2 Nov 2010 10:34:54 +0000 (10:34 +0000)]
Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector...

* Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
explicitly disable stack protection when building libgcc.
(CRTSTUFF_CFLAGS): Same, for crtbegin/end.

From-SVN: r166173

13 years agolibstdc++: N3126 draft support.
Benjamin Kosnik [Tue, 2 Nov 2010 02:35:28 +0000 (02:35 +0000)]
libstdc++: N3126 draft support.

* include/std/chrono: Extend constexpr application.
* testsuite/util/testsuite_common_types.h
(constexpr_default_constructible, constexpr_single_value_constructible)
: Add comments about implied constraints.
* testsuite/20_util/duration/cons/constexpr.cc: Activate all tests.
* testsuite/20_util/time_point/cons/constexpr.cc: Same.
* testsuite/20_util/time_point/requirements/constexpr_functions.cc:
Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust line
numbers.
* testsuite/20_util/time_point_cast/constexpr.cc: New.

* include/std/bitset: Use __SIZEOF_* macros to re-create original
logic instead of slipshod application of
std::numeric_limits<T>::max() macros.
* testsuite/util/testsuite_common_types.h
(constexpr_default_constructible): Modify.

* include/std/chrono: Tested constexpr.
* testsuite/20_util/duration_cast/constexpr.cc: New.
* testsuite/20_util/time_point/cons/constexpr.cc: New.

* testsuite/20_util/duration/cons/constexpr.cc: Add single_value tests.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
line numbers.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/time_point/cons/constexpr.cc: Add single_value
tests.
* testsuite/20_util/time_point/requirements/constexpr_functions.cc: Add.

* testsuite/util/testsuite_common_types.h: Adjust init.

* include/std/chrono (duration): Remove defaulted constructor,
replace with mem-init list.
* testsuite/20_util/duration/cons/constexpr.cc: Add single value.
* testsuite/20_util/duration/requirements/constexpr_functions.cc:
Add non-static member functions.

* testsuite/20_util/default_delete/cons/constexpr.cc: New, xfail.
* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Same.
* testsuite/20_util/shared_ptr/cons/constexpr.cc: Same.
* testsuite/20_util/time_point/requirements/constexpr_functions.cc:
Same.
* testsuite/20_util/unique_ptr/cons/constexpr.cc: Same.
* testsuite/20_util/weak_ptr/cons/constexpr.cc: Same.

* include/std/bitset: Add constexpr as per N3126 draft.
* testsuite/23_containers/bitset/cons/constexpr.cc: New.
* testsuite/23_containers/bitset/requirements/constexpr_functions.cc:
New.

* testsuite/util/testsuite_common_types.h: Reset condition.

* include/bits/random.h: Remove misleading comments.
* include/bits/regex.h: Add constexpr.
* testsuite/28_regex/05_constants/syntax_option_type.cc: Add tests.
* testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc: New.

PR libstdc++/46134
* include/std/chrono: Use default constructor.
* testsuite/util/testsuite_common_types.h
(constexpr_default_constructible): Adjust condition.

PR libstdc++/46133
* include/std/complex: Adjust complex specialization default
constructors for constexpr.
* testsuite/26_numerics/complex/cons/constexpr.cc: Enable tests.

* include/bits/random.h: Adjust for constexpr as per N3126 draft.
* testsuite/26_numerics/random/discard_block_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/discard_block_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/independent_bits_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/linear_congruential_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/linear_congruential_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/shuffle_order_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/shuffle_order_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
constexpr_functions.cc: New.

* include/bits/stream_iterator.h: Add constexpr as per N3126 draft.
* include/bits/streambuf_iterator.h: Same.
* include/std/complex: Same.
* testsuite/24_iterators/istream_iterator/cons/constexpr.cc: New.
* testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc: New.
* testsuite/26_numerics/complex/cons/constexpr.cc: New.
* testsuite/26_numerics/complex/requirements/constexpr_functions.cc:
New.

* include/bits/char_traits.h: Add constexpr as per N3126 draft.
* testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
New.

* include/tr1_impl/array: Add constexpr as per N3126 draft.
* testsuite/23_containers/array/requirements/
constexpr_functions.cc: New.

* include/bits/shared_ptr.h: Revert changes.
* include/bits/unique_ptr.h: Same.

* include/std/chrono: Adjust.
* include/tr1_impl/type_traits: Same.

* testsuite/util/testsuite_common_types.h: Add test functors.
* testsuite/20_util/duration/cons/constexpr.cc: New.
* testsuite/20_util/duration/requirements/constexpr_functions.cc: Same.
* testsuite/20_util/pair/cons/constexpr.cc: Same.
* testsuite/20_util/ratio/requirements/constexpr_data.cc: Same.
* testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc: Same.
* testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc: Same.
* testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc: Same.
* testsuite/30_threads/call_once/constexpr.cc: Same.
* testsuite/30_threads/mutex/cons/constexpr.cc: Same.
* testsuite/30_threads/once_flag/cons/constexpr.cc: Same.
* testsuite/tr1/4_metaprogramming/integral_constant/requirements/
constexpr_data.cc: Same.

* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same.

* include/bits/allocator.h: Add constexpr as per N3126 draft.
* include/bits/ios_base.h: Same.
* include/bits/shared_ptr.h: Same.
* include/bits/unique_ptr.h: Same.
* include/bits/stl_iterator.h: Same.
* include/bits/stl_pair.h: Same.
* include/std/tuple: Same.
* include/tr1_impl/type_traits: Same.
* include/std/chrono: Same.
* include/std/ratio: Same.
* include/std/mutex: Same.
* src/mutex.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.

* doc/doxygen/user.cfg.in: Replace _GLIBCXX_USE_CONSTEXPR,
_GLIBCXX_CONSTEXPR for doxygen generation.

* src/limits.cc: Undef.
* testsuite/29_atomics/atomic/cons/constexpr.cc: Adjust.
* testsuite/29_atomics/atomic_address/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.c: Same.
* testsuite/18_support/numeric_limits/constexpr.cc: To...
* testsuite/18_support/numeric_limits/requirements/
constexpr_data.cc, constexpr_functions.cc: ...this

* testsuite/util/testsuite_common_types.h
(constexpr_single_value_constructible): Add.
* testsuite/29_atomics/atomic/cons/constexpr.cc: Adjust name.
* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic_address/cons/constexpr.cc: New.
* testsuite/18_support/numeric_limits/constexpr.cc: New.

* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
* testsuite/29_atomics/atomic/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: Same.

* include/bits/c++config (_GLIBCXX_CONSTEXPR): Add.
(_GLIBCXX_USE_CONSTEXPR): Add.
* include/std/limits: Use it.
* src/limits.cc: Adjust.
* testsuite/ext/profile/mutex_extensions.cc: Change line number.

* include/bits/atomic_0.h: Rework for N3126 draft, add constexpr.
* include/bits/atomic_2.h: Same.
* include/bits/atomic_base.h: Same.
* include/std/atomic: Same.
* src/atomic.cc: Same.
* include/bits/atomicfwd_c.h: Remove.
* include/bits/atomicfwd_cxx.h: Remove.
* include/c_compatibility/stdatomic.h: Remove.
* include/Makefile.am: Remove atomicfwd_c.h, atomicfwd_cxx.h,
stdatomic.h.
* include/Makefile.in: Regenerate.
* doc/xml/manual/using.xml: Update list of header files for changes.
* testsuite/util/testsuite_common_types.h
(constexpr_constructible): Add.
* testsuite/29_atomics/atomic/cons/constexpr.cc: New.
* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: New.
* testsuite/17_intro/headers/c++200x/stdc++.cc: Modify.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic_address/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic_flag/cons/1.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
* testsuite/29_atomics/headers/atomic/macros.cc: Same.
* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Same.
* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc: Same.
* testsuite/29_atomics/atomic_flag/test_and_set/implicit.c: Remove.
* testsuite/29_atomics/atomic_flag/test_and_set/explicit.c: Same.
* testsuite/29_atomics/atomic_flag/clear/1.c: Same.
* testsuite/29_atomics/headers/stdatomic.h/debug_mode.c: Same.
* testsuite/29_atomics/headers/stdatomic.h/functions.c: Same.
* testsuite/29_atomics/headers/stdatomic.h/macros.c: Same.
* testsuite/29_atomics/headers/stdatomic.h/types.c: Same.

* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.16.

From-SVN: r166171

13 years agoinitializer_list: Decorate with constexpr.
Jason Merrill [Tue, 2 Nov 2010 01:31:50 +0000 (21:31 -0400)]
initializer_list: Decorate with constexpr.

* libsupc++/initializer_list: Decorate with constexpr.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r166170

13 years agosemantics.c (call_stack, [...]): New.
Jason Merrill [Tue, 2 Nov 2010 01:31:40 +0000 (21:31 -0400)]
semantics.c (call_stack, [...]): New.

* semantics.c (call_stack, call_stack_tick, cx_error_context): New.
(last_cx_error_tick, push_cx_call_context, pop_cx_call_context): New.
(cxx_eval_call_expression): Call push/pop_cx_call_context instead
of giving follow-on errors.
* error.c (maybe_print_constexpr_context): New.
(cp_diagnostic_starter): Call it.
* cp-tree.h: Declare cx_error_context.

From-SVN: r166169

13 years agosemantics.c (cxx_eval_constant_expression): Explain unacceptable use of variable...
Jason Merrill [Tue, 2 Nov 2010 01:31:31 +0000 (21:31 -0400)]
semantics.c (cxx_eval_constant_expression): Explain unacceptable use of variable better.

* semantics.c (cxx_eval_constant_expression): Explain
unacceptable use of variable better.

From-SVN: r166168

13 years agocall.c (null_ptr_cst_p): Use maybe_constant_value.
Jason Merrill [Tue, 2 Nov 2010 01:31:18 +0000 (21:31 -0400)]
call.c (null_ptr_cst_p): Use maybe_constant_value.

* call.c (null_ptr_cst_p): Use maybe_constant_value.
(set_up_extended_ref_temp): Support constant initialization.
(initialize_reference): Adjust.
* class.c (check_bitfield_decl): Use cxx_constant_value.
* cvt.c (ocp_convert): Don't use integral_constant_value when
converting to class type.
* decl.c (finish_case_label): Use maybe_constant_value.
(build_init_list_var_init): Support constant initialization.
(check_initializer): Likewise.  Reorganize.
(cp_finish_decl): Likewise.
(expand_static_init): Likewise.
(compute_array_index_type): Use maybe_constant_value.
Add complain parm.
(create_array_type_for_decl, grokdeclarator): Pass it.
(build_enumerator): Use cxx_constant_value.
* decl2.c (grokfield): Use maybe_constant_init.
* except.c (check_noexcept_r): Handle constexpr.
(build_noexcept_spec): Use maybe_constant_value.
* init.c (expand_default_init): Support constant initialization.
(build_vec_init): Likewise.
(constant_value_1): Adjust.
(build_new_1): Adjust.
* parser.c (cp_parser_constant_expression): Allow non-integral
in C++0x mode.
(cp_parser_direct_declarator): Don't fold yet in C++0x mode.
(cp_parser_initializer_clause): Toss folded result if non-constant.
* pt.c (fold_decl_constant_value): Remove.
(convert_nontype_argument): Use maybe_constant_value.  Give clearer
error about overflow.
(tsubst): Move array bounds handling into compute_array_index_type.
(value_dependent_expression_p): Handle constant CALL_EXPR.
* semantics.c (finish_static_assert): Use maybe_constant_value.
(ensure_literal_type_for_constexpr_object): Make sure type is complete.
(potential_constant_expression): Use maybe_constant_value.
* tree.c (cast_valid_in_integral_constant_expression_p): Any cast
is potentially valid in C++0x.
* typeck2.c (store_init_value): Handle constant init.
(check_narrowing): Use maybe_constant_value.
(build_functional_cast): Set TREE_CONSTANT on literal T().
* cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): Remove.
(LOOKUP_ALREADY_DIGESTED): New.
(compute_array_index_type): Adjust prototype.

From-SVN: r166167

13 years agosemantics.c (constexpr_call): New datatype.
Gabriel Dos Reis [Tue, 2 Nov 2010 01:31:02 +0000 (21:31 -0400)]
semantics.c (constexpr_call): New datatype.

* semantics.c (constexpr_call): New datatype.
(constexpr_call_table): New global table.
(constexpr_call_hash): New.
(constexpr_call_equal): Likewise.
(maybe_initialize_constexpr_call_table): Likewise.
(lookup_parameter_binding): Likewise.
(cxx_eval_builtin_function_call): Likewise.
(cxx_bind_parameters_in_call): Likewise.
(cxx_eval_call_expression): Likewise.
(cxx_eval_unary_expression): Likewise.
(cxx_eval_binary_expression): Likewise.
(cxx_eval_conditional_expression): Likewise.
(cxx_eval_array_reference): Likewise.
(cxx_eval_component_reference): Likewise.
(cxx_eval_logical_expression): Likewise.
(cxx_eval_object_construction): Likewise.
(cxx_eval_constant_expression): Likewise.
(cxx_eval_indirect_ref): Likewise.
(cxx_constant_value): Likewise.
(cxx_eval_bare_aggregate): Likewise.
(adjust_temp_type): New.
(reduced_constant_expression_p): New.
(verify_constant): New.
(cxx_eval_vec_init, cxx_eval_vec_init_1): New.
(cxx_eval_outermost_constant_expr): New.
(maybe_constant_value, maybe_constant_init): New.
(cxx_eval_constant_expression): Use them.
* cp-tree.h: Declare fns.

Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r166166

13 years agocp-tree.h (register_constexpr_fundef): Declare.
Jason Merrill [Tue, 2 Nov 2010 01:30:51 +0000 (21:30 -0400)]
cp-tree.h (register_constexpr_fundef): Declare.

* cp-tree.h (register_constexpr_fundef): Declare.
* decl.c (maybe_save_function_definition): New.
(finish_function): Use it.
* semantics.c (constexpr_fundef): New datatype.
(constexpr_fundef_table): New global table.
(constexpr_fundef_equal): New.
(constexpr_fundef_hash): Likewise.
(retrieve_constexpr_fundef): Likewise.
(validate_constexpr_fundecl): Store in the table.
(build_data_member_initialization): New fn.
(build_constexpr_constructor_member_initializers): New.
(register_constexpr_fundef): Define.
(is_this_parameter): New.
(get_function_named_in_call): Likewise.
(get_nth_callarg): Likewise.
(check_automatic_or_tls): New.
(morally_constexpr_builtin_function_p): New.
(potential_constant_expression): New.

From-SVN: r166165

13 years agodecl2.c (decl_constant_var_p): New fn.
Jason Merrill [Tue, 2 Nov 2010 01:30:39 +0000 (21:30 -0400)]
decl2.c (decl_constant_var_p): New fn.

* decl2.c (decl_constant_var_p): New fn.
(decl_maybe_constant_var_p): New fn.
(mark_used): Rework instantiation of things needed for constant
expressions.
* cp-tree.h: Declare new fns.
* pt.c (instantiate_decl): Handle cp_unevaluated_operand.
(always_instantiate_p): Use decl_maybe_constant_var_p.
(instantiate_decl): Don't defer constexpr functions.
* repo.c (repo_emit_p): Use decl_maybe_constant_var_p.
* semantics.c (finish_id_expression): Use decl_constant_var_p.
Check for valid name in constant expr after mark_used.

From-SVN: r166164

13 years agofold-const.c (fold_indirect_ref_1): Handle folding POINTER_PLUS_EXPR to ARRAY_REF.
Jason Merrill [Tue, 2 Nov 2010 01:20:42 +0000 (21:20 -0400)]
fold-const.c (fold_indirect_ref_1): Handle folding POINTER_PLUS_EXPR to ARRAY_REF.

* fold-const.c (fold_indirect_ref_1): Handle folding
POINTER_PLUS_EXPR to ARRAY_REF.

From-SVN: r166163

13 years agore PR libstdc++/12110 (ICE building 64-bit strstream.o)
Alan Modra [Tue, 2 Nov 2010 00:20:35 +0000 (10:50 +1030)]
re PR libstdc++/12110 (ICE building 64-bit strstream.o)

PR binutils/12110
* configure.ac: Error when source path contains spaces.
* configure: Regenerate.

From-SVN: r166162

13 years agoDaily bump.
GCC Administrator [Tue, 2 Nov 2010 00:18:00 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r166161

13 years agosh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
Kaz Kojima [Tue, 2 Nov 2010 00:12:14 +0000 (00:12 +0000)]
sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.

* config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
(sh_delegitimize_address): New function.

From-SVN: r166157

13 years agoalpha.h (WORD_SWITCH_TAKES_ARG): Remove.
Joseph Myers [Mon, 1 Nov 2010 23:44:35 +0000 (23:44 +0000)]
alpha.h (WORD_SWITCH_TAKES_ARG): Remove.

* config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
(CC1_SPEC): Don't handle -target.
* config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
options.
* config/darwin.opt (Zallowable_client, Zbundle_loader,
Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
Zweak_reference_mismatches, client_name, compatibility_version,
current_version, dylinker_install_name, pagezero_size,
read_only_relocs, seg1addr, segs_read_only_addr,
segs_read_write_addr, sub_library, sub_umbrella): New.
* config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
* config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/freebsd.opt: New.
* config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
* config/rpath.opt: New.
* config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
(alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
Use rpath.opt.

From-SVN: r166156

13 years agocommon.opt (R, [...]): New.
Joseph Myers [Mon, 1 Nov 2010 23:40:53 +0000 (23:40 +0000)]
common.opt (R, [...]): New.

* common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
* defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
(DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
* doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
(WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
Document that options in .opt files do not need to be included.
* doc/tm.texi: Regenerate.
* gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
* opts-common.c: Update comment on tm.h include.
(decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
* system.h (SWITCH_TAKES_ARG): Poison.
* config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
* config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
in darwin.opt.
(LINK_COMMAND_SPEC_A): Don't include %{x}.
* config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
Remove.
* config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
* config/freebsd.h (SWITCH_TAKES_ARG): Remove.
* config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
Remove.
* config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
* config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
* config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T
options.
* config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
* config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
Remove.
* config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
* config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
* config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
* config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
* config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
* config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
* config/openbsd.h (SWITCH_TAKES_ARG): Remove.
* config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
* config/score/score.h (SWITCH_TAKES_ARG): Remove.
* config/sol2.h (SWITCH_TAKES_ARG): Remove.
* config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
* config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
* config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
* config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.

From-SVN: r166155

13 years agoIn gcc/c-family/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Mon, 1 Nov 2010 22:54:35 +0000 (22:54 +0000)]
In gcc/c-family/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>

In gcc/c-family/:
2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented format and noreturn attributes for Objective-C methods.
        * c-common.c (handle_noreturn_attribute): Recognize 'noreturn'
        attribute for Objective-C methods.

In gcc/objc/:
2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented format and noreturn attributes for Objective-C methods.
        * objc-act.c (objc_start_method_definition): If method attributes
        are specified emit a warning and ignore them.
        (build_objc_method_call): Moved deprecation warnings from here ...
        (objc_finish_message_expr): to here.  Do not emit deprecation
        warnings if the receiver is of type 'id'.
        (really_start_method): Install 'deprecation' and 'noreturn'
        attributes.
        (objc_decl_method_attributes): Carefully filter out the list of
        attributes, allowing only "noreturn", "format", "sentinel" and
        "deprecated".  In the case of "format", adjust the arguments.
        Always process the attributes in the same way no matter if
        "sentinel" is in the list or not.

In gcc/testsuite/:
2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented format and noreturn attributes for Objective-C methods.
        * objc.dg/attributes/method-attribute-2.m: Updated warnings.
        * objc.dg/attributes/method-deprecated-1.m: New.
        * objc.dg/attributes/method-deprecated-2.m: New.
        * objc.dg/attributes/method-deprecated-3.m: New.
        * objc.dg/attributes/method-noreturn-1.m: New.
        * objc.dg/attributes/method-sentinel-1.m: New.
        * objc.dg/attributes/method-format-1.m: New.
        * obj-c++.dg/attributes/method-attribute-2.mm: Updated warnings.
        * obj-c++.dg/attributes/method-deprecated-1.mm: New.
        * obj-c++.dg/attributes/method-deprecated-2.mm: New.
        * obj-c++.dg/attributes/method-deprecated-3.mm: New.
        * obj-c++.dg/attributes/method-noreturn-1.mm: New.
        * obj-c++.dg/attributes/method-sentinel-1.mm: New.
        * obj-c++.dg/attributes/method-format-1.mm: New.

From-SVN: r166153

13 years agore PR libstdc++/45999 (runtime error in std::vector python pretty printer.)
Jonathan Wakely [Mon, 1 Nov 2010 21:28:44 +0000 (21:28 +0000)]
re PR libstdc++/45999 (runtime error in std::vector python pretty printer.)

2010-11-01  Jonathan Wakely  <jwakely.gcc@gmail.com>

PR libstdc++/45999
* python/libstdcxx/v6/printers.py (StdVectorPrinter): Replace
conditional expression with backward-compatible if-else.

From-SVN: r166150

13 years agoFix ChangeLog entry
Paul Koning [Mon, 1 Nov 2010 21:25:41 +0000 (17:25 -0400)]
Fix ChangeLog entry

From-SVN: r166149

13 years agopdp11.md: Use iterators.
Paul Koning [Mon, 1 Nov 2010 21:24:57 +0000 (17:24 -0400)]
pdp11.md: Use iterators.

* config/pdp11/pdp11.md: Use iterators.
(addqi3, subqi3, iorsi3, xorsi3): Delete.

From-SVN: r166148

13 years agoIn gcc/objc/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Mon, 1 Nov 2010 21:12:12 +0000 (21:12 +0000)]
In gcc/objc/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>

In gcc/objc/:
2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc-act.c (objc_maybe_build_component_ref): Warn about using
        deprecated properties.
        (objc_maybe_printable_name): Support PROPERTY_DECL.

In gcc/testsuite/:
2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc.dg/property/at-property-deprecated-1.m: New.
        * obj-c++.dg/property/at-property-deprecated-1.mm: New.

From-SVN: r166147

13 years agodefaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef GCC_INSN_FLAGS_H.
Steve Ellcey [Mon, 1 Nov 2010 20:38:40 +0000 (20:38 +0000)]
defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef GCC_INSN_FLAGS_H.

2010-11-01  Steve Ellcey  <sje@cup.hp.com>

* defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
GCC_INSN_FLAGS_H.
* libgcov.c (__gcov_indirect_call_profiler): Set
VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.

From-SVN: r166145

13 years agoIn gcc/objc/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Mon, 1 Nov 2010 20:06:36 +0000 (20:06 +0000)]
In gcc/objc/: 2010-11-01 Nicola Pero <nicola.pero@meta-innovation.com>

In gcc/objc/:
2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented Objective-C 2.0 property accessors.
        * objc-act.h (enum objc_tree_index): Added OCTI_GET_PROPERTY_DECL,
        OCTI_SET_PROPERTY_DECL, OCTI_COPY_STRUCT_DECL,
        OCTI_GET_PROPERTY_STRUCT_DECL and OCTI_SET_PROPERTY_STRUCT_DECL.
        (objc_getProperty_decl): New.
        (objc_setProperty_decl): New.
        (objc_copyStruct_decl): New.
        (objc_getPropertyStruct_decl): New.
        (objc_setPropertyStruct_decl): New.
        * objc-act.c (build_objc_property_accessor_helpers): New.
        (synth_module_prologue): Call
        build_objc_property_accessor_helpers.
        (lookup_ivar): New.
        (objc_synthesize_getter): Implemented synthesizing getters that
        work with properties that are not nonatomic, assign properties.
        (objc_synthesize_setter): Implemented synthesizing setters that
        work with properties that are not nonatomic, assign properties.

In gcc/testsuite/:
2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>

        Implemented Objective-C 2.0 property accessors.
        * objc.dg/property/at-property-6.m: Use nonatomic properties to
        avoid testing more complex accessors in this testcase which is not
        about them.
        * objc.dg/property/at-property-7.m: Same change.
        * objc.dg/property/at-property-8.m: Same change.
        * objc.dg/property/at-property-9.m: Same change.
        * objc.dg/property/at-property-10.m: Same change.
        * objc.dg/property/at-property-11.m: Same change.
        * obj-c++.dg/property/at-property-6.mm: Same change.
        * obj-c++.dg/property/at-property-7.mm: Same change.
        * obj-c++.dg/property/at-property-8.mm: Same change.
        * obj-c++.dg/property/at-property-9.mm: Same change.
        * obj-c++.dg/property/at-property-10.mm: Same change.
        * obj-c++.dg/property/at-property-11.mm: Same change.
        * objc.dg/property/at-property-12.m: New.
        * objc.dg/property/at-property-13.m: New.
        * obj-c++.dg/property/at-property-12.mm: New.
        * obj-c++.dg/property/at-property-13.mm: New.

From-SVN: r166143

13 years agore PR fortran/46152 ([F03] ALLOCATE with type-spec fails for intrinsic types)
Steven G. Kargl [Mon, 1 Nov 2010 19:29:57 +0000 (19:29 +0000)]
re PR fortran/46152 ([F03] ALLOCATE with type-spec fails for intrinsic types)

2010-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/46152
* gfortran.dg/select_type_11.f03: Update dg-error phrase.
* gfortran.dg/allocate_with_typespec_4.f90: New test.
* gfortran.dg/allocate_with_typespec_1.f90: New test.
* gfortran.dg/allocate_with_typespec_2.f: New test.
* gfortran.dg/allocate_with_typespec_3.f90: New test.
* gfortran.dg/allocate_derived_1.f90: Delete an obselescent test.
* gfortran.dg/select_type_1.f03: Update dg-error phrase.

2010-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/46152
* fortran/match.c (match_derived_type_spec): Reoplace gfc_match_symbol
with a gfc_find_symbol to prevent namespace pollution.  Remove dead
code.
(match_type_spec): Remove parsing of '::'.  Collapse character
kind checking to one location.
(gfc_match_allocate): Use correct locus in error message.

From-SVN: r166140

13 years agore PR tree-optimization/46259 (Revision 166102 failed 416.gamess in SPEC CPU 2006)
Nathan Froyd [Mon, 1 Nov 2010 18:58:30 +0000 (18:58 +0000)]
re PR tree-optimization/46259 (Revision 166102 failed 416.gamess in SPEC CPU 2006)

gcc/
2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>

PR tree-optimization/46259

Revert:

2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>

* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
build_vector_from_val.

gcc/testsuite/
2010-11-01  H.J. Lu  <hongjiu.lu@intel.com>
    Nathan Froyd  <froydnj@codesourcery.com>

PR tree-optimization/46259
* gfortran.dg/pr46259.f: New testcase.

From-SVN: r166139

13 years agorx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610 as well as an assertion.
DJ Delorie [Mon, 1 Nov 2010 18:45:51 +0000 (14:45 -0400)]
rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610 as well as an assertion.

* config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for
RX610 as well as an assertion.

From-SVN: r166138

13 years agopdp11.c (pdp11_return_in_memory): Return vector and complex modes in memory.
Paul Koning [Mon, 1 Nov 2010 18:08:15 +0000 (14:08 -0400)]
pdp11.c (pdp11_return_in_memory): Return vector and complex modes in memory.

* config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
complex modes in memory.

From-SVN: r166137

13 years ago* tree.c (build_vector_from_val): Use useless_type_conversion_p.
Nathan Froyd [Mon, 1 Nov 2010 17:10:21 +0000 (17:10 +0000)]
* tree.c (build_vector_from_val): Use useless_type_conversion_p.

From-SVN: r166136

13 years ago20080625-1.c: Skip if pdp11.
Paul Koning [Mon, 1 Nov 2010 16:29:25 +0000 (12:29 -0400)]
20080625-1.c: Skip if pdp11.

* gcc.c-torture/compile/20080625-1.c: Skip if pdp11.
* gcc.c-torture/compile/20020604-1.c: Ditto.
* gcc.c-torture/compile/20001226-1.c: Ditto.
* gcc.c-torture/compile/20010327-1.c: Ditto.
* gcc.c-torture/compile/limits-stringlit.c: Ditto.
* gcc.c-torture/compile/pr43191.c: Ditto.
* gcc.c-torture/compile/pr41181.c: Ditto.

From-SVN: r166135

13 years agognu.ver: Export __emutls_v._ZSt11__once_call and __emutls_v._ZSt15__once_callable.
Jie Zhang [Mon, 1 Nov 2010 15:58:16 +0000 (15:58 +0000)]
gnu.ver: Export __emutls_v._ZSt11__once_call and __emutls_v._ZSt15__once_callable.

* config/abi/pre/gnu.ver: Export __emutls_v._ZSt11__once_call
and __emutls_v._ZSt15__once_callable.

From-SVN: r166134

13 years agore PR target/45250 (FAIL: tr1/5_numerical_facilities/special_functions/01_assoc_lague...
Jakub Jelinek [Mon, 1 Nov 2010 07:58:46 +0000 (08:58 +0100)]
re PR target/45250 (FAIL: tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_nan.cc)

PR target/45250
* var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
(cfa_base_offset): New variable.
(compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
(adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
is NULL.
(vt_init_cfa_base): Initialize cfa_base_offset.

From-SVN: r166126

13 years agore PR target/46030 (registers trashed with -Os)
Alan Modra [Mon, 1 Nov 2010 03:24:20 +0000 (13:54 +1030)]
re PR target/46030 (registers trashed with -Os)

PR target/46030
* config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
and savres_strategy.
(stack_info): New file scope var.
(rs6000_init_machine_status): Init stack_info.
(SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
(SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
(rs6000_savres_strategy): Rewrite.
(rs6000_stack_info): Use "stack_info" in place of local "info".
Return cached stack info when reload_completed unless ENABLE_CHECKING
in which case confirm newly calculated stack info matches old info.
Delay calculation of lr_save_p, set it for out of line gp save/restore
as well as fp.  Call rs6000_savres_strategy from here..
(rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
(rs6000_output_function_prologue): Use info->savres_strategy to
determine whether fp save/restore externs need to be emitted.

From-SVN: r166125

13 years agoclass.c (is_really_empty_class): Work when type is not complete.
Jason Merrill [Mon, 1 Nov 2010 02:04:48 +0000 (22:04 -0400)]
class.c (is_really_empty_class): Work when type is not complete.

* class.c (is_really_empty_class): Work when type is not complete.
(synthesized_default_constructor_is_constexpr): New.
(add_implicitly_declared_members): Use it.
(type_has_constexpr_default_constructor): Likewise.
* cp-tree.h: Declare it.
* method.c (synthesized_method_walk): Use it.

From-SVN: r166124

13 years agotree.h (EXPR_LOC_OR_HERE): New macro.
Jason Merrill [Mon, 1 Nov 2010 02:04:39 +0000 (22:04 -0400)]
tree.h (EXPR_LOC_OR_HERE): New macro.

* tree.h (EXPR_LOC_OR_HERE): New macro.
* builtins.c (c_strlen): Use it.
* c-decl.c (build_enumerator): Likewise.
* gimplify.c (internal_get_tmp_var): Likewise.
(shortcut_cond_expr): Likewise.
(gimplify_one_sizepos): Likewise.
c-family/
* c-common.c (conversion_warning, warn_for_collisions_1): Use
EXPR_LOC_OR_HERE.
cp/
* decl.c (pop_switch): Use EXPR_LOC_OR_HERE.
* typeck.c (convert_for_assignment): Likewise.

From-SVN: r166123

13 years agodecl.c (grokdeclarator): Don't ICE on constexpr non-static data member.
Jason Merrill [Mon, 1 Nov 2010 02:04:30 +0000 (22:04 -0400)]
decl.c (grokdeclarator): Don't ICE on constexpr non-static data member.

* decl.c (grokdeclarator): Don't ICE on constexpr non-static data
member.

* parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
message about constexpr without -std=c++0x.

From-SVN: r166122

13 years agore PR testsuite/20003 (libmudflap.cth timeouts too short)
Jason Merrill [Mon, 1 Nov 2010 02:04:20 +0000 (22:04 -0400)]
re PR testsuite/20003 (libmudflap.cth timeouts too short)

PR testsuite/20003
* testsuite/libmudflap.cth/pass40-frag.c: Increase timeout to 30.

From-SVN: r166121

13 years agoDisable -mpreferred-stack-boundary options for Windows.
Richard Henderson [Mon, 1 Nov 2010 01:14:46 +0000 (18:14 -0700)]
Disable -mpreferred-stack-boundary options for Windows.

From-SVN: r166120

13 years agoEmit SEH unwind info.
Richard Henderson [Mon, 1 Nov 2010 00:40:33 +0000 (17:40 -0700)]
Emit SEH unwind info.

* config/i386/cygming.h (TARGET_SEH): New.
(MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
(TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
(TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
(ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
(ASM_DECLARE_FUNCTION_SIZE): New.
* config/i386/i386-protos.h: Update.
* config/i386/i386.c (ix86_option_override_internal): Enable
flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
(ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
(ix86_compute_frame_layout): For SEH, disable
use_fast_prologue_epilogue, move frame pointer to the end of
the frame.  Initialize hfp_save_offset.
(ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
at end of prologue for SEH.
(ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
emit blockage at beginning of epilogue.
(ix86_expand_binary_operator): After reload, emit LEA if needed.
(ix86_output_call_insn): New.
* config/i386/i386.h (TARGET_SEH): New.
(struct machine_function): Add member seh.
* config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
* config/i386/winnt.c (struct seh_frame_state): New.
(i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
i386_pe_start_function, i386_pe_end_function): New.

* dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
as CFA_STORE in rules 12 and 13.

From-SVN: r166119

13 years agoDaily bump.
GCC Administrator [Mon, 1 Nov 2010 00:18:18 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r166118

13 years agodr1325-2.cc: Fix typo.
Paolo Carlini [Mon, 1 Nov 2010 00:08:58 +0000 (00:08 +0000)]
dr1325-2.cc: Fix typo.

2010-10-31  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/23_containers/bitset/cons/dr1325-2.cc: Fix typo.
* testsuite/20_util/hash/quality.cc: Avoid -Wall warnings.
* testsuite/20_util/hash/chi2_quality.cc: Likewise.

From-SVN: r166114

13 years agoAdd -mtune=generic to fma3-builtin-2.c/fma4-builtin-2.c.
H.J. Lu [Sun, 31 Oct 2010 19:07:09 +0000 (19:07 +0000)]
Add -mtune=generic to fma3-builtin-2.c/fma4-builtin-2.c.

2010-10-31  H.J. Lu  <hongjiu.lu@intel.com>

PR target/46142
* gcc.target/i386/fma3-builtin-2.c: Add -mtune=generic.
* gcc.target/i386/fma4-builtin-2.c: Likewise.

From-SVN: r166113

13 years agostack-usage-1.c (SIZE): Increase to 248 for some MIPS targets.
Richard Sandiford [Sun, 31 Oct 2010 15:04:10 +0000 (15:04 +0000)]
stack-usage-1.c (SIZE): Increase to 248 for some MIPS targets.

gcc/testsuite/
* gcc.dg/stack-usage-1.c (SIZE): Increase to 248 for some MIPS targets.

From-SVN: r166110

13 years agothr-init-1.c: Fix order of dg-do.
Richard Sandiford [Sun, 31 Oct 2010 14:38:51 +0000 (14:38 +0000)]
thr-init-1.c: Fix order of dg-do.

gcc/testsuite/
* gcc.dg/tls/thr-init-1.c: Fix order of dg-do.
* gcc.dg/tls/thr-init-2.c: Likewise.  Require tls_runtime rather
than tls.
* gcc.dg/torture/tls/thr-init-1.c: Require tls_runtime rather than tls.
* gcc.dg/torture/tls/thr-init-2.c: Likewise.
* objc.dg/torture/tls/thr-init.m: Likewise.
* objc.dg/torture/tls/thr-init-2.m: Likewise.
* objc.dg/torture/tls/thr-init-3.m: Likewise.

From-SVN: r166109

13 years agopdp11.md: Change output operands to disallow immediate operands.
Paul Koning [Sun, 31 Oct 2010 14:16:22 +0000 (10:16 -0400)]
pdp11.md: Change output operands to disallow immediate operands.

* config/pdp11/pdp11.md: Change output operands to disallow
immediate operands.
* config/pdp11/predicates.md (float_nonimm_operand): New.

From-SVN: r166108

13 years ago20101011-1.c: Skip for MIPS unless running the Linux kernel.
Richard Sandiford [Sun, 31 Oct 2010 14:15:40 +0000 (14:15 +0000)]
20101011-1.c: Skip for MIPS unless running the Linux kernel.

gcc/testsuite/
* gcc.c-torture/execute/20101011-1.c: Skip for MIPS unless running
the Linux kernel.

From-SVN: r166107

13 years agore PR tree-optimization/46142 (FMA test failures)
Uros Bizjak [Sun, 31 Oct 2010 07:18:07 +0000 (08:18 +0100)]
re PR tree-optimization/46142 (FMA test failures)

PR tree-optimization/46142
* tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
accommodate third function argument.

From-SVN: r166105

13 years ago* tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
Nathan Froyd [Sun, 31 Oct 2010 02:32:20 +0000 (02:32 +0000)]
* tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.

From-SVN: r166103

13 years agofold-const.c (build_zero_vector): Use build_vector_from_val.
Nathan Froyd [Sun, 31 Oct 2010 02:20:22 +0000 (02:20 +0000)]
fold-const.c (build_zero_vector): Use build_vector_from_val.

* fold-const.c (build_zero_vector): Use build_vector_from_val.
* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
(get_initial_def_for_reduction): Likewise.
* tree-vect-slp.c (vect_get_constant_vectors): Likewise.
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
* tree.c (build_one_cst): Likewise.
(build_vector_from_val): Use types_compatible_p for assert.

From-SVN: r166102

13 years agoemit-rtl.c (mark_used_flags): New function.
Nathan Froyd [Sun, 31 Oct 2010 01:58:12 +0000 (01:58 +0000)]
emit-rtl.c (mark_used_flags): New function.

* emit-rtl.c (mark_used_flags): New function.
(set_used_flags, reset_used_flags): Call it.

From-SVN: r166101

13 years agoDaily bump.
GCC Administrator [Sun, 31 Oct 2010 00:17:39 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r166100

13 years agore PR middle-end/44569 (ICE in simplify_subreg for debug insn with CONCATN)
Uros Bizjak [Sat, 30 Oct 2010 19:55:16 +0000 (21:55 +0200)]
re PR middle-end/44569 (ICE in simplify_subreg for debug insn with CONCATN)

PR middle-end/44569
* lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.

From-SVN: r166092

13 years agogfortran.h (gfc_option_t): Replace dump_parse_tree by dump_fortran_original and add...
Thomas Koenig [Sat, 30 Oct 2010 15:19:27 +0000 (15:19 +0000)]
gfortran.h (gfc_option_t): Replace dump_parse_tree by dump_fortran_original and add dump_fortran_optimized.

2010-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

* gfortran.h (gfc_option_t):  Replace dump_parse_tree by
dump_fortran_original and add dump_fortran_optimized.
* lang.opt: Add fdump-fortran-original and
fdump-fortran-optimized.  Document that fdump-parse-tree is
deprecated.
* gfortran.texi: Add -fdump-fortran-original and
-fdump-fortran-optimized.  -fdump-parse-tree is deprecated.
* frontend-passes.c (gfc_run_passes):  If optimizing and
if gfc_option.dump_fortran_optimized is set, dump the parse tree
after optimization.
* parse.c:  Rename gfc_option.dump_parse_tree to
gfc_option.dump_fortran_original.
* options.c (gfc_init_options):  Rename gfc_option.dump_parse_tree
to gfc_option.dump_fortran_original and handle
gfc_option.dump_fortran_optimize.
(gfc_post_options): Rename gfc_option.dump_parse_tree
to gfc_option.dump_fortran_original.
(gfc_handle_option):  Rename OPT_fdump_parse_tree to
OPT_fdump_fortran_original and gfc_option.dump_parse_tree
to gfc_option.dump_fortran_original.  Handle
OPT_fdump_fortran_optimized.

From-SVN: r166091

13 years agoclass.c (layout_vtable_decl): Call build_array_of_n_type.
Nathan Froyd [Sat, 30 Oct 2010 14:35:35 +0000 (14:35 +0000)]
class.c (layout_vtable_decl): Call build_array_of_n_type.

* class.c (layout_vtable_decl): Call build_array_of_n_type.
(build_vtt, build_ctor_vtabl_group): Likewise.

From-SVN: r166090

13 years agore PR fortran/44917 ([OOP] Detect ambiguous specifics in a generic TBP interface)
Janus Weil [Sat, 30 Oct 2010 13:52:39 +0000 (15:52 +0200)]
re PR fortran/44917 ([OOP] Detect ambiguous specifics in a generic TBP interface)

2010-10-30  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44917
PR fortran/44926
PR fortran/46196
* interface.c (count_types_test): Symmetrize type check.
(generic_correspondence): Ditto.

2010-10-30  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44917
PR fortran/44926
PR fortran/46196
* gfortran.dg/typebound_generic_10.f03: New.

From-SVN: r166089

13 years agoAlign long double parameters on stack to 4byte in 32bit.
H.J. Lu [Sat, 30 Oct 2010 13:17:15 +0000 (13:17 +0000)]
Align long double parameters on stack to 4byte in 32bit.

2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>

PR target/46195
* config/i386/i386.c (contains_aligned_value_p): Renamed to ...
(ix86_compat_aligned_value_p): This.
(ix86_old_function_arg_boundary): Renamed to ...
(ix86_compat_function_arg_boundary): This.  Updated.
(ix86_contains_aligned_value_p): New.
(ix86_function_arg_boundary): Align long double parameters on
stack to 4byte in 32bit.

From-SVN: r166088

13 years agoIn gcc/: 2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Sat, 30 Oct 2010 11:22:46 +0000 (11:22 +0000)]
In gcc/: 2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>

In gcc/:
2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>

Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* c-parser.c (c_parser_objc_at_property_declaration): Removed
parsing of RID_COPIES and RID_IVAR.  Updated call to
objc_add_property_declaration.
* c-typecheck.c (build_component_ref): Call
objc_maybe_build_component_ref instead of objc_build_setter_call.
Use objc_is_property_ref to improve Objective-C checks.
(cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
of objc_build_getter_call.

In gcc/c-family/:
2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>

Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* c-common.h (enum rid): Removed RID_COPIES and RID_IVAR.
(objc_add_property_declaration): Removed arguments for copies and
ivar.
(objc_build_getter_call): Renamed to
objc_maybe_build_component_ref.
(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
(objc_is_property_ref): New.
* c-common.c (c_common_reswords): Removed copies and ivar.
* stub-objc.c (objc_add_property_declaration): Removed arguments
for copies and ivar.
(objc_build_getter_call): Renamed to
objc_maybe_build_component_ref.
(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
(objc_is_property_ref): New.

In gcc/cp/:
2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>

Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* parser.c (cp_parser_objc_at_property_declaration): Removed
parsing of RID_COPIES and RID_IVAR.  Updated call to
objc_add_property_declaration.
* typecheck.c (finish_class_member_access_expr): Call
objc_maybe_build_component_ref instead of objc_build_setter_call.
(cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
of objc_build_getter_call.

In gcc/objc/:
2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>

Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* objc-tree.def (PROPERTY_REF): New.
* objc-act.h: Added comments for all the PROPERTY_ macros.
(PROPERTY_NAME): Use DECL_NAME.
(PROPERTY_COPIES): Removed.
(PROPERTY_READONLY): Use DECL_LANG_FLAG_0 for it.
(PROPERTY_NONATOMIC): New.
(objc_property_assign_semantics): Make it a typedef.
(PROPERTY_ASSIGN_SEMANTICS): New.
(PROPERTY_DYNAMIC): New.
(PROPERTY_REF_OBJECT): New.
(PROPERTY_REF_PROPERTY_DECL): New.
* objc-act.c (CALL_EXPR_OBJC_PROPERTY_GETTER): Removed.
(in_objc_property_setter_name_context): Removed.
(objc_add_property_declaration): Removed copies and ivar arguments
and code supporting them.  Fixed recovering when readonly and
setter attributes are specified.  Removed support for @property in
@implementation context.  Updated error message.  Double-check
that a property does not have a DECL_INITIAL.  Validate the
property assign semantics and emit appropriate errors and
warnings.  Check for duplicate property declarations.  Set
DECL_SOURCE_LOCATION, TREE_DEPRECATED, PROPERTY_NONATOMIC,
PROPERTY_ASSIGN_SEMANTICS and PROPERTY_DYNAMIC of the new
PROPERTY_DECL.  Do not set PROPERTY_COPIES.  Set
PROPERTY_IVAR_NAME to NULL_TREE.
(objc_build_getter_call): Renamed to
objc_maybe_build_component_ref.  If the property is not found in
the interface, search in the protocol list.  Do not generate the
getter call; instead, build and return a PROPERTY_REF.
(objc_is_property_ref): New.
(objc_setter_func_call): Removed.
(get_selector_from_reference): Removed.
(is_property): Removed.
(objc_build_setter_call): Renamed to objc_maybe_build_modify_expr.
Updated to work on a PROPERTY_REF and use the PROPERTY_DECL from
the PROPERTY_REF.  Generate an error if the property is read-only.
(build_property_reference): Removed.
(objc_finish_message_expr): Removed check to produce "readonly
property can not be set" error when
in_objc_property_setter_name_context.  We now generate the error
earlier, in objc_maybe_build_modify_expr, which will only generate
the setter call if the property is readwrite.
(check_methods): Recognize dynamic properties.
(check_methods_accessible): Same change.
(objc_build_property_ivar_name): Removed.
(objc_build_property_setter_name): Dropped bool argument.  Always
add the ':' at the end.
(objc_gen_one_property_datum): Removed.
(objc_process_getter_setter): Removed.
(objc_synthesize_getter): Mark 'klass' argument as unused.  Use
PROPERTY_GETTER_NAME instead of PROPERTY_NAME.  Set the
DECL_SOURCE_LOCATION of the new method to be the same as the one
for the @synthesize.  Always use PROPERTY_IVAR_NAME as it is
instead of trying to guess what it should be.  Removed use of
CLASS_IVARS.  Use the location of @synthesize for c_finish_return
and c_end_compound_statement.
(objc_synthesize_setter): Mark 'klass' argument as unused.  Use
PROPERTY_SETTER_NAME instead of trying to guess what it should be.
Set the DECL_SOURCE_LOCATION of the new method to be the same as
the one for the @synthesize.  Always use PROPERTY_IVAR_NAME as it
is instead of trying to guess what it should be.  Removed use of
CLASS_IVARS.  Use the location of @synthesize for c_finish_return
and c_end_compound_statement.  Emit an error and keep going,
instead of aborting, if the setter prototype does not have the
expected argument.
(objc_add_synthesize_declaration_for_property): New.
(objc_add_synthesize_declaration): Removed ATTRIBUTE_UNUSED from
all arguments.  Improved error message.  Filled in the rest of the
function, which used to be a placeholder, with an actual
implementation.
(objc_add_dynamic_declaration_for_property): New.
(objc_add_dynamic_declaration): Removed ATTRIBUTE_UNUSED from all
arguments.  Improved error message.  Filled in the rest of the
function, which used to be a placeholder, with an actual
implementation.
(objc_gen_property_data): Rewritten.
(finish_class): Added explicit switch cases for
CLASS_INTERFACE_TYPE, CATEGORY_INTERFACE_TYPE and
PROTOCOL_INTERFACE_TYPE.  Added a default switch case which is
gcc_unreachable.  Rewritten the processing of properties, in
particular to not synthesize prototypes for getters and setters if
they already exist and to install the getter and setter names into
PROPERTY_GETTER_NAME and PROPERTY_SETTER_NAME.  Do not generate
warnings about setter, getter and ivar property attributes.
(objc_lookup_ivar): Removed support for properties.
(objc_gimplify_property_ref): New.
(objc_gimplify_expr): Use a switch.  In case of a PROPERTY_REF, call
objc_gimplify_property_ref.

In gcc/testsuite/:
2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>

Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
* objc.dg/property/property-neg-1.m: Updated for changes in the
syntax of @property and the implementation of
@synthesize/@dynamic.
* objc.dg/property/property-neg-2.m: Same change.
* objc.dg/property/property-neg-3.m: Same change.
* objc.dg/property/property-neg-4.m: Same change.
* objc.dg/property/property-neg-5.m: Same change.
* objc.dg/property/property-neg-7.m: Same change.
* objc.dg/property/property-1.m: Same change.
* objc.dg/property/synthesize-1.m: Same change.
* objc.dg/property/at-property-2.m: Same change.
* objc.dg/property/at-property-4.m: Same change.

* objc.dg/property/fsf-property-method-acces.m: Updated for
changes in the syntax of @property and the implementation of
@synthesize/@dynamic.  Use the same code for GNU and NeXT runtime.
* objc.dg/property/fsf-property-basic.m: Same change.
* objc.dg/property/fsf-property-named-ivar.m: Same change.

* objc.dg/property/at-property-5.m: New.
* objc.dg/property/at-property-6.m: New.
* objc.dg/property/at-property-7.m: New.
* objc.dg/property/at-property-8.m: New.
* objc.dg/property/at-property-9.m: New.
* objc.dg/property/at-property-10.m: New.
* objc.dg/property/at-property-11.m: New.
* objc.dg/property/synthesize-2.m: New.
* objc.dg/property/dynamic-2.m: New.

* obj-c++.dg/property/property-neg-1.mm: Updated for changes in the
syntax of @property and the implementation of
@synthesize/@dynamic.
* obj-c++.dg/property/property-neg-2.mm: Same change.
* obj-c++.dg/property/property-neg-3.mm: Same change.
* obj-c++.dg/property/property-neg-4.mm: Same change.
* obj-c++.dg/property/property-neg-5.mm: Same change.
* obj-c++.dg/property/property-neg-7.mm: Same change.
* obj-c++.dg/property/property-1.mm: Same change.
* obj-c++.dg/property/synthesize-1.mm: Same change.
* obj-c++.dg/property/at-property-2.mm: Same change.
* obj-c++.dg/property/at-property-4.mm: Same change.

* obj-c++.dg/property/fsf-property-method-acces.mm: Updated for
changes in the syntax of @property and the implementation of
@synthesize/@dynamic.  Use the same code for GNU and NeXT runtime.
* obj-c++.dg/property/fsf-property-basic.mm: Same change.
* obj-c++.dg/property/fsf-property-named-ivar.mm: Same change.

* obj-c++.dg/property/at-property-5.mm: New.
* obj-c++.dg/property/at-property-6.mm: New.
* obj-c++.dg/property/at-property-7.mm: New.
* obj-c++.dg/property/at-property-8.mm: New.
* obj-c++.dg/property/at-property-9.mm: New.
* obj-c++.dg/property/at-property-10.mm: New.
* obj-c++.dg/property/at-property-11.mm: New.
* obj-c++.dg/property/synthesize-2.mm: New.
* obj-c++.dg/property/dynamic-2.mm: New.

From-SVN: r166087

13 years agoDaily bump.
GCC Administrator [Sat, 30 Oct 2010 00:17:08 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r166084

13 years agosetproctitle.c: Add space after function name in @deftypefn comment.
Ian Lance Taylor [Fri, 29 Oct 2010 23:09:50 +0000 (23:09 +0000)]
setproctitle.c: Add space after function name in @deftypefn comment.

* setproctitle.c: Add space after function name in @deftypefn
comment.
* functions.texi: Rebuild.

From-SVN: r166079

13 years agotm.texi.in (REGNO_OK_FOR_BASE_P, [...]): Delete non-strict variant.
Paul Koning [Fri, 29 Oct 2010 21:33:32 +0000 (17:33 -0400)]
tm.texi.in (REGNO_OK_FOR_BASE_P, [...]): Delete non-strict variant.

* doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
(REG_OK_STRICT): Move description.

From-SVN: r166077

13 years ago* config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
Paul Koning [Fri, 29 Oct 2010 20:42:20 +0000 (16:42 -0400)]
* config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.

From-SVN: r166076

13 years ago* config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
Paul Koning [Fri, 29 Oct 2010 20:38:04 +0000 (16:38 -0400)]
* config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.

From-SVN: r166075

13 years agopdp11.md (andhi3, andqi3): Fix wrong code error.
Paul Koning [Fri, 29 Oct 2010 19:45:23 +0000 (15:45 -0400)]
pdp11.md (andhi3, andqi3): Fix wrong code error.

PR/41822
* config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.

From-SVN: r166073

13 years agore PR rtl-optimization/46226 (asm goto may leave stack pointer invalid)
Richard Henderson [Fri, 29 Oct 2010 17:12:46 +0000 (10:12 -0700)]
re PR rtl-optimization/46226 (asm goto may leave stack pointer invalid)

PR rtl-opt/46226
Move test case to x86 test directory.

From-SVN: r166069

13 years agore PR rtl-optimization/46226 (asm goto may leave stack pointer invalid)
Richard Henderson [Fri, 29 Oct 2010 16:56:18 +0000 (09:56 -0700)]
re PR rtl-optimization/46226 (asm goto may leave stack pointer invalid)

PR rtl-opt/46226
* stmt.c (expand_asm_operands): Call do_pending_stack_adjust
for asm goto.

From-SVN: r166067

13 years agopdp11.c (output_move_quad): Fix ICE for CPU register to register move.
Paul Koning [Fri, 29 Oct 2010 16:41:50 +0000 (12:41 -0400)]
pdp11.c (output_move_quad): Fix ICE for CPU register to register move.

* config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
register to register move.

From-SVN: r166066

13 years agopdp11.c (print_operand_address): Correct handling of integer constant addresses,...
Paul Koning [Fri, 29 Oct 2010 16:10:07 +0000 (12:10 -0400)]
pdp11.c (print_operand_address): Correct handling of integer constant addresses, delete vax-only logic.

* config/pdp11/pdp11.c (print_operand_address): Correct handling
of integer constant addresses, delete vax-only logic.

From-SVN: r166065

13 years agopicochip.c (picochip_is_short_branch): Simplify a conditional expression.
Hariharan Sandanagobalane [Fri, 29 Oct 2010 15:45:10 +0000 (15:45 +0000)]
picochip.c (picochip_is_short_branch): Simplify a conditional expression.

        * config/picochip/picochip.c (picochip_is_short_branch): Simplify
          a conditional expression.

From-SVN: r166064

13 years agopdp11.c (pdp11_trampoline_init): Correct instruction encoding.
Paul Koning [Fri, 29 Oct 2010 15:29:51 +0000 (11:29 -0400)]
pdp11.c (pdp11_trampoline_init): Correct instruction encoding.

* config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
instruction encoding.

From-SVN: r166063

13 years agostl_function.h (_Select1st<>::operator()): Add templatized overloads.
Paolo Carlini [Fri, 29 Oct 2010 15:11:47 +0000 (15:11 +0000)]
stl_function.h (_Select1st<>::operator()): Add templatized overloads.

2010-10-29  Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/stl_function.h (_Select1st<>::operator()): Add
templatized overloads.
* include/bits/hashtable_policy.h (_Select1st): Remove; revert
everything to std::_Select1st.
* include/bits/unordered_map.h: Likewise.

From-SVN: r166062

13 years agotree.h (build_vector_from_val): Declare.
Artjoms Sinkarovs [Fri, 29 Oct 2010 14:59:07 +0000 (14:59 +0000)]
tree.h (build_vector_from_val): Declare.

2010-10-29  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
Andrew Pinski <pinskia@gmail.com>

* tree.h (build_vector_from_val): Declare.
* tree.c (build_vector_from_val): New function.
* c-typeck.c (build_binary_op): Handle vector shifting.
* doc/extend.texi: Description of the vector shifting operation.

testsuite/
* gcc.c-torture/execute/vector-shift.c: New testcase.
* gcc.c-torture/execute/vector-shift1.c: Likewise.
* gcc.c-torture/execute/vector-shift2.c: Likewise.
* gcc.dg/vector-shift.c: Likewise.
* gcc.dg/vector-shift1.c: Likewise.
* gcc.dg/torture/vector-shift2.c: Likewise.
* gcc.dg/vector-shift3.c: Likewise.
* gcc.dg/simd-1b.c: Adjust.

Co-Authored-By: Andrew Pinski <pinskia@gmail.com>
From-SVN: r166061

13 years agopdp11-protos.h (pdp11_cannot_change_mode_class, [...]): Declare.
Paul Koning [Fri, 29 Oct 2010 14:32:59 +0000 (14:32 +0000)]
pdp11-protos.h (pdp11_cannot_change_mode_class, [...]): Declare.

* config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
pdp11_secondary_memory_needed): Declare.
* config/pdp11/predicates.md (float_operand): New predicate.
* config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
(cbranchdf4, movdf): Change predicate.
(movsf): Handle FPU register case.
(truncdfsf2, extendsfdf2): Add FPU register case.
* config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
(pdp11_register_move_cost): Update cost matrix.
(pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
pdp11_preferred_output_reload_class, pdp11_secondary_reload,
pdp11_secondary_memory_needed): New function.
(pdp11_return_in_memory): Add other float types.
* config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float
types.
(SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
(PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
REGISTER_MOVE_COST): Delete.
(BASE_RETURN_VALUE_REG): Add other float types.

From-SVN: r166060

13 years agoc-ada-spec.c (separate_class_package): New function.
Arnaud Charlet [Fri, 29 Oct 2010 10:03:43 +0000 (10:03 +0000)]
c-ada-spec.c (separate_class_package): New function.

* c-ada-spec.c (separate_class_package): New function.
(pp_ada_tree_identifier): Prefix references to C++ classes with the
name of their enclosing package.
(print_ada_declaration): Use separate_class_package.

Co-Authored-By: Matthew Gingell <gingell@adacore.com>
From-SVN: r166059

13 years agoinvoke.texi: Document -mam34 and -mtune options.
Nick Clifton [Fri, 29 Oct 2010 08:53:47 +0000 (08:53 +0000)]
invoke.texi: Document -mam34 and -mtune options.

        * doc/invoke.texi: Document -mam34 and -mtune options.
        * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
        (mn10300_tune_cpu): New variable.
        (mn10300_handle_option): Handle -mam34 and -mtune options.
        (mn10300_option_override): Convert tune string into tune cpu
        variable.
        (mn10300_legitimate_constant_p): Delete unused local variable.
        (is_load_insn): New function.
        (is_store_insn): New function.
        (mn10300_adjust_schedule_cost): New function.
        (TARGET_SCHED_ADJUST_COST): Define.
        * config/mn10300/mn10300.opt (mam34): New option.
        (mtune): New option.
        * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34
        support.
        (enum processor_type): Add AM34.
        (TARGET_AM34): Define.
        * config/mn10300/mn10300.md (attr cpu): Add am34.
        Add pipeline description.
        (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates. Remove unneeded
        alternatives.  Add timing attribute.
        (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
        mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
        mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
        mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
        mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
        bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
        bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
        float_conditional_branch, jump, indirect_jump, tablejump,
        call_internal, call_value_internal, zero_extendqisi2_am33,
        zero_extendqisi2_mn10300, zero_extendhisi2_am33,
        zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
        extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
        mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
        mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
        addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
        fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
        return_internal_regs, store_movm, return, call_next_insn):
        Add timing attribute.
        (am33_subsi3): Add missing clobber of CC_REG.
        (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
        (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
        subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
        extendqisi2): Fix predicates.
        (call_internal, call_internal_value): Separate alternatives.
        * config/mn10300/t-mn10300: Add AM34 multilib.

From-SVN: r166058

13 years agosh.c (sh_promote_function_mode): Use default_promote_function_mode if !sh_promote_pro...
Paolo Bonzini [Fri, 29 Oct 2010 06:48:39 +0000 (06:48 +0000)]
sh.c (sh_promote_function_mode): Use default_promote_function_mode if !sh_promote_prototypes.

2010-10-29  Paolo Bonzini  <bonzini@gnu.org>

* config/sh/sh.c (sh_promote_function_mode): Use
default_promote_function_mode if !sh_promote_prototypes.

From-SVN: r166057

13 years ago20101011-1.c: Skip on SH.
Kaz Kojima [Fri, 29 Oct 2010 04:11:19 +0000 (04:11 +0000)]
20101011-1.c: Skip on SH.

* gcc.c-torture/execute/20101011-1.c: Skip on SH.

From-SVN: r166056

13 years agoDaily bump.
GCC Administrator [Fri, 29 Oct 2010 00:19:07 +0000 (00:19 +0000)]
Daily bump.

From-SVN: r166055

13 years agoconfigure: Regenerate.
Paolo Bonzini [Thu, 28 Oct 2010 22:37:36 +0000 (22:37 +0000)]
configure: Regenerate.

2010-10-29  Paolo Bonzini  <bonzini@gnu.org>

* configure: Regenerate.

From-SVN: r166050

13 years ago20101011-1.c: Fix #ifdef.
Pat Haugen [Thu, 28 Oct 2010 21:32:49 +0000 (21:32 +0000)]
20101011-1.c: Fix #ifdef.

* gcc.c-torture/execute/20101011-1.c: Fix #ifdef.

From-SVN: r166049

13 years agorecog.c (split_all_insns): Remove dead code.
Paolo Bonzini [Thu, 28 Oct 2010 21:20:01 +0000 (21:20 +0000)]
recog.c (split_all_insns): Remove dead code.

2010-10-28  Paolo Bonzini  <bonzini@gnu.org>

* recog.c (split_all_insns): Remove dead code.

From-SVN: r166048

13 years agoPartially revert:
Uros Bizjak [Thu, 28 Oct 2010 20:49:46 +0000 (22:49 +0200)]
Partially revert:

2010-10-28  Uros Bizjak  <ubizjak@gmail.com>

PR target/46153
* config/i386/sse.md (*avx_movhlps): Use ix86_binary_operator_ok
in insn predicate.
(sse_movhlps): Ditto.
(*avx_movlhps): Ditto.
(sse_movlhps): Ditto.
(*avx_loadhps): Ditto.
(sse_loadhps): Ditto.
(*avx_loadhpd): Ditto.
(sse_loadhpd): Ditto.
(*avx_storelps): Prevent both operands in memory.
(sse_storelps): Ditto.

From-SVN: r166047

13 years ago* score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
Nathan Froyd [Thu, 28 Oct 2010 20:27:30 +0000 (20:27 +0000)]
* score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.

From-SVN: r166046

13 years agocris.h (FUNCTION_ARG, [...]): Delete.
Nathan Froyd [Thu, 28 Oct 2010 20:19:57 +0000 (20:19 +0000)]
cris.h (FUNCTION_ARG, [...]): Delete.

* config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
functions.
(cris_function_incoming_arg, cris_function_arg_advance): New
functions.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166045

13 years agolm32-protos.h (lm32_function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 20:13:18 +0000 (20:13 +0000)]
lm32-protos.h (lm32_function_arg): Delete.

* config/lm32/lm32-protos.h (lm32_function_arg): Delete.
* config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
Take a const_tree and a bool.
(mcore_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166044

13 years agomcore-protos.h (mcore_function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 20:07:06 +0000 (20:07 +0000)]
mcore-protos.h (mcore_function_arg): Delete.

* config/mcore/mcore-protos.h (mcore_function_arg): Delete.
* config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
Take a const_tree and a bool.
(mcore_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166043

13 years agoh8300-protos.h (function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 20:06:25 +0000 (20:06 +0000)]
h8300-protos.h (function_arg): Delete.

* config/h8300/h8300-protos.h (function_arg): Delete.
* config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/h8300/h8300.c (function_arg): Rename to...
(h8300_function_arg): ...this.  Make static.  Take a const_tree and
a bool.
(h8300_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166042

13 years agoarc.h (FUNCTION_ARG, [...]): Move code to...
Nathan Froyd [Thu, 28 Oct 2010 20:04:05 +0000 (20:04 +0000)]
arc.h (FUNCTION_ARG, [...]): Move code to...

* config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
to...
* config/arc/arc.c (arc_function_arg): ...here and...
(arc_function_arg_advance): ...here.  New functions.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166041

13 years agocrx-protos.h (crx_function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 20:02:25 +0000 (20:02 +0000)]
crx-protos.h (crx_function_arg): Delete.

* config/crx/crx-protos.h (crx_function_arg): Delete.
(crx_function_arg_advance): Delete.
* config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/crx/crx.c (crx_function_arg): Make static.  Take a
const_tree and a bool.
(crx_function_arg_advance): Make static.  Take a const_tree and
a bool.
(enough_regs_for_param): Take a const_tree.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166040

13 years agom68hc11-protos.h (m68hc11_function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 20:01:11 +0000 (20:01 +0000)]
m68hc11-protos.h (m68hc11_function_arg): Delete.

* config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
(m68hc11_function_arg_advance): Delete.
* config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
Take a const_tree and a bool.
(m68hc11_function_arg_advance): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166039

13 years agostormy16-protos.h (xstormy16_function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 19:59:07 +0000 (19:59 +0000)]
stormy16-protos.h (xstormy16_function_arg): Delete.

* config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
(xstormy16_function_arg_advance): Delete.
* config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
Take a const_tree and a bool.
(xstormy16_function_arg_advance): Likewise.  Return void, updating
the CUM parameter instead.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166038

13 years agomoxie-protos.h (moxie_function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 19:57:17 +0000 (19:57 +0000)]
moxie-protos.h (moxie_function_arg): Delete.

* config/moxie/moxie-protos.h (moxie_function_arg): Delete.
* config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
(MOXIE_FUNCTION_ARG_SIZE): Move to...
* config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
(moxie_function_arg): Make static.  Take a const_tree and a bool.
(moxie_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166037

13 years agomn10300-protos.h (function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 19:55:43 +0000 (19:55 +0000)]
mn10300-protos.h (function_arg): Delete.

* config/mn10300/mn10300-protos.h (function_arg): Delete.
* config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Delete.
* config/mn10300/mn10300.c (function_arg): Rename to...
(mn10300_function_arg): ...this.  Make static.  Take a const_tree
and a bool.
(mn10300_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166036

13 years agoiq2000-protos.h (function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 19:52:48 +0000 (19:52 +0000)]
iq2000-protos.h (function_arg): Delete.

* config/iq2000/iq2000-protos.h (function_arg): Delete.
(function_arg_advance): Delete.
* config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/iq2000/iq2000.c (function_arg): Rename to...
(iq2000_function_arg): ...this.  Make static.  Take a const_tree and
a bool.
(function_arg_advance): Rename to...
(iq2000_function_arg_advance): ...this.  Make static.  Take a
const_tree and a bool.
(iq2000_expand_prologue): Call iq2000_function_arg_advance and
iq2000_function_arg.
(iq2000_pass_by_reference): Call iq2000_function_arg).
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166035

13 years agofr30-protos.h (fr30_num_arg_regs): Delete.
Nathan Froyd [Thu, 28 Oct 2010 19:51:34 +0000 (19:51 +0000)]
fr30-protos.h (fr30_num_arg_regs): Delete.

* config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
* config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
const_tree.
(fr30_function_arg): New function.
(fr30_function_arg_advance): New function.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166034

13 years agofrv-protos.h (frv_function_arg): Delete.
Nathan Froyd [Thu, 28 Oct 2010 19:45:32 +0000 (19:45 +0000)]
frv-protos.h (frv_function_arg): Delete.

* config/frv/frv-protos.h (frv_function_arg): Delete.
(frv_function_arg_advance): Delete.
* config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/frv/frv.c (frv_function_arg): Rename to...
(frv_function_arg_1): Make static.  Take const_tree and bool
arguments.
(frv_function_arg, frv_function_incoming_arg): New functions.
(frv_function_arg_advance): Make static.  Take a const_tree and
a bool.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166033

13 years agoAdd ARM VFP ABI support to libffi.
Chung-Lin Tang [Thu, 28 Oct 2010 18:11:11 +0000 (18:11 +0000)]
Add ARM VFP ABI support to libffi.

From-SVN: r166032