platform/upstream/linaro-gcc.git
9 years ago * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
uros [Tue, 11 Nov 2014 08:53:08 +0000 (08:53 +0000)]
* sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
instead of INT64_MAX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217340 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-11 Tobias Burnus <burnus@net-b.de>
burnus [Tue, 11 Nov 2014 06:55:31 +0000 (06:55 +0000)]
2014-11-11  Tobias Burnus  <burnus@net-b.de>

contrib/
        * download_prerequisites: Stop downloading CLooG.
gcc/
        * doc/install.texi (Prerequisites): Remove CLooG.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217339 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd illegal cilk checks to C++ front.
ak [Tue, 11 Nov 2014 05:11:09 +0000 (05:11 +0000)]
Add illegal cilk checks to C++ front.

Add calls for several illegal Cilk cases to the C++ frontend.
C++ usually doesn't ICE unlike C on illegal cilk, but it's
better to match C in what is allowed and what is not.

if (_Cilk_spawn ...) is still not errored, but at least it doesn't ICE.

gcc/cp/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

* semantics.c (finish_goto_stmt): Call check_no_cilk.
(finish_while_stmt_cond): Dito.
(finish_do_stmt): Dito.
(finish_for_cond): Dito.
(finish_switch_cond): Dito.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217337 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoError out for Cilk_spawn or array expression in forbidden places
ak [Tue, 11 Nov 2014 05:10:58 +0000 (05:10 +0000)]
Error out for Cilk_spawn or array expression in forbidden places

_Cilk_spawn or Cilk array expressions are only allowed on their own,
but not in for(), if(), switch, do, while, goto, etc.
The C parser didn't always check for that, which lead to ICEs earlier
for invalid code.

Add a generic helper that checks this and call it where needed
in the C frontend.

I chose to allow spawn/array for for init and increment expressions.
While the Cilk spec could be interpreted to forbid it there too
there didn't seem any reason to not allow it.

One dark corner is spawn, array in statement expressions not at
the end. Right now that's forbidden too.

gcc/c-family/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

PR c/60804
* c-common.h (check_no_cilk): Declare.
* cilk.c (get_error_location): New function.
(check_no_cilk): Dito.

gcc/c/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

PR c/60804
* c-parser.c (c_parser_statement_after_labels): Call
check_no_cilk.
(c_parser_if_statement): Dito.
(c_parser_switch_statement): Dito.
(c_parser_while_statement): Dito.
(c_parser_do_statement): Dito.
(c_parser_for_statement): Dito.
* c-typeck.c (c_finish_loop): Dito.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217336 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix some of the existing Cilk tests for the new errors.
ak [Tue, 11 Nov 2014 05:10:46 +0000 (05:10 +0000)]
Fix some of the existing Cilk tests for the new errors.

gcc/testsuite/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

* c-c++-common/cilk-plus/AN/misc.c (main): Handle
new cilk errors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217335 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd test cases for all the new cilk errors
ak [Tue, 11 Nov 2014 05:10:35 +0000 (05:10 +0000)]
Add test cases for all the new cilk errors

gcc/testsuite/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

* c-c++-common/cilk-plus/CK/errors.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217334 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix error location for cilk error message
ak [Tue, 11 Nov 2014 05:10:24 +0000 (05:10 +0000)]
Fix error location for cilk error message

Output the correct location for an existing cilk error message.

gcc/c-family/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

* cilk.c (recognize_spawn): Use expression location
for error message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217333 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoc++ify sreal
tbsaunde [Tue, 11 Nov 2014 02:31:00 +0000 (02:31 +0000)]
c++ify sreal

gcc/ChangeLog:

2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>

