PR libstdc++/51365
	* include/bits/shared_ptr_base (_Sp_ebo_helper): Helper class to
	implement EBO safely.
	(_Sp_counted_base::_M_get_deleter): Add noexcept.
	(_Sp_counter_ptr): Use noexcept instead of comments.
	(_Sp_counted_deleter): Likewise. Use _Sp_ebo_helper.
	(_Sp_counted_ptr_inplace): Likewise.
	* testsuite/20_util/shared_ptr/cons/51365.cc: New.
	* testsuite/20_util/shared_ptr/cons/52924.cc: Add rebind member to
	custom allocator and test construction with custom allocator.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
	line number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198367 138bc75d-0d04-0410-961f-82ee72b054a4
	* include/bits/hashtable_policy.h (_Hashtable_ebo_helper): Fix
	comment.
	* include/std/mutex (__recursive_mutex_base): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198368 138bc75d-0d04-0410-961f-82ee72b054a4
2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/57071
	* frontend-passes (optimize_power):  New function.
	(optimize_op):  Use it.

2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/57071
	* gfortran.dg/power_3.f90:  New test.
	* gfortran.dg/power_4.f90:  New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198369 138bc75d-0d04-0410-961f-82ee72b054a4
	* sv.po: Update.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198371 138bc75d-0d04-0410-961f-82ee72b054a4
	* stor-layout.c (finalize_size_functions): Allocate a structure and
	reset cfun before dumping the functions.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198376 138bc75d-0d04-0410-961f-82ee72b054a4
Fix sign error in SYSTEM_CLOCK kind=4 Windows version.

2013-04-28  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/system_clock.c (system_clock_4): Fix sign error in
	Windows version.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198378 138bc75d-0d04-0410-961f-82ee72b054a4
2013-04-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57093
        * trans-types.c (gfc_get_element_type): Fix handling
        of scalar coarrays of type character.
        * intrinsic.texi (PACK): Add missing ")".

2013-04-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57093
        * gfortran.dg/coarray_30.f90: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198379 138bc75d-0d04-0410-961f-82ee72b054a4
	N3472 binary constants
	* include/cpplib.h (struct cpp_options): Fix a typo in user_literals
	field comment.  Add binary_constants field.
	* init.c (struct lang_flags): Add binary_constants field.
	(lang_defaults): Add bin_cst column to the table.
	(cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
	* expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
	in diagnostics.  Accept binary constants if
	CPP_OPTION (pfile, binary_constants) even when pedantic.  Adjust
	pedwarn message.

	* g++.dg/cpp/limits.C: Adjust warning wording.
	* g++.dg/system-binary-constants-1.C: Likewise.
	* g++.dg/cpp1y/system-binary-constants-1.C: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198380 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2013-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56450
	* semantics.c (finish_decltype_type): Handle COMPOUND_EXPR.

/testsuite
2013-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/56450
	* g++.dg/cpp0x/decltype52.C: New.


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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198384 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/predicates.md (general_vector_operand): New predicate.
	* config/i386/i386.c (const_vector_equal_evenodd_p): New function.
	(ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
	if they aren't nonimmediate operands.  If their original values
	satisfy const_vector_equal_evenodd_p, don't shift them.
	* config/i386/sse.md (mul<mode>3): Use general_vector_operand
	predicates.  For the SSE4.1 case force operands[{1,2}] into registers
	if not nonimmediate_operand.
	(vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
	instead of register_operand.
	(vec_widen_
mult_odd_<mode>): Use general_vector_operand predicates.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198387 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/57083
	* tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
	non-singleton shift count range, zero extend low_bound for uns case.

	* gcc.dg/torture/pr57083.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198388 138bc75d-0d04-0410-961f-82ee72b054a4
PR 56981 Improve unbuffered performance on special files.

2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>

        PR fortran/56981
        * io/transfer.c (next_record_w_unf): First fix head marker, then
        write tail.
        (next_record): Call flush_if_unbuffered.
        * io/unix.c (struct unix_stream): Add field unbuffered.
        (flush_if_unbuffered): New function.
        (fd_to_stream): New argument.
        (open_external): Fix fd_to_stream call.
        (input_stream): Likewise.
        (output_stream): Likewise.
        (error_stream): Likewise.
        * io/unix.h (flush_if_unbuffered): New prototype.


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

2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/system_clock (gf_gettime_mono): Use variable
        resolution for fractional seconds argument.
        (system_clock_4): Simplify, update for gf_gettime_mono change.
        (system_clock_8): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198391 138bc75d-0d04-0410-961f-82ee72b054a4
2013-04-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57081
	* loop-init.c: Include tree-flow.h.
	(loop_optimizer_finalize): Free number of iteration estimates.
	* Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.

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


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198392 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Map frint intrinsics to standard pattern names directly.

gcc/
	* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): Fold to standard pattern names.
	* config/aarch64/aarch64-simd-builtins.def (frintn): New.
	(frintz): Rename to...
	(btrunc): ...this.
	(frintp): Rename to...
	(ceil): ...this.
	(frintm): Rename to...
	(floor): ...this.
	(frinti): Rename to...
	(nearbyint): ...this.
	(frintx): Rename to...
	(rint): ...this.
	(frinta): Rename to...
	(round): ...this.
	* config/aarch64/aarch64-simd.md
	(aarch64_frint<frint_suffix><mode>): Delete.
	(<frint_pattern><mode>2): Convert to insn.
	* config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
	* config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
	(frint_pattern): Likewise.
	(frint_suffix): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198394 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Convert NEON frint implementations to use builtins.

gcc/
	* config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
	(vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
	(vrnd<a,m,n,p>_f32): Implement using builtins.
	(vrnd<i,x><q>_f<32, 64>): New.

gcc/testsuite/
	* gcc.target/aarch64/vect-vrnd.c: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198396 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Fix order of modes to lroundmn2 standard names.

gcc/
	* config/aarch64/aarch64-simd.md
	(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
	(l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198397 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Map fcvt intrinsics to builtin name directly.

gcc/
	* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): Use new names for
	fcvt builtins.
	* config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
	(lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
	(fcvtzu): Split as...
	(lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
	(fcvtas): Split as...
	(lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
	(fcvtau): Split as...
	(lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
	(fcvtps): Split as...
	(lceilv2sf, lceilv4sf, lceilv2df): ...This.
	(fcvtpu): Split as...
	(lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
	(fcvtms): Split as...
	(lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
	(fcvtmu): Split as...
	(lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
	(lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
	(lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
	(lfrintnusf, lfrintnudf): Likewise.
	* config/aarch64/aarch64-simd.md
	(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
	define_insn.
	(aarch64_fcvt<frint_suffix><su><mode>): Remove.
	* config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
	(fcvt_pattern): Likewise.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198398 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add vector int to float conversions.

gcc/
	* config/aarch64/aarch64-builtins.c
	(aarch64_fold_builtin): Fold float conversions.
	* config/aarch64/aarch64-simd-builtins.def
	(floatv2si, floatv4si, floatv2di): New.
	(floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
	* config/aarch64/aarch64-simd.md
	(<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
	* config/aarch64/iterators.md (FLOATUORS): New.
	(optab): Add float, floatuns.
	(su_optab): Likewise.



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