* ipa-inline.c (edge_badness): Adjust.
(inline_small_functions): Likewise.
* predict.c (propagate_freq): Likewise.
(estimate_bb_frequencies): Likewise.
* sreal.c (sreal::dump): Rename from dump_sreal.
(debug): Adjust.
(copy): Remove function.
(sreal::shift_right): Rename from sreal_sift_right.
(sreal::normalize): Rename from normalize.
(sreal_init): Remove function.
(sreal::to_int): Rename from sreal_to_int.
(sreal_compare): Remove function.
(sreal::operator+): Rename from sreal_add.
(sreal::operator-): Rename from sreal_sub.
(sreal::operator*): Rename from sreal_mul.
(sreal::operator/): Rename from sreal_div.
* sreal.h (class sreal): Adjust.
(inline sreal &operator+=): New operator.
(inline sreal &operator-=): Likewise.
(inline sreal &operator/=): Likewise.
(inline sreal &operator*=): Likewise.
(inline bool operator!=): Likewise.
(inline bool operator>): Likewise.
(inline bool operator<=): Likewise.
(inline bool operator>=): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217332 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * sched-deps.c (sched_analyze_1): Check pending list if it is not
amker [Tue, 11 Nov 2014 02:10:37 +0000 (02:10 +0000)]
* sched-deps.c (sched_analyze_1): Check pending list if it is not
less than MAX_PENDING_LIST_LENGTH.
(sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217331 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Tue, 11 Nov 2014 00:16:26 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217330 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.c (ix86_decompose_address): Replace open-coded
uros [Mon, 10 Nov 2014 23:41:41 +0000 (23:41 +0000)]
* config/i386/i386.c (ix86_decompose_address): Replace open-coded
swap with std::swap to swap values.
(ix86_fixup_binary_operands): Ditto.
(ix86_binary_operator_ok): Ditto.
(ix86_prepare_fp_compare_args): Ditto.
(ix86_expand_branch): Ditto.
(ix86_expand_carry_flag_compare): Ditto.
(ix86_expand_int_movcc): Ditto.
(ix86_prepare_sse_fp_compare_args): Ditto.
(ix86_expand_sse_fp_minmax): Ditto.
(ix86_expand_int_vcond): Ditto.
(ix86_split_long_move): Ditto.
(ix86_expand_sse_comi): Ditto.
(ix86_expand_sse_compare_and_jump): Ditto.
(ix86_expand_sse_compare_mask): Ditto.
* config/i386/i386.md (*add<mode>_1): Ditto.
(addsi_1_zext): Ditto.
(*addhi_1): Ditto.
(*addqi_1): Ditto.
(*add<mode>_2): Ditto.
(*addsi_2_zext): Ditto.
(*add<mode>_3): Ditto.
(*addsi_3_zext): Ditto.
(*add<mode>_5): Ditto.
(absneg splitter): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217326 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-11 Uros Bizjak <ubizjak@gmail.com>
uros [Mon, 10 Nov 2014 23:29:59 +0000 (23:29 +0000)]
2014-11-11  Uros Bizjak  <ubizjak@gmail.com>

Revert:
2014-10-31  Uros Bizjak  <ubizjak@gmail.com>

PR target/63620
* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
* config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
* config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
be reloaded through memory.
(*pushxf): Ditto.
(*pushdf): Ditto.

testsuite/ChangeLog:

2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
    Ilya Enkovich  <ilya.enkovich@intel.com>

PR target/63620
* gcc.target/i386/pr63620.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217325 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc.dg/tm/memopt-15.c: Add -msse2 to dg-options.
jakub [Mon, 10 Nov 2014 23:09:09 +0000 (23:09 +0000)]
* gcc.dg/tm/memopt-15.c: Add -msse2 to dg-options.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217324 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
jakub [Mon, 10 Nov 2014 23:08:08 +0000 (23:08 +0000)]
* ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
(func_checker::compare_gimple_call): Compare gimple_call_fn,
gimple_call_chain, gimple_call_fntype and call flags.
testsuite/
* gcc.dg/ubsan/ipa-icf-1.c: New test.
* gcc.dg/ipa/ipa-icf-31.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217323 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix std::deque move construction with non-equal allocators.
redi [Mon, 10 Nov 2014 22:44:07 +0000 (22:44 +0000)]
Fix std::deque move construction with non-equal allocators.

* include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
Dispatch according to whether allocators are always equal.
(_Deque_base::_M_move_impl()): Implement move-from state.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Fix
dg-error line number.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217322 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 François Dumont <fdumont@gcc.gnu.org>
fdumont [Mon, 10 Nov 2014 21:51:58 +0000 (21:51 +0000)]
2014-11-10  François Dumont  <fdumont@gcc.gnu.org>

Major maintenance patch of the profile mode.
* include/profile/impl/profiler_container_size.h
(__container_size_info()): Delete.
(__container_size_info(const __container_size_info&)): Delete.
(virtual ~__container_size_info()): Delete.
(__container_size_info(__stack_t, size_t)): Delete.
(__container_size_info(__stack_t)): New.
(__container_size_info::__init(size_t)): New.
(__container_size_info::__merge): Call __object_info_base::__merge.
(__trace_container_size::__construct): Delete declaration.
(__trace_container_size::__insert): Return __container_size_info*,
call __init.
* include/profile/impl/profiler_hash_func.h
(__hashfunc_into()): Delete.
(__hashfunc_info(const __hashfunc_info&)): Delete.
(virtual ~__hashfunc_info()): Delete.
(__hashfunc_info::__merge): Call __object_info_base::__merge.
(__trace_hash_func::__insert): Delete.
(__trace_hash_func_free): New.
(__trace_hash_func_report): Call __trace_report.
(__trace_hash_func_construct): Return __hashfunc_info*. Add check for
reentrancy.
* include/profile/impl/profiler_hashtable_size.h
(__trace_hashtable_size_free): New.
(__trace_hashtable_size_report): Call __trace_report.
(__trace_hashtable_size_construct): Return __container_size_info*. Add
check for reentrancy.
* include/profile/impl/profiler_list_to_slist.h
(__list2slist_info()): Delete.
(__list2slist_info(const __list2slist_info&)): Delete.
(virtual ~__list2slist_info()): Delete.
(__trace_list_to_slist::__merge(const __list2slist_info&)): Delete.
(__trace_list_to_slist::__opr_rewind(const void*)): Delete.
(__trace_list_to_slist::__record_operation(const void*)): Delete.
(__trace_list_to_slist::__insert(const __object_t, __stack_t)): Delete.
(__trace_list_to_slist::__destruct): Only call __retire_object.
(__trace_list_to_slist_free()): New.
(__trace_list_to_slist_report): Call __trace_report.
(__trace_list_to_slist_construct): Return __list2slist_info*. Add check
for reentrancy.
* include/profile/impl/profiler_list_to_vector.h
(__list2vector_info()): Delete.
(__list2vector_info(const __list2vector_info&)): Delete.
(virtual ~__list2vector_info()): Delete.
(_list2vector_info::__is_valid): Delete.
(_list2vector_info::__set_invalid): Delete.
(_list2vector_info::__opr_iterate): Use atomic operation.
(_list2vector_info::_M_valid): Delete.
(__trace_list_to_vector::__insert): Delete.
(__trace_list_to_vector::__find): Delete.
(__trace_list_to_vector::__opr_insert): Delete.
(__trace_list_to_vector::__opr_iterate): Delete.
(__trace_list_to_vector::__invalid_operator): Delete.
(__trace_list_to_vector::__resize): Delete.
(__trace_list_to_vector_free): New.
(__trace_list_to_vector_report): Call __trace_report.
(__trace_list_to_vector_construct): Return __list2vector_info*. Add
check for reentrancy.
* include/profile/impl/profiler_map_to_unordered_map.h
(__map2umap_info()): Delete.
(__map2umap_info(const __map2umap_info&)): Delete.
(virtual ~__map2umap_info()): Delete.
(__map2umap_info::__record_iterate): Use atomic operation.
(__map2umap_info::__set_iterate_costs): New.
(__map2umap_info::__record_invalidate): Delete.
(__map2umap_info::_M_valid): Delete.
(__trace_map2umap::__destruct): New.
(__trace_map_to_unordered_map_free): New.
(__trace_map_to_unordered_map_report): Call __trace_report.
(__trace_map_to_unordered_map_construct): Return __map2umap_info*. Add
check for reentrancy.
* include/profile/impl/profiler_node.h (__object_t): Delete typedef.
(__get_stack): Return null stack trace in case of (bad_alloc) exception.
(__object_info_base()): Delete.
(__object_info_base(const __object_info_base&)): Delete.
(virtual ~__object_info_base()): Delete.
(__object_info_base::__set_invalid): New.
(__object_info_base::__merge): New.
(virtual void __write(FILE*)): Delete.
(class __stack_info_base): Delete.
* include/profile/impl/profiler_trace.h (__global_lock): Rename into
__global_mutex.
(__trace_vector_size_free): New declaration.
(__trace_hashtable_size_free): Likewise.
(__trace_hash_func_free): Likewise.
(__trace_vector_to_list_free): Likewise.
(__trace_list_to_slist_free): Likewise.
(__trace_list_to_vector_free): Likewise.
(__trace_map_to_unordered_map_free): Likewise.
(__trace_base::~__trace_base()): Not virtual anymore. Delete stored
backtrace information.
(__trace_base::__add_object): Return __object_info*, take only a stack
trace.
(__trace_base::__get_object_info): Delete.
(__trace_base::__retire_object): Take __object_info* instead of
__object_t.
(__trace_base::__object_table_lock): Delete.
(__trace_base::__stack_table_lock): Delete.
(__trace_base::__object_table_t): Delete typedef.
(__trace_base::__object_table): Delete.
(__trace_base::__trace_mutex): New.
(__trace_base::__object_byte_size): New.
(__trace_report): New.
(__report): Use __gnu_cxx::__scoped_lock to lock/unlock __global_mutex
rather than explicitely calling lock() method, exception safe.
(__report_and_free): New. Call __report and free all profile mode
resources.
(__profcxx_init_unconditional): Use __scoped_lock. Register
__report_and_free with atexit.
* include/profile/impl/profiler_vector_size.h
(__trace_vector_size_free): New.
(__trace_vector_size_report): Call __trace_report.
(__trace_vector_size_construct): Return __container_size_info*. Add
check for reentrancy.
* include/profile/impl/profiler_vector_to_list.h
(__vector2list_info()): Delete.
(virtual ~__vector2list_info()): Delete.
(__vector2list_info(const __vector2list_info&)): Delete.
(__vector2list_info::__merge): Call __object_info_base::__merge.
(__vector2list_info::__is_valid): Delete.
(__vector2list_info::__set_valid): Delete.
(__vector2list_info::__opr_find): Delete.
(__vector2list_info::_M_valid): Delete.
(__trace_vector_to_list::__insert): Delete.
(__trace_vector_to_list::__find): Delete.
(__trace_vector_to_list::__opr_insert): Delete.
(__trace_vector_to_list::__opr_iterate): Delete.
(__trace_vector_to_list::__invalid_operator): Delete.
(__trace_vector_to_list::__resize): Delete.
(__trace_vector_to_list::__opr_find): Delete.
(__trace_vector_to_list_free): New.
(__trace_vector_to_list_report): Call __trace_report.
(__trace_vector_to_list_construct): Return __vector2list_info*. Add
check for reentrancy.
* include/profile/iterator_tracker.h
(__iterator_tracker<>::operator=): Add missing _M_ds assignment.
(__iterator_tracker<>::_M_find): Delete.
* include/profile/impl/profiler.h
([_GLIBCXX_PROFILE_REENTRANCE_GUARD]): Delete.
(__container_size_info): Add class declaration.
(__hashfunc_info): Likewise.
(__map2umap_info): Likewise.
(__vector2list_info): Likewise.
(__list2slist_info): Likewise.
(__list2vector_info): Likewise.
(__trace_list_to_set_destruct): Delete declaration.
(__trace_list_to_set_construct): Likewise.
(__trace_list_to_set_insert): Likewise.
(__trace_list_to_set_iterate): Likewise.
(__trace_list_to_set_invalid_operator): Likewise.
(__trace_list_to_set_find): Likewise.
([__profcxx_report]): Remove usage of _GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_turn_on]): Likewise.
([__profcxx_turn_off]): Likewise.
([__profcxx_is_invalid]): Likewise.
([__profcxx_is_on]): Likewise.
([__profcxx_is_off]): Likewise.
([__profcxx_hashtable_resize]): Likewise.
([__profcxx_hashtable_destruct]): Likewise.
([__profcxx_hashtable_construct]): Likewise.
([__profcxx_vector_size_construct]): Likewise.
([__profcxx_vector_size_resize]): Likewise.
([__profcxx_vector_size_destruct]): Likewise.
([__profcxx_inefficient_hash_is_on]): Delete.
([__profcxx_hash_func_construct]): Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_hash_func_destruct]): Likewise.
([__profcxx_vector_construct2]): Rename into...
([__profcxx_vector2list_construct]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_vector_insert]): Rename into...
([__profcxx_vector2list_insert]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_vector_iterate]): Rename into...
([__profcxx_vector2list_iterate]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_vector_invalid_operator]): Rename into...
([__profcxx_vector2list_invalid_operator]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_vector_resize2]): Rename into...
([__profcxx_vector2list_resize]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_vector_destruct2]): Rename into...
([__profcxx_vector2list_destruct]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_vector_find]): Delete.
([__profcxx_list_construct2]): Rename into...
([__profcxx_list2vector_construct]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_list_insert]): Rename into...
([__profcxx_list2vector_insert]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_list_iterate]): Rename into...
([__profcxx_list2vector_iterate]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([_profcxx_list_invalid_operator]): Rename into...
([__profcxx_list2vector_invalid_operator]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_list_destruct2]): Rename into...
([__profcxx_list2vector_destruct]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_list_construct]): Rename into...
([__profcxx_list2slist_construct]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_list_rewind]): Rename into...
([__profcxx_list2slist_rewind]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_list_operation]): Rename into...
([__profcxx_list2slist_operation]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_list_destruct]): Rename into...
([__profcxx_list2slist_destruct]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_map_to_unordered_map_construct]): Rename into...
([__profcxx_map2umap_construct]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_map_to_unordered_map_insert]): Rename into...
([__profcxx_map2umap_insert]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_map_to_unordered_map_erase]): Rename into...
([__profcxx_map2umap_erase]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_map_to_unordered_map_iterate]): Rename into...
([__profcxx_map2umap_iterate]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_map_to_unordered_map_invalidate]): Rename into...
([__profcxx_map2umap_invalidate]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_map_to_unordered_map_find]): Rename into...
([__profcxx_map2umap_find]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
([__profcxx_map_to_unordered_map_destruct]): Rename into...
([__profcxx_map2umap_destruct]): ... this. Remove usage of
_GLIBCXX_PROFILE_REENTRANCE_GUARD.
* include/profile/list
(_List_profile): Adapt.
(_List_profile::_M_profile_construct): New.
(_List_profile()): Call latter.
(_List_profile::_M_profile_destruct): New.
(~_List_profile()): Call latter.
(_List_profile::_M_swap): New.
(_List_profile(_List_profile&&)): Call latter.
(_List_profile::operator=(const _List_profile&)): Reinit profile
structures.
(_List_profile::operator=(_List_profile&&)): Move profile struct and
re-init profile structures on moved instance.
(std::__profile::list<>): Adapt.
* include/profile/ordered_base.h
(_Ordered_profile::_M_profile_iterate): New.
(_Ordered_profile::_M_profile_construct): New.
(_Ordered_profile()): Call latter.
(_Ordered_profile::_M_swap): New.
(_Ordered_profile(_Ordered_profile&&)): Call latter.
(_Ordered_profile::operator=(const _Ordered_profile&)): Reinit
profiling.
(_Ordered_profile::operator=(_Ordered_profile&&)): Swap and reinit
profiling on the moved instance.
(_Ordered_profile::_M_profile_destruct): New.
(~_Ordered_profile()): Call latter.
* include/profile/map.h (std::__profile::map<>): Add profiling on
iterators. Adapt.
* include/profile/multimap.h (std::__profile::multimap<>): Likewise.
* include/profile/set.h (std::__profile::set<>): Likewise.
* include/profile/multiset.h (std::__profile::multiset<>): Likewise.
* include/profile/unordered_base.h
(_Unordered_profile::_M_profile_construct): New.
(_Unordered_profile()): Call latter.
(_Unordered_profile::_M_swap): New.
(_Unordered_profile(_Unordered_profile&&)): Call latter.
(_Unordered_profile::operator=(const _Unordered_profile&)): Reinit
profiling.
(_Unordered_profile::operator=(_Unordered_profile&&)): Swap and reinit
profiling on the moved instance.
(_Unordered_profile::_M_profile_destruct): New.
(~_Ordered_profile()): Call latter.
* include/profile/unordered_map
(std::__profile::unordered_map<>): Adapt.
(std::__profile::unordered_multimap<>): Adapt.
* include/profile/unordered_set
(std::__profile::unordered_set<>): Adapt.
(std::__profile::unordered_multiset<>): Adapt.
* include/profile/vector
(_Vector_profile_pre::_M_profile_destruct): Move...
(_Vector_profile_post::_M_profile_destruct): ...here.
(_Vector_profile_post::_M_profile_construct): New.
(_Vector_profile_post()): Call latter.
(std::__profile::vector<>): Adapt.
* testsuite/ext/profile/mh.cc: Rename into...
* testsuite/ext/profile/replace_new.cc: ... this and fix test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217321 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Mon, 10 Nov 2014 21:33:06 +0000 (21:33 +0000)]
2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/63620
PR rtl-optimization/63799
* lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
and setting PIC pseudo insns.
(lra_create_live_ranges): Fix the typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217320 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Patrick Palka <ppalka@gcc.gnu.org>
ppalka [Mon, 10 Nov 2014 20:43:40 +0000 (20:43 +0000)]
2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>

gcc/
PR middle-end/63748
* tree-ssa-propagate.c (may_propagate_copy): Allow propagating
SSA copies whose source and destination names both occur in
abnormal PHIs.

gcc/testsuite/
PR middle-end/63748
* gcc.dg/pr63748.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217317 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd missing braces in gcc.dg/pr44194-1.c
hjl [Mon, 10 Nov 2014 20:35:45 +0000 (20:35 +0000)]
Add missing braces in gcc.dg/pr44194-1.c

* gcc.dg/pr44194-1.c (dg-do): Add missing braces.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217316 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[gcc/]
romangareev [Mon, 10 Nov 2014 20:32:31 +0000 (20:32 +0000)]
[gcc/]

* Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
* common.opt: Remove using of fgraphite-code-generator flag.
* flag-types.h: Likewise.
* graphite.c: Remove using of CLooG.
* graphite-blocking.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-poly.h: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite-clast-to-gimple.c: Removed.
* graphite-clast-to-gimple.h: Likewise.
* graphite-htab.h: Likewise.

[gcc/testsuite]

* gcc.dg/graphite/isl-ast-gen-blocks-1.c: Remove using of
fgraphite-code-generator flag.
* gcc.dg/graphite/isl-ast-gen-blocks-2.c: Likewise.
* gcc.dg/graphite/isl-ast-gen-blocks-3.c: Likewise.
* gcc.dg/graphite/isl-ast-gen-blocks-4.c: Likewise.
* gcc.dg/graphite/isl-ast-gen-user-1.c: Likewise.
* gcc.dg/graphite/isl-codegen-loop-dumping.c: Likewise.
* gcc.dg/graphite/pr35356-2.c: Likewise.
* gcc.dg/graphite/isl-ast-gen-single-loop-1.c: Likewise.
* gcc.dg/graphite/isl-ast-gen-single-loop-2.c: Likewise.
* gcc.dg/graphite/isl-ast-gen-single-loop-3.c: Likewise.
* gcc.dg/graphite/isl-ast-gen-if-1.c: Likewise.
* gcc.dg/graphite/isl-ast-gen-if-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217315 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRevert the last change on gcc.c-torture/compile/pr35468.c
hjl [Mon, 10 Nov 2014 20:18:26 +0000 (20:18 +0000)]
Revert the last change on gcc.c-torture/compile/pr35468.c

* gcc.c-torture/compile/pr35468.c: Revert the last change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217314 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Mon, 10 Nov 2014 20:14:41 +0000 (20:14 +0000)]
2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

* doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
Add.

/c-family
2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

* c.opt ([Wshift-count-negative, Wshift-count-overflow]): Add.

/cp
2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

* typeck.c (cp_build_binary_op): Use OPT_Wshift_count_negative and
OPT_Wshift_count_overflow in the warnings.

/c
2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

* c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and
OPT_Wshift_count_overflow in the warnings.

/testsuite
2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

* c-c++-common/Wshift-count-overflow-1.c: New.
* c-c++-common/Wshift-count-overflow-2.c: Likewise.
* c-c++-common/Wshift-count-negative-1.c: Likewise.
* c-c++-common/Wshift-count-negative-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217313 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Mon, 10 Nov 2014 19:52:14 +0000 (19:52 +0000)]
gcc/
* config/frv/frv.c (frv_io_handle_use_1): Delete.
(frv_io_handle_use): Use find_all_hard_regs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217311 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Mon, 10 Nov 2014 19:52:05 +0000 (19:52 +0000)]
gcc/
* config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
than an rtx *.  Take the regstate_t directly rather than via a void *.
Return a bool rather than an int.  Iterate over all subrtxes here.
(frv_registers_conflict_p): Update accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217310 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Mon, 10 Nov 2014 19:51:57 +0000 (19:51 +0000)]
gcc/
* config/frv/frv.c: Include rtl-iter.h.
(frv_acc_group_1): Delete.
(frv_acc_group): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217309 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Mon, 10 Nov 2014 19:51:48 +0000 (19:51 +0000)]
gcc/
* config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
(frv_clear_registers_used): Delete.
(frv_ifcvt_modify_tests): Use find_all_hard_regs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217308 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR bootstrap/63573
hubicka [Mon, 10 Nov 2014 19:14:17 +0000 (19:14 +0000)]
PR bootstrap/63573
* calls.c (initialize_argument_information): When emitting thunk call
use original memory placement of the argument.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217307 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Andreas Tobler <andreast@gcc.gnu.org>
andreast [Mon, 10 Nov 2014 18:32:45 +0000 (18:32 +0000)]
2014-11-10  Andreas Tobler  <andreast@gcc.gnu.org>

    * gcc.dg/fshort-wchar.c: Use arm_eabi instead of arm*-*-*eabi*.
    * gcc.target/arm/aapcs/neon-vect1.c: Likewise.
    * gcc.target/arm/aapcs/neon-vect2.c: Likewise.
    * gcc.target/arm/aapcs/neon-vect3.c: Likewise.
    * gcc.target/arm/aapcs/neon-vect4.c: Likewise.
    * gcc.target/arm/aapcs/neon-vect5.c: Likewise.
    * gcc.target/arm/aapcs/neon-vect6.c: Likewise.
    * gcc.target/arm/aapcs/neon-vect7.c: Likewise.
    * gcc.target/arm/aapcs/neon-vect8.c: Likewise.
    * gcc.target/arm/aapcs/vfp1.c: Likewise.
    * gcc.target/arm/aapcs/vfp2.c: Likewise.
    * gcc.target/arm/aapcs/vfp3.c: Likewise.
    * gcc.target/arm/aapcs/vfp4.c: Likewise.
    * gcc.target/arm/aapcs/vfp5.c: Likewise.
    * gcc.target/arm/aapcs/vfp6.c: Likewise.
    * gcc.target/arm/aapcs/vfp7.c: Likewise.
    * gcc.target/arm/aapcs/vfp8.c: Likewise.
    * gcc.target/arm/aapcs/vfp9.c: Likewise.
    * gcc.target/arm/aapcs/vfp10.c: Likewise.
    * gcc.target/arm/aapcs/vfp11.c: Likewise.
    * gcc.target/arm/aapcs/vfp12.c: Likewise.
    * gcc.target/arm/aapcs/vfp13.c: Likewise.
    * gcc.target/arm/aapcs/vfp14.c: Likewise.
    * gcc.target/arm/aapcs/vfp15.c: Likewise.
    * gcc.target/arm/aapcs/vfp16.c: Likewise.
    * gcc.target/arm/aapcs/vfp17.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217306 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd a testcase for PR tree-optimization/63778
hjl [Mon, 10 Nov 2014 18:08:00 +0000 (18:08 +0000)]
Add a testcase for PR tree-optimization/63778

PR tree-optimization/63778
* gfortran.dg/pr63778.f: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217304 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[PATCH] Partially fix PR61529, bound basic block frequency
jiwang [Mon, 10 Nov 2014 17:53:21 +0000 (17:53 +0000)]
[PATCH] Partially fix PR61529, bound basic block frequency

  2014-11-10  Renlin Li <Renlin.Li@arm.com>

  PR middle-end/61529

  gcc/
    * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.

  gcc/testsuite/
    * gcc.dg/pr61529.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217303 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Mon, 10 Nov 2014 17:18:23 +0000 (17:18 +0000)]
2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
    bswaphi if available.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217302 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoptx testsuite fix for return addresses.
bernds [Mon, 10 Nov 2014 16:31:10 +0000 (16:31 +0000)]
ptx testsuite fix for return addresses.

* lib/target-supports.exp (check_effective_target_return_address):
New function.
* gcc.c-torture/execute/20010122-1.c: Require return_address.
* gcc.c-torture/execute/20030323-1.c: Likewise.
* gcc.c-torture/execute/20030811-1.c: Likewise.
* gcc.c-torture/execute/eeprof-1.c: Likewise.
* gcc.c-torture/execute/frame-address.c: Likewise.
* gcc.c-torture/execute/pr17377.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217301 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRandom testsuite tweaks for ptx.
bernds [Mon, 10 Nov 2014 16:31:00 +0000 (16:31 +0000)]
Random testsuite tweaks for ptx.

* gcc.c-torture/compile/920625-2.c: Add return type to
freeReturnStruct.
* gcc.c-torture/execute/20091229-1.c: Declare main properly.
* gcc.c-torture/execute/pr61375.c: Likewise.
* gcc.c-torture/execute/20111208-1.c: Use __SIZE_TYPE__ for size_t.
* gcc.dg/pr30904.c: Remove extern from declaration of t.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217300 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoptx testsuite fixes for issues like indirect jumps and jump labels.
bernds [Mon, 10 Nov 2014 16:30:50 +0000 (16:30 +0000)]
ptx testsuite fixes for issues like indirect jumps and jump labels.

* lib/target-supports.exp (check_effective_target_indirect_jumps):
New function.
(check_effective_target_nonlocal_goto): New function.
(check_effective_target_label_values): New function.
* gcc.c-torture/execute/20071220-2.c: Require label_values.
* gcc.c-torture/compile/labels-2.c: Likewise.
* gcc.c-torture/compile/20000518-1.c: Likewise.
* gcc.c-torture/compile/20021108-1.c: Likewise.
* gcc.c-torture/compile/981006-1.c: Likewise.
* gcc.c-torture/execute/20040302-1.c: Likewise.
* gcc.dg/torture/pr33848.c: Likewise.

* gcc.c-torture/compile/pr46107.c: Require indirect jumps and
label values.
* gcc.c-torture/compile/pr32919.c: Likewise.
* gcc.c-torture/compile/pr17913.c: Likewise.
* gcc.c-torture/compile/pr51495.c: Likewise.
* gcc.c-torture/compile/pr25224.c: Likewise.
* gcc.c-torture/compile/labels-3.c: Likewise.
* gcc.c-torture/compile/pr27863.c: Likewise.
* gcc.c-torture/compile/20050510-1.c: Likewise.
* gcc.c-torture/compile/pr28489.c: Likewise.
* gcc.c-torture/compile/pr29128.c: Likewise.
* gcc.c-torture/compile/pr21356: Likewise.
* gcc.c-torture/execute/20071210-1.c: Likewise.
* gcc.c-torture/execute/200701220-1.c: Likewise.
* gcc.c-torture/execute/pr51447.c: Likewise.
* gcc.c-torture/execute/comp-goto-1.c: Likewise.
* gcc.c-torture/execute/comp-goto-2.c: Likewise.
* gcc.dg/20021029-1.c: Likewise.
* gcc.dg/pr43379.c: Likewise.
* gcc.dg/pr45259.c: Likewise.
* gcc.dg/torture/pr53695.c: Likewise.
* gcc.dg/torture/pr57584.c: Likewise.

* gcc.c-torture/execute/980526-1.c: Skip if -O0 and neither label_values
or indirect_jumps are available.
* gcc.c-torture/compile/920415-1.c: Likewise.  Remove NO_LABEL_VALUES
test.
* gcc.c-torture/compile/920428-3.c: Likewise.
* gcc.c-torture/compile/950613-1.c: Likewise.

* gcc.c-torture/compile/pr30984.c: Require indirect jumps.
* gcc.c-torture/compile/991213-3.c: Likewise.
* gcc.c-torture/compile/920825-1.c: Likewise.
* gcc.c-torture/compile/20011029-1.c: Likewise.
* gcc.c-torture/compile/complex-6.c: Likewise.
* gcc.c-torture/compile/pr27127.c: Likewise.
* gcc.c-torture/compile/pr58164.c: Likewise.
* gcc.c-torture/compile/20041214-1.c: Likewise.
* gcc.c-torture/execute/built-in-setjmp.c: Likewise.
* gcc.c-torture/execute/pr56982.c: Likewise.
* gcc.c-torture/execute/pr60003.c: Likewise.
* gcc.c-torture/execute/pr26983.c: Likewise.
* gcc.dg/pr57287-2.c: Likewise.
* gcc.dg/pr59920-1.c: Likewise.
* gcc.dg/pr59920-2.c: Likewise.
* gcc.dg/pr59920-3.c: Likewise.
* gcc.dg/setjmp-3.c: Likewise.
* gcc.dg/setjmp-4.c: Likewise.
* gcc.dg/setjmp-5.c: Likewise.
* gcc.dg/torture/pr48542.c: Likewise.
* gcc.dg/torture/pr57147-2.c: Likewise.
* gcc.dg/torture/pr59993.c: Likewise.

* gcc.dg/torture/stackalign/non-local-goto-1.c: Require nonlocal_goto.
* gcc.dg/torture/stackalign/non-local-goto-2.c: Likewise.
* gcc.dg/torture/stackalign/non-local-goto-3.c: Likewise.
* gcc.dg/torture/stackalign/non-local-goto-4.c: Likewise.
* gcc.dg/torture/stackalign/non-local-goto-5.c: Likewise.
* gcc.dg/torture/stackalign/setjmp-1.c: Likewise.
* gcc.dg/torture/stackalign/setjmp-3.c: Likewise.
* gcc.dg/torture/stackalign/setjmp-4.c: Likewise.
* gcc.dg/non-local-goto-1.c: Likewise.
* gcc.dg/non-local-goto-2.c: Likewise.
* gcc.dg/pr49994-1.c: Likewise.
* gcc.dg/torture/pr57036-2.c: Likewise.

* gcc.c-torture/compile/20040614-1.c: Require label_values.  Remove
NO_LABEL_VALUES test.
* gcc.c-torture/compile/920831-1.c: Likewise.
* gcc.c-torture/compile/920502-1.c: Likewise.
* gcc.c-torture/compile/920501-7.c: Likewise.
* gcc.dg/pr52139.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217299 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoXFAILs and such for ptx.
bernds [Mon, 10 Nov 2014 16:30:33 +0000 (16:30 +0000)]
XFAILs and such for ptx.

* lib/target-supports.exp (check_effective_target_trampolines,
check_profiling_available, check_effective_target_lto,
check_effective_target_vect_natural): False for nvptx-*-*.
* gcc.c-torture/compile/limits-fndefn.c: Skip for nvptx-*-*.
* gcc.c-torture/compile/pr34334.c: Likewise.
* gcc.c-torture/compile/pr37056.c: Likewise.
* gcc.c-torture/compile/pr39423-1.c: Likewise.
* gcc.c-torture/compile/pr46534.c: Likewise.
* gcc.c-torture/compile/pr49049.c: Likewise.
* gcc.c-torture/compile/pr59417.c: Likewise.
* gcc.c-torture/compile/20080721-1.c: Likewise.
* gcc.c-torture/compile/920501-4.c: Likewise.
* gcc.c-torture/compile/921011-1.c: Likewise.
* gcc.dg/20040813-1.c: Likewise.
* gcc.dg/pr28755.c: Likewise.
* gcc.dg/pr44194-1.c: Likewise.
* gcc.c-torture/compile/pr42717.c: Xfail for nvptx-*-*.
* gcc.c-torture/compile/pr61684.c: Likewise.
* gcc.c-torture/compile/pr20601-1.c: Likewise.
* gcc.c-torture/compile/pr59221.c: Likewise.
* gcc.c-torture/compile/20060208-1.c: Likewise.
* gcc.c-torture/execute/pr52129.c: Likewise.
* gcc.c-torture/execute/20020310-1.c: Likewise.
* gcc.c-torture/execute/20101011-1.c: Define DO_TEST to 0 for nvptx.
* gcc.c-torture/execute20020312-2.c: Add case for for nvptx.
* gcc.c-torture/compile/pr60655-1.c: Don't add -fdata-sections
for nvptx-*-*.
* gcc.dg/pr36400.c: Xfail scan-assembler test on nvptx-*-*.
* gcc.dg/const-elim-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217298 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoTestsuite untyped assembly fixes for ptx.
bernds [Mon, 10 Nov 2014 16:30:22 +0000 (16:30 +0000)]
Testsuite untyped assembly fixes for ptx.

* lib/target-supports.exp
(check_effective_target_untyped_assembly): New function.
* gcc.c-torture/compile/20091215-1.c: Require untyped_assembly.
* gcc.c-torture/compile/920917-1.c: Likewise.
* gcc.c-torture/compile/930120-1.c: Likewise.
* gcc.c-torture/compile/930411-1.c: Likewise.
* gcc.c-torture/compile/930529-1.c: Likewise.
* gcc.c-torture/compile/930623-1.c: Likewise.
* gcc.c-torture/compile/950329-1.c: Likewise.
* gcc.c-torture/compile/calls.c: Likewise.
* gcc.c-torture/compile/pr37258.c: Likewise.
* gcc.c-torture/compile/pr37327.c: Likewise.
* gcc.c-torture/compile/pr38360.c: Likewise.
* gcc.c-torture/compile/pr43635.c: Likewise.
* gcc.c-torture/compile/pr47428.c: Likewise.
* gcc.c-torture/compile/pr47967.c: Likewise.
* gcc.c-torture/compile/pr49145.c: Likewise.
* gcc.c-torture/compile/pr51694.c: Likewise.
* gcc.c-torture/compile/pr53411.c: Likewise.
* gcc.c-torture/execute/20001101.c: Likewise.
* gcc.c-torture/execute/20051012-1.c: Likewise.
* gcc.c-torture/execute/920501-1.c: Likewise.
* gcc.c-torture/execute/921202-1.c: Likewise.
* gcc.c-torture/execute/921208-2.c: Likewise.
* gcc.c-torture/execute/call-trap-1.c: Likewise.
* gcc.c-torture/compile/20010525-1.c: Likewise.
* gcc.c-torture/compile/20021015-2.c: Likewise.
* gcc.c-torture/compile/20031023-1.c: Likewise.
* gcc.c-torture/compile/20031023-2.c: Likewise.
* gcc.c-torture/compile/pr49206.c: Likewise.
* gcc.c-torture/execute/pr47237.c: Likewise.
* gcc.dg/torture/stackalign/builtin-apply-1.c: Likewise.
* gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
* gcc.dg/torture/stackalign/builtin-apply-3.c: Likewise.
* gcc.dg/torture/stackalign/builtin-apply-4.c: Likewise.
* gcc.dg/torture/stackalign/builtin-return-1.c: Likewise.
* gcc.dg/builtin-apply1.c: Likewise.
* gcc.dg/builtin-apply2.c: Likewise.
* gcc.dg/builtin-apply3.c: Likewise.
* gcc.dg/builtin-apply4.c: Likewise.
* gcc.dg/pr38338.c: Likewise.
* gcc.dg/torture/pr41993.c: Likewise.
* gcc.c-torture/compile/386.c: Likewise.
* gcc.c-torture/compile/cmpsi386.c: Likewise.
* gcc.c-torture/compile/consec.c: Likewise.
* gcc.c-torture/compile/ex.c: Likewise.
* gcc.c-torture/compile/pass.c: Likewise.
* gcc.c-torture/compile/scal.c: Likewise.
* gcc.c-torture/compile/uuarg.c: Likewise.
* gcc.c-torture/compile/conv_tst.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217297 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoTestsuite alloca fixes for ptx.
bernds [Mon, 10 Nov 2014 16:30:09 +0000 (16:30 +0000)]
Testsuite alloca fixes for ptx.

* lib/target-supports.exp (check_effective_target_alloca): New function.
* gcc.c-torture/execute/20010209-1.c: Require alloca.
* gcc.c-torture/execute/20020314-1.c: Likewise.
* gcc.c-torture/execute/20020412-1.c: Likewise.
* gcc.c-torture/execute/20021113-1.c: Likewise.
* gcc.c-torture/execute/20040223-1.c: Likewise.
* gcc.c-torture/execute/20040308-1.c: Likewise.
* gcc.c-torture/execute/20040811-1.c: Likewise.
* gcc.c-torture/execute/20070824-1.c: Likewise.
* gcc.c-torture/execute/20070919-1.c: Likewise.
* gcc.c-torture/execute/built-in-setjmp.c: Likewise.
* gcc.c-torture/execute/pr22061-1.c: Likewise.
* gcc.c-torture/execute/pr22061-4.c: Likewise.
* gcc.c-torture/execute/pr43220.c: Likewise.
* gcc.c-torture/execute/vla-dealloc-1.c: Likewise.
* gcc.dg/torture/stackalign/alloca-1.c: Likewise.
* gcc.dg/torture/stackalign/vararg-1.c: Likewise.
* gcc.dg/torture/stackalign/vararg-2.c: Likewise.
* gcc.c-torture/compile/20000923-1.c: Likewise.
* gcc.c-torture/compile/20030224-1.c: Likewise.
* gcc.c-torture/compile/20071108-1.c: Likewise.
* gcc.c-torture/compile/20071117-1.c: Likewise.
* gcc.c-torture/compile/900313-1.c: Likewise.
* gcc.c-torture/compile/pr17397.c: Likewise.
* gcc.c-torture/compile/pr35006.c: Likewise.
* gcc.c-torture/compile/pr42956.c: Likewise.
* gcc.c-torture/compile/pr51354.c: Likewise.
* gcc.c-torture/compile/pr55851.c: Likewise.
* gcc.c-torture/compile/vla-const-1.c: Likewise.
* gcc.c-torture/compile/vla-const-2.c: Likewise.
* gcc.c-torture/compile/pr31507-1.c: Likewise.
* gcc.c-torture/compile/pr52714.c: Likewise.
* gcc.dg/20001012-2.c: Likewise.
* gcc.dg/auto-type-1.c: Likewise.
* gcc.dg/builtin-object-size-1.c: Likewise.
* gcc.dg/builtin-object-size-2.c: Likewise.
* gcc.dg/builtin-object-size-3.c: Likewise.
* gcc.dg/builtin-object-size-4.c: Likewise.
* gcc.dg/packed-vla.c: Likewise.
* gcc.c-torture/compile/parms.c: Likewise.
* gcc.c-torture/execute/920721-2.c: Skip -O0 unless alloca is available.
* gcc.c-torture/execute/920929-1.c: Likewise.
* gcc.c-torture/execute/921017-1.c: Likewise.
* gcc.c-torture/execute/941202-1.c: Likewise.
* gcc.c-torture/execute/align-nest.c: Likewise.
* gcc.c-torture/execute/alloca-1.c: Likewise.
* gcc.c-torture/execute/pr36321.c: Likewise.
* gcc.c-torture/compile/20001221-1.c: Likewise.
* gcc.c-torture/compile/20020807-1.c: Likewise.
* gcc.c-torture/compile/20050801-2.c: Likewise.
* gcc.c-torture/compile/920428-4.c: Likewise.
* gcc.c-torture/compile/debugvlafunction-1.c.c: Likewise.
* gcc.c-torture/compile/pr41469.c: Likewise.
* gcc.dg/torture/pr48953.c: Likewise.
* gcc.dg/torture/pr8081.c: Likewise.
* gcc.dg/torture/stackalign/inline-1.c: Skip if nvptx-*-*.
* gcc.dg/torture/stackalign/inline-2.c: Likewise.
* gcc.dg/torture/stackalign/nested-1.c: Likewise.
* gcc.dg/torture/stackalign/nested-2.c: Likewise.
* gcc.dg/torture/stackalign/nested-3.c: Likewise.
* gcc.dg/torture/stackalign/nested-4.c: Likewise.
* gcc.dg/torture/stackalign/nested-1.c: Likewise.
* gcc.dg/torture/stackalign/global-1.c: Likewise.
* gcc.dg/torture/stackalign/pr16660-1.c: Likewise.
* gcc.dg/torture/stackalign/pr16660-2.c: Likewise.
* gcc.dg/torture/stackalign/pr16660-3.c: Likewise.
* gcc.dg/torture/stackalign/ret-struct-1.c: Likewise.
* gcc.dg/torture/stackalign/struct-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217296 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd the nvptx port.
bernds [Mon, 10 Nov 2014 16:12:42 +0000 (16:12 +0000)]
Add the nvptx port.

* configure.ac: Handle nvptx-*-*.
* configure: Regenerate.

gcc/
* config/nvptx/nvptx.c: New file.
* config/nvptx/nvptx.h: New file.
* config/nvptx/nvptx-protos.h: New file.
* config/nvptx/nvptx.md: New file.
* config/nvptx/t-nvptx: New file.
* config/nvptx/nvptx.opt: New file.
* common/config/nvptx/nvptx-common.c: New file.
* config.gcc: Handle nvptx-*-*.

libgcc/
* config.host: Handle nvptx-*-*.
* shared-object.mk (as-flags-$o): Define.
($(base)$(objext), $(base)_s$(objext)): Use it instead of
-xassembler-with-cpp.
* static-object.mk: Identical changes.
* config/nvptx/t-nvptx: New file.
* config/nvptx/crt0.s: New file.
* config/nvptx/free.asm: New file.
* config/nvptx/malloc.asm: New file.
* config/nvptx/realloc.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217295 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoMake thread_prologue_and_epilogue_insns callable from backends.
bernds [Mon, 10 Nov 2014 16:12:30 +0000 (16:12 +0000)]
Make thread_prologue_and_epilogue_insns callable from backends.

* function.c (thread_prologue_and_epilogue_insns): No longer static.
* function.h (thread_prologue_and_epilogue_insns): Declare.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217294 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd a target hook for assembling undeclared decls.
bernds [Mon, 10 Nov 2014 16:12:21 +0000 (16:12 +0000)]
Add a target hook for assembling undeclared decls.

* target.def (assemble_undefined_decl): New hooks.
* hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
* hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
* doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
* doc/tm.texi: Regenerate.
* output.h (assemble_undefined_decl): Declare.
(get_fnname_from_decl): Declare.
* varasm.c (assemble_undefined_decl): New function.
(get_fnname_from_decl): New function.
* final.c (rest_of_handle_final): Use it.
* varpool.c (varpool_output_variables): Call assemble_undefined_decl
for nodes without a definition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217293 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibcpp:
emsr [Mon, 10 Nov 2014 15:53:12 +0000 (15:53 +0000)]
libcpp:

2014-11-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

* include/cpplib.h (cpp_callbacks): Add has_attribute.
* internal.h (lexer_state): Add in__has_attribute__.
* directives.c (lex_macro_node): Prevent use of __has_attribute__
as a macro.
* expr.c (parse_has_attribute): New function; (eval_token): Look for
__has_attribute__ and route to parse_has_attribute.
* identifiers.c (_cpp_init_hashtable): Initialize n__has_attribute__.
* pch.c (cpp_read_state): Initialize n__has_attribute__.
* traditional.c (enum ls): Add ls_has_attribute, ls_has_attribute_close;
(_cpp_scan_out_logical_line): Attend to __has_attribute__.

gcc/c-family:

2014-11-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

* c-cppbuiltin.c (__has_attribute, __has_cpp_attribute): New macros;
(__cpp_rtti, __cpp_exceptions): New macros for C++98;
(__cpp_range_based_for, __cpp_initializer_lists,
__cpp_delegating_constructors, __cpp_nsdmi,
__cpp_inheriting_constructors, __cpp_ref_qualifiers): New macros
for C++11; (__cpp_attribute_deprecated): Remove in favor of
__has_cpp_attribute.
* c-lex.c (cb_has_attribute): New callback CPP function;
(init_c_lex): Set has_attribute callback.

gcc/testsuite:

2014-11-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

* g++.dg/cpp1y/feat-cxx11.C: Test new feature macros for C++98
and C++11; Test existence of __has_cpp_attribute;  Test C++11
attributes.
* g++.dg/cpp1y/feat-cxx11-neg.C: Ditto.
* g++.dg/cpp1y/feat-cxx14.C: Ditto and test for C++14 attributes.
* g++.dg/cpp1y/feat-cxx98.C: Test new feature macros for C++98.
* g++.dg/cpp1y/feat-cxx98-neg.C: Ditto.
* g++.dg/cpp1y/feat-neg.C: Test that __cpp_rtti, _cpp_exceptions
will be undefined for -fno-rtti -fno-exceptions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217292 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Richard Biener <rguenther@suse.de>
rguenth [Mon, 10 Nov 2014 15:46:23 +0000 (15:46 +0000)]
2014-11-10  Richard Biener  <rguenther@suse.de>

* tree-ssa-operands.c (finalize_ssa_uses): Properly put
released operands on the free list.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217291 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Richard Biener <rguenther@suse.de>
rguenth [Mon, 10 Nov 2014 15:45:55 +0000 (15:45 +0000)]
2014-11-10  Richard Biener  <rguenther@suse.de>

* match.pd: Implement pattern from simplify_mult.
* tree-ssa-forwprop.c (simplify_mult): Remove.
(pass_forwprop::execute): Do not call simplify_mult.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217290 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Richard Biener <rguenther@suse.de>
rguenth [Mon, 10 Nov 2014 14:31:31 +0000 (14:31 +0000)]
2014-11-10  Richard Biener  <rguenther@suse.de>

PR tree-optimization/63800
* tree-ssa-pre.c (eliminate_push_avail): Push in a way so
we can restore the previous availability in after_dom_children.
(eliminate_dom_walker::after_dom_children): Restore
previous availability.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217288 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Richard Biener <rguenther@suse.de>
rguenth [Mon, 10 Nov 2014 14:06:56 +0000 (14:06 +0000)]
2014-11-10  Richard Biener  <rguenther@suse.de>

PR middle-end/63798
* expr.c (expand_expr_real_2): When expanding FMA_EXPRs
properly treat the embedded multiplication as commutative
when looking for feeding negates.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217287 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
amylaar [Mon, 10 Nov 2014 13:06:22 +0000 (13:06 +0000)]
* config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217286 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoICF is disabled for the test because of default char signedness on powerpc64 target.
marxin [Mon, 10 Nov 2014 12:21:50 +0000 (12:21 +0000)]
ICF is disabled for the test because of default char signedness on powerpc64 target.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217285 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Richard Biener <rguenther@suse.de>
rguenth [Mon, 10 Nov 2014 11:47:53 +0000 (11:47 +0000)]
2014-11-10  Richard Biener  <rguenther@suse.de>

* match.pd: Implement pattern from simplify_conversion_from_bitmask.
* tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
(pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217284 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * c-c++-common/ubsan/align-7.c: Skip for -flto -fno-fat-lto-objects.
mpolacek [Mon, 10 Nov 2014 10:07:34 +0000 (10:07 +0000)]
* c-c++-common/ubsan/align-7.c: Skip for -flto -fno-fat-lto-objects.
* c-c++-common/ubsan/align-8.c: Likewise.
* g++.dg/ubsan/null-4.C: Likewise.
* g++.dg/ubsan/null-5.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217282 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-10 Richard Biener <rguenther@suse.de>
rguenth [Mon, 10 Nov 2014 08:58:24 +0000 (08:58 +0000)]
2014-11-10  Richard Biener  <rguenther@suse.de>

* match.pd: Move rest of the conversion combining patterns
from tree-ssa-forwprop.c.
* tree-ssa-forwprop.c (combine_conversions): Remove.
(pass_forwprop::execute): Do not call it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217279 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gimple-low.c (lower_function_body): Clear the location of the first
ebotcazou [Mon, 10 Nov 2014 08:53:16 +0000 (08:53 +0000)]
* gimple-low.c (lower_function_body): Clear the location of the first
inserted representative return if it also fills in for the fallthru.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217278 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
ienkovich [Mon, 10 Nov 2014 07:46:45 +0000 (07:46 +0000)]
gcc/

* tree-if-conv.c (add_to_predicate_list): Check unconditionally
that bb is always executed to early exit. Use predicate of
cd-equivalent block for join blocks if it exists.
(if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
(tree_if_conversion): Free post-dominance information.

gcc/testsuite/

* gcc.dg/tree-ssa/ifc-cd.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217277 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago DR 799
jason [Mon, 10 Nov 2014 05:00:05 +0000 (05:00 +0000)]
DR 799
* typeck.c (build_reinterpret_cast_1): reinterpret_cast to the
same scalar type is an rvalue.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217276 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago DR 2007
jason [Mon, 10 Nov 2014 05:00:00 +0000 (05:00 +0000)]
DR 2007
* call.c (build_new_op_1): Don't do non-class lookup for =, -> or [].

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217275 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
jason [Mon, 10 Nov 2014 04:59:54 +0000 (04:59 +0000)]
* config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
* config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
(_mm_mask_cvtusepi32_storeu_epi16)
(_mm_mask_cvtsepi64_storeu_epi32): Return void.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217274 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoPR 47007 and 61847 Locale failures in libgfortran.
jb [Mon, 10 Nov 2014 00:17:16 +0000 (00:17 +0000)]
PR 47007 and 61847 Locale failures in libgfortran.

2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

PR libfortran/47007
PR libfortran/61847
* config.h.in: Regenerated.
* configure: Regenerated.
* configure.ac (AC_CHECK_HEADERS_ONCE): Check for xlocale.h.
(AC_CHECK_FUNCS_ONCE): Check for newlocale, freelocale, uselocale,
strerror_l.
* io/io.h (locale.h): Include.
(xlocale.h): Include if present.
(c_locale): New variable.
(old_locale): New variable.
(old_locale_ctr): New variable.
(old_locale_lock): New variable.
(st_parameter_dt): Add old_locale member.
* io/transfer.c (data_transfer_init): Set locale to "C" if doing
formatted transfer.
(finalize_transfer): Reset locale to previous.
* io/unit.c (c_locale): New variable.
(old_locale): New variable.
(old_locale_ctr): New variable.
(old_locale_lock): New variable.
(init_units): Init c_locale, init old_locale_lock.
(close_units): Free c_locale.
* runtime/error.c (locale.h): Include.
(xlocale.h): Include if present.
(gf_strerror): Use strerror_l if available. Reset locale to
LC_GLOBAL_LOCALE for strerror_r branch.

2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

PR libfortran/47007
PR libfortran/61847
* gfortran.texi: Add note about locale issues to thread-safety
section.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217273 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Mon, 10 Nov 2014 00:16:28 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217272 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoCorrect ChangeLog
hjl [Sun, 9 Nov 2014 17:56:51 +0000 (17:56 +0000)]
Correct ChangeLog

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217268 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix buffer overflow in avx256-unaligned-{load|store}-7.c
hjl [Sun, 9 Nov 2014 17:54:54 +0000 (17:54 +0000)]
Fix buffer overflow in avx256-unaligned-{load|store}-7.c

* testsuite/63305
* gcc.target/i386/avx256-unaligned-load-7.c (avx_test): Fix
buffer overflow.
* gcc.target/i386/avx256-unaligned-store-7.c (avx_test): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217267 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/avr/predicates.md (low_io_address_operand): Fix typo.
amylaar [Sun, 9 Nov 2014 17:06:50 +0000 (17:06 +0000)]
    * config/avr/predicates.md (low_io_address_operand): Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217266 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-09 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Sun, 9 Nov 2014 16:45:15 +0000 (16:45 +0000)]
2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/63620
* lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
name.  Move to lra.c.  Make it external.
(substitute_pseudo_within_insn): Ditto.
(inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
the new names.
(undo_optional_reloads): Ditto.
* lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
New prototypes.
(lra_substitute_pseudo_within_insn): Ditto.
* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
(mark_regno_live): Add parameter.  Update bb_gen_pseudos.
(mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
bb_killed_pseudos.
(struct bb_data, bb_data_t, bb_data): New.
(get_bb_data, get_bb_data_by_index): Ditto.
(all_hard_regs_bitmap): New.
(live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
(initiate_live_solver, finish_live_solver): New.
(process_bb_lives): Change return type.  Add code updating local
live data and removing dead insns.  Pass new argument to
mark_regno_live and mark_regno_dead.  Check changing bb pseudo
life info.  Return the result.
(lra_create_live_ranges): Add code to do global pseudo live
analysis.
(lra_live_ranges_init): Call initiate_live_solver.
(lra_live_ranges_finish): Call finish_live_solver.
* lra.c (lra_dump_bitmap_with_title): New.
(lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
from lra-constraints.c.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217265 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago* gcc.target/powerpc/pr51623.c: Fix implicit declarations.
schwab [Sun, 9 Nov 2014 12:46:27 +0000 (12:46 +0000)]
* gcc.target/powerpc/pr51623.c: Fix implicit declarations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217264 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-09 Richard Biener <rguenther@suse.de>
rguenth [Sun, 9 Nov 2014 11:27:00 +0000 (11:27 +0000)]
2014-11-09  Richard Biener  <rguenther@suse.de>

* match.pd: Add patterns convering two conversions in a row
from fold-const.c.
* fold-const.c (fold_unary_loc): Remove them here.
* tree-ssa-forwprop.c (combine_conversions): Likewise.
* genmatch.c (dt_node::gen_kids): Check whether we may
follow SSA use-def chains.

* g++.dg/cpp0x/constexpr-reinterpret1.C: XFAIL.
* gcc.dg/tree-ssa/pr21031.c: XFAIL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217260 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Sun, 9 Nov 2014 00:16:26 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217259 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sat, 8 Nov 2014 11:25:32 +0000 (11:25 +0000)]
gcc/
* config/aarch64/aarch64.c: Include rtl-iter.h.
(aarch64_tls_operand_p_1): Delete.
(aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217256 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sat, 8 Nov 2014 11:25:24 +0000 (11:25 +0000)]
gcc/
* config/arm/arm.c (arm_note_pic_base): Delete.
(arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217255 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sat, 8 Nov 2014 11:25:17 +0000 (11:25 +0000)]
gcc/
* config/arm/arm.c: Include rtl-iter.h.
(arm_tls_referenced_p_1): Delete.
(arm_tls_referenced_p): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217254 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sat, 8 Nov 2014 11:25:10 +0000 (11:25 +0000)]
gcc/
* config/arm/aarch-common.c: Include rtl-iter.h.
(search_term, arm_find_sub_rtx_with_search_term): Delete.
(arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
(arm_get_set_operands): Pass the insn pattern rather than the
insn itself.
(arm_no_early_store_addr_dep): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217253 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/arm/arm.c (arm_set_return_address): Mark the store as frame
ebotcazou [Sat, 8 Nov 2014 09:17:23 +0000 (09:17 +0000)]
* config/arm/arm.c (arm_set_return_address): Mark the store as frame
related, if any.
(thumb_set_return_address): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217251 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago DR 1558
jason [Sat, 8 Nov 2014 06:06:42 +0000 (06:06 +0000)]
DR 1558
* pt.c (dependent_alias_template_spec_p): New.
(dependent_type_p_r): Handle dependent alias template specialization.
(template_args_equal): A dependent alias template specializations
is not equal to its underlying type as a template argument.
* tree.c (strip_typedefs): Don't strip a dependent alias
template-id.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217250 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Sat, 8 Nov 2014 00:16:20 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217245 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Andrew Pinski <apinski@cavium.com>
pinskia [Fri, 7 Nov 2014 23:08:43 +0000 (23:08 +0000)]
2014-11-07  Andrew Pinski  <apinski@cavium.com>

* gcc.c-torture/execute/20141107-1.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217242 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * parser.c (cp_parser_unqualified_id): Handle __func__ here.
jason [Fri, 7 Nov 2014 23:01:09 +0000 (23:01 +0000)]
* parser.c (cp_parser_unqualified_id): Handle __func__ here.
(cp_parser_primary_expression): Not here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217241 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix typo and line wrap in ChangeLog
law [Fri, 7 Nov 2014 22:59:40 +0000 (22:59 +0000)]
Fix typo and line wrap in ChangeLog

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217240 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR tree-optimization/61515
law [Fri, 7 Nov 2014 22:55:00 +0000 (22:55 +0000)]
PR tree-optimization/61515
* tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding stack
rather than looking at ever SSA_NAME's value.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217239 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Richard Biener <rguenther@suse.de>
rguenth [Fri, 7 Nov 2014 20:57:01 +0000 (20:57 +0000)]
2014-11-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/63605
* fold-const.c (fold_binary_loc): Properly use element_precision
for types that may not be scalar.

* gcc.dg/vect/pr63605.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217238 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoPR target/63534
kyukhin [Fri, 7 Nov 2014 20:42:36 +0000 (20:42 +0000)]
PR target/63534

gcc/
        * config/i386/i386.md (builtin_setjmp_receiver): Use
        pic_offset_table_rtx for PIC register.
        (nonlocal_goto_receiver): Delete.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217237 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * g++.dg/pr61289-2.C: Renamed from pr61289-2.c.
law [Fri, 7 Nov 2014 17:02:55 +0000 (17:02 +0000)]
    * g++.dg/pr61289-2.C: Renamed from pr61289-2.c.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217234 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
danielh [Fri, 7 Nov 2014 16:35:01 +0000 (16:35 +0000)]
2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>

* config.gcc (sparc-*-rtems*): Clean away unused t-elf.
* config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217231 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[PATCH] gnu11 cleanup for gcc.target/arm/lp1243022.c
jiwang [Fri, 7 Nov 2014 16:28:37 +0000 (16:28 +0000)]
[PATCH] gnu11 cleanup for gcc.target/arm/lp1243022.c

  gcc/testsuite/
    * gcc.target/arm/lp1243022.c (xhci_test_trb_in_td): Add return type.
    (xhci_check_trb_in_td_math): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217230 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/63366
jason [Fri, 7 Nov 2014 16:21:15 +0000 (16:21 +0000)]
PR c++/63366
* decl.c (grokdeclarator): Fix __complex meaning __complex double.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217229 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[PATCH] Add AArch64 to the target list for 20040204-1.c
jiwang [Fri, 7 Nov 2014 16:21:00 +0000 (16:21 +0000)]
[PATCH] Add AArch64 to the target list for 20040204-1.c

gcc/testsuite/
  * gcc.dg/tree-ssa/20040204-1.c: Add aarch64*-*-* to the list.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217228 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Arnaud Charlet <charlet@adacore.com>
charlet [Fri, 7 Nov 2014 13:59:41 +0000 (13:59 +0000)]
2014-11-07  Arnaud Charlet  <charlet@adacore.com>

* debug.adb, snames.adb-tmpl (Is_Keyword_Name): Consider 'overriding'
a keyword in Ada 95 mode when -gnatd.D is used.
* gnat_ugn.texi: Document -gnatd.D.

2014-11-07  Vasiliy Fofanov  <fofanov@adacore.com>

* gnatls.adb: Lower severity of the program's return value in
some common cases.

2014-11-07  Ed Schonberg  <schonberg@adacore.com>

* sem_ch10.adb (Decorate_Type): The limited view of a tagged
type has an empty list of primitive operations.

2014-11-07  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb (Analyze_Object_Declaration): Update references to SPARK
RM.
(Process_Full_View): Update references to SPARK RM.
* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references
to SPARK RM.
(Analyze_Subprogram_Body_Helper): Update references
to SPARK RM.
* sem_ch7.adb (Analyze_Package_Body_Helper): Update references
to SPARK RM.
* sem_prag.adb (Check_Ghost_Constituent): Update references to
SPARK RM.
* sem_res.adb (Check_Ghost_Policy): Update references to SPARK RM.
(Resolve_Actuals): Ensure that the actual parameter of a Ghost
subprogram whose formal is of mode IN OUT or OUT is Ghost.
* sem_util.adb (Check_Ghost_Completion): Update references to
SPARK RM.

2014-11-07  Ed Schonberg  <schonberg@adacore.com>

* exp_ch7.adb (Make_Final_Call): If type of designated object is
derived from that of the formal of the Deep_Finalize procedure,
add an unchecked conversion to prevent spurious type error.

2014-11-07  Robert Dewar  <dewar@adacore.com>

* table.adb, inline.adb, einfo.adb, gnat1drv.adb, exp_ch13.adb,
exp_fixd.adb, prj-conf.adb, exp_strm.adb, a-cofove.adb, exp_ch3.ads:
Minor reformatting.

2014-11-07  Robert Dewar  <dewar@adacore.com>

* sem_ch12.adb, sem_ch13.adb, prj-tree.adb: Minor reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217227 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Fri, 7 Nov 2014 13:54:09 +0000 (13:54 +0000)]
2014-11-07  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb (Set_Is_Checked_Ghost_Entity,
Set_Is_Ignored_Ghost_Entity): Add exceptions to the assertion
check.
* sem_ch6.adb (Check_Conformance): Consider only
source subprograms when checking for Ghost conformance.
* sem_prag.adb (Analyze_Pragma): Handle the case
where pragma Ghost applies to a stand alone subprogram body that
acts as a compilation unit.
* sem_res.adb: Minor reformatting (merge if statements).

2014-11-07  Ed Schonberg  <schonberg@adacore.com>

* exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
Check whether underlying type is constrained before generating
the object declaration for the result object of the function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217226 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Robert Dewar <dewar@adacore.com>
charlet [Fri, 7 Nov 2014 13:51:20 +0000 (13:51 +0000)]
2014-11-07  Robert Dewar  <dewar@adacore.com>

* freeze.adb: Code clean up.

2014-11-07  Yannick Moy  <moy@adacore.com>

* a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cfinve.ads,
* a-cforma.ads, a-cforse.ads, a-cofove.ads: Mark First_To_Previous,
Current_To_Last and Strict_Equal as Ghost.

2014-11-07  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb: Code clean up.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217225 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Fri, 7 Nov 2014 13:47:31 +0000 (13:47 +0000)]
2014-11-07  Hristian Kirtchev  <kirtchev@adacore.com>

* freeze.adb (Freeze_Entity): Issue an error regardless of the
SPARK_Mode when a ghost type is effectively volatile.
* sem_ch3.adb (Analyze_Object_Contract): Decouple the checks
related to Ghost from SPARK_Mode.
* sem_res.adb (Check_Ghost_Policy): Issue an error regardless
of the SPARK_Mode when the Ghost policies do not match.
* sem_util.adb (Check_Ghost_Completion): Issue an error regardless
of the SPARK_Mode when the Ghost policies do not match.

2014-11-07  Ed Schonberg  <schonberg@adacore.com>

* sem_ch5.adb (Analyze_Iterator_Specification): return if name
in iterator does not have any usable aspect for iteration.

2014-11-07  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Null_Procedure): Reject a null procedure
that there is a previous null procedure in scope with a matching
profile.

2014-11-07  Hristian Kirtchev  <kirtchev@adacore.com>

* atree.adb (Copy_Separate_Tree): Copy the aspect specifications.
* inline.adb (Has_Some_Contract): Do the check only when the
related entity has been analyzed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217224 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Ed Schonberg <schonberg@adacore.com>
charlet [Fri, 7 Nov 2014 13:45:22 +0000 (13:45 +0000)]
2014-11-07  Ed Schonberg  <schonberg@adacore.com>

* exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Integer):
If the restriction No_Floating_Point is in effect, and the
operands have the same type, introduce a temporary to hold
the fixed point result, to prevent the use of floating-point
operations at run-time.

2014-11-07  Robert Dewar  <dewar@adacore.com>

* freeze.adb (Check_Address_Clause): Minor reformatting
(Find_Constant): Minor reformatting.
(Freeze_Array_Type): Modify check for packed declarations.
(Freeze_Entity): Minor reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217223 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR ipa/63580
marxin [Fri, 7 Nov 2014 13:37:41 +0000 (13:37 +0000)]
PR ipa/63580
        * cgraphunit.c (cgraph_node::create_wrapper):
TREE_ADDRESSABLE is set to false for a newly created thunk.
* g++.dg/ipa/pr63580.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217222 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ja.po: Update.
jsm28 [Fri, 7 Nov 2014 12:45:36 +0000 (12:45 +0000)]
* ja.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217220 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR ipa/63747
marxin [Fri, 7 Nov 2014 12:35:43 +0000 (12:35 +0000)]
PR ipa/63747
* gcc.dg/ipa/pr63747.c: New test.
* ipa-icf-gimple.c (func_checker::compare_gimple_switch):
Missing checking for CASE_LOW and CASE_HIGH added.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217219 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR ipa/63595
marxin [Fri, 7 Nov 2014 12:32:30 +0000 (12:32 +0000)]
PR ipa/63595
* g++.dg/ipa/pr63595.C: New test.

* cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
is correctly handled for thunks created by IPA ICF.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217218 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[PATCH] PR63676, exit tree fold when node be TREE_CLOBBER_P
jiwang [Fri, 7 Nov 2014 11:08:30 +0000 (11:08 +0000)]
[PATCH] PR63676, exit tree fold when node be TREE_CLOBBER_P

  gcc/
    PR tree-optimization/63676
    * gimple-fold.c (fold_gimple_assign): Do not fold node when
    TREE_CLOBBER_P be true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217215 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Richard Biener <rguenther@suse.de>
rguenth [Fri, 7 Nov 2014 10:51:06 +0000 (10:51 +0000)]
2014-11-07  Richard Biener  <rguenther@suse.de>

PR middle-end/63770
* match.pd: Guard conflicting GENERIC pattern properly.

* gcc.dg/pr63770.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217214 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-07 Richard Biener <rguenther@suse.de>
rguenth [Fri, 7 Nov 2014 09:00:32 +0000 (09:00 +0000)]
2014-11-07  Richard Biener  <rguenther@suse.de>

* match.pd: Add patterns for POINTER_PLUS_EXPR association
and special patterns from tree-ssa-forwprop.c
* fold-const.c (fold_binary_loc): Remove them here.
* tree-ssa-forwprop.c (to_purge): New global bitmap.
(fwprop_set_lattice_val): New function.
(fwprop_invalidate_lattice): Likewise.
(remove_prop_source_from_use): Instead of purging dead EH
edges record blocks to do that in to_purge.
(tidy_after_forward_propagate_addr): Likewise.
(forward_propagate_addr_expr): Invalidate the lattice for
SSA names we release.
(simplify_conversion_from_bitmask): Likewise.
(simplify_builtin_call): Likewise.
(associate_pointerplus_align): Remove.
(associate_pointerplus_diff): Likewise.
(associate_pointerplus): Likewise.
(fold_all_stmts): Merge with ...
(pass_forwprop::execute): ... the original loop over all
basic-blocks.  Delay purging dead EH edges and invalidate
the lattice for SSA names we release.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217213 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agocontrib/
mzakirov [Fri, 7 Nov 2014 08:15:19 +0000 (08:15 +0000)]
contrib/

2014-11-07  Marat Zakirov  <m.zakirov@samsung.com>

* mklog: Always doubt in functions.
Add EOF protection.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217212 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/ChangeLog:
xguo [Fri, 7 Nov 2014 03:02:29 +0000 (03:02 +0000)]
gcc/ChangeLog:
2014-11-07  Terry Guo  <terry.guo@arm.com>

* config/arm/arm.opt (masm-syntax-unified): New option.
* doc/invoke.texi (-masm-syntax-unified): Document new option.
* config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
(ASM_APP_ON): Redefined.
* config/arm/arm.c (arm_option_override): Thumb2 inline assembly
code always use UAL syntax.
(arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
* config/arm/thumb1.md: Likewise.

gcc/testsuite/ChangeLog:
2014-11-07  Terry Guo  <terry.guo@arm.com>

* gcc.target/arm/anddi_notdi-1.c: Match with UAL format.
* gcc.target/arm/pr40956.c: Likewise.
* gcc.target/arm/thumb1-Os-mult.c: Likewise.
* gcc.target/arm/thumb1-load-64bit-constant-3.c: Likewise.
* gcc.target/arm/scd42-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217211 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
danglin [Fri, 7 Nov 2014 00:50:44 +0000 (00:50 +0000)]
* config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
or in_call_delay.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217208 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Fri, 7 Nov 2014 00:16:27 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217207 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-11-06 Steve Ellcey <sellcey@imgtec.com>
sje [Thu, 6 Nov 2014 22:29:39 +0000 (22:29 +0000)]
2014-11-06  Steve Ellcey  <sellcey@imgtec.com>

* config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
Set default_mips_arch and default_mips_abi instead of tm_defines.
(mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
of tm_defines.
(mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
* config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
based on MIPS_ABI_DEFAULT.
(STANDARD_STARTFILE_PREFIX_2): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217203 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoPreserve original spellings of extended identifiers.
jsm28 [Thu, 6 Nov 2014 21:08:52 +0000 (21:08 +0000)]
Preserve original spellings of extended identifiers.

This patch makes cpplib track the original spellings of extended
identifiers, as well as the canonical UTF-8 version, in order to
follow standard semantics properly without needing a convoluted and
undocumented canonicalization in translation phase 1 (see bug 9449
comments 39-46 regarding such a canonicalization).

The spelling is tracked in cpp_identifier and cpp_macro_arg without
making cpp_token any larger.  The original spelling is used for checks
of duplicate macro definitions, stringizing (see the C++ tests added;
this case is only an issue for C++ not C because C makes it
implementation-defined whether a \ is inserted before the \ of a UCN
in a string or character constant when stringizing, while C++ does
not), pasting (relevant when the result is then stringized for C++)
and when macro definitions are output as text (e.g. for -d options).

Once a macro has been defined, only the original spelling of the
argument names needs keeping in the argument list.  While it is being
defined, however, both spellings are needed: the original one for
subsequent saving for checks of duplicate macro definitions, and the
canonical one which is the node marked specially to generate macro
argument tokens rather than normal identifier tokens.  The buffer that
is used to save the original values of the identifier tokens is
changed so that it stores both those original values and a pointer to
the canonical hash nodes, so that those canonical nodes can be found
when their values need restoring after the macro definition has been
parsed.

I believe this covers the known standards issues in extended
identifiers support (the remaining unimplemented C99 areas in GCC all
being floating-point-related), except for C++ translation of extended
characters to UCNs in phase 1 (which I have no plans to work on).
There are however probably issues left with handling of extended
identifiers in other places, as listed in
<https://gcc.gnu.org/ml/gcc-patches/2014-11/msg00337.html> (those
issues are generally the sort of thing that could be addressed as bugs
outside development stage 1).  (The bulk of the potential issues Zack
was concerned about in 2003-5, that resulted in extended identifiers
being disabled in the absence of -fextended-identifiers, were
effectively eliminated by the audit and fixes I did in 2009, however;
that todo list reflects what was left over after that audit.)

Bootstrapped with no regressions on x86_64-unknown-linux-gnu.

libcpp:
* include/cpp-id-data.h (struct cpp_macro): Update comment
regarding parameters.
* include/cpplib.h (struct cpp_macro_arg, struct cpp_identifier):
Add spelling fields.
(struct cpp_token): Update comment on macro_arg.
* internal.h (_cpp_save_parameter): Add extra argument.
(_cpp_spell_ident_ucns): New declaration.
* lex.c (lex_identifier): Add SPELLING argument.  Set *SPELLING to
original spelling of identifier.
(_cpp_lex_direct): Update calls to lex_identifier.
(_cpp_spell_ident_ucns): New function, factored out of
cpp_spell_token.
(cpp_spell_token): Adjust FORSTRING argument semantics to return
original spelling of identifiers.  Use _cpp_spell_ident_ucns in
!FORSTRING case.
(_cpp_equiv_tokens): Check spellings of identifiers and macro
arguments are identical.
* macro.c (macro_arg_saved_data): New structure.
(paste_tokens): Use original spellings of identifiers from
cpp_spell_token.
(_cpp_save_parameter): Add argument SPELLING.  Save both canonical
node and its value.
(parse_params): Update calls to _cpp_save_parameter.
(lex_expansion_token): Save spelling of macro argument tokens.
(_cpp_create_definition): Extract canonical node from saved data.
(cpp_macro_definition): Use UCNs in spelling of macro name.  Use
original spellings of macro argument tokens and identifiers.
* traditional.c (scan_parameters): Update call to
_cpp_save_parameter.

gcc:
* doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
cases of extended identifiers.

gcc/testsuite:
* g++.dg/cpp/ucnid-2.C, g++.dg/cpp/ucnid-3.C,
gcc.dg/cpp/ucnid-11.c, gcc.dg/cpp/ucnid-12.c,
gcc.dg/cpp/ucnid-13.c, gcc.dg/cpp/ucnid-14.c,
gcc.dg/cpp/ucnid-15.c: New tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217202 138bc75d-0d04-0410-961f-82ee72b054a4