Commit Graph

140823 Commits

Author SHA1 Message Date
Jonathan Wakely
429ee11aa3 Fix semantics of Filesystem TS directory iterators
[class.directory_iterator] p4 and [directory_iterator.members] p4
require that only the default constructor and ignored permission denied
errors can create the end iterator.

	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Remove _GLIBCXX_
	prefix from HAVE_STRUCT_DIRENT_D_TYPE.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/experimental/fs_dir.h (operator==, operator==):
	Use owner_before instead of pointer equality.
	(directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
	* src/filesystem/dir.cc (ErrorCode): Remove.
	(_Dir::advance): Change ErrorCode parameter to error_code*, add
	directory_options parameter and check it on error.
	(opendir): Rename to open_dir to avoid clashing with macro. Change
	ErrorCode parameter to error_code*.
	(make_shared_dir): Remove.
	(native_readdir) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Don't set errno.
	(directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
	(directory_iterator(const path&, directory_options, error_code*)):
	Pass options to _Dir::advance and create non-end iterator on error.
	(recursive_directory_iterator(const path&, directory_options,
	error_code*)): Clear error_code on ignored error, create non-end
	iterator otherwise.
	(recursive_directory_iterator::increment): Pass _M_options to
	_Dir::advance.
	(recursive_directory_iterator::pop): Likewise.
	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
	New.
	* testsuite/experimental/filesystem/iterators/
	recursive_directory_iterator.cc: New.

From-SVN: r228042
2015-09-23 12:26:45 +01:00
Jonathan Wakely
366703118c Fix filesystem::create_directories() function
* src/filesystem/ops.cc (is_dot, is_dotdot): Define new helpers.
	(create_directories): Fix error handling.
	* testsuite/experimental/filesystem/operations/create_directories.cc:
	New.

From-SVN: r228041
2015-09-23 12:25:59 +01:00
Richard Biener
be6e26f995 tree-ssa-structalias.c (intra_create_variable_infos): Build representatives for all restrict qualified pointer destinations.
2015-09-23  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (intra_create_variable_infos): Build
	representatives for all restrict qualified pointer destinations.

	* g++.dg/tree-ssa/restrict2.C: Un-XFAIL testcase.

From-SVN: r228040
2015-09-23 11:11:48 +00:00
Kirill Yukhin
40f1d2ab26 AVX-512. Add kshift[lr][bwdq]. Fix iterator.
gcc/
	* config/i386/i386.md (define_code_attr mshift): New.
	(define_mode_iterator SWI1248_AVX512BW): Rename ...
	(SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
	only.
	(define_insn "*k<logic><mode>"): Use new iterator name.
	(define_insn "*<mshift><mode>3"): New.

From-SVN: r228034
2015-09-23 07:08:56 +00:00
Mikhail Maltsev
0c6126b47d Fix use of valgrind API
gcc/
	PR middle-end/67649
	* memory-block.h (memory_block_pool::allocate): Use valgrind API to
	mark the block as accessible.

From-SVN: r228033
2015-09-23 02:31:14 +00:00
GCC Administrator
dbfc22a470 Daily bump.
From-SVN: r228031
2015-09-23 00:16:13 +00:00
Patrick Palka
d53980585b Fix -Wmisleading-indentation false-positive
gcc/c-family/ChangeLog:

	* c-indentation.c (should_warn_for_misleading_indentation):
	Float out and consolidate the calls to get_visual_column that
	are passed guard_exploc as an argument.  Compare
	next_stmt_vis_column with guard_line_first_nws instead of with
	body_line_first_nws.

gcc/testsuite/ChangeLog:

	* c-c++-common/Wmisleading-indentation.c: Augment test.

From-SVN: r228027
2015-09-22 23:06:31 +00:00
Segher Boessenkool
6c98d4995c shrink-wrap: Handle multiple predecessors of prologue
The caller of try_shrink_wrapping wants to be returned a single edge to
put the prologue on.  To make that work even if there are multiple edges
(all pointing to the PRO block) that need the prologue, add a new block
that becomes the destination of all such edges, and then jumps to PRO.

In the general case, some edges to PRO will need to be redirected, and
not all edges *can* be redirected.  This adds a can_get_prologue function
that detects such cases.  This then happily can also handle the "prologue
clobbers some reg that is live on the edge we want to insert it on" case.

Not all EDGE_CROSSING edges can be redirected, so handle those the same
as EDGE_COMPLEX edges.


2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* function.c (thread_prologue_and_epilogue_insns): Delete
	orig_entry_edge argument to try_shrink_wrapping.
	* shrink-wrap.c (can_get_prologue): New function.
	(can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
	(try_shrink_wrapping): Delete orig_entry_edge argument.  Use
	can_get_prologue where needed.  Remove code that finds a single
	edge for the prologue.  Remove code that tests if any reg clobbered
	by the prologue is live on the prologue edge.  Remove code that finds
	the new prologue edge after duplicating blocks.  Make a new prologue
	block and edge.
	* shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.

From-SVN: r228022
2015-09-22 22:50:38 +02:00
Jeff Law
50fa47d916 [PATCH] Remove undefined behaviour from hppa backend
* config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT: Avoid undefined
	behavior.

From-SVN: r228021
2015-09-22 12:39:10 -06:00
Nathan Sidwell
6b333269be c.opt (Wmultiple-inheritance, [...]): New C++ warnings.
c-family/
	* c.opt (Wmultiple-inheritance, Wvirtual-inheritance, Wtemplates,
	Wnamespaces): New C++ warnings.

	cp/
	* decl.c (xref_basetypes): Check virtual and/or multiple
	inheritance warning.
	* parser.c (cp_parser_namespace_definition): Check namespaces
	warning.
	* pt.c (push_template_decl_real): Check templates warning.

	* doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
	-Wtemplates, -Wnamespaces): Document.

	testsuite/
	* g++.dg/diagostic/disable.C: New.

From-SVN: r228019
2015-09-22 15:34:49 +00:00
Jason Merrill
a75f15742a Disconnect -Wabi=<n> from -fabi-compat-version=<n>.
gcc/c-family/
	* c-common.h (abi_compat_version_crosses): New.
	(warn_abi_version): Declare.
	* c-common.c: Define it.
	* c-opts.c (c_common_post_options): Handle it.
	flag_abi_compat_version defaults to 8.
gcc/cp/
	* mangle.c (abi_warn_or_compat_version_crosses): New.
	Use it instead of abi_version_crosses.
	(mangle_decl): Deal with -fabi-compat-version and -Wabi separately.

From-SVN: r228017
2015-09-22 11:18:26 -04:00
Tom de Vries
8013b816cc Handle restrict pointer references as restrict in AA
2015-09-22  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67671
	* tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
	pointer references as restrict.

	* g++.dg/pr67671.C: New test.

From-SVN: r228015
2015-09-22 14:14:56 +00:00
Jason Merrill
0854c7f115 Update Andrew Cagney's address.
From-SVN: r228014
2015-09-22 09:31:20 -04:00
Chung-Lin Tang
b062ae0549 nios2.c (nios2_legitimize_address): When handling 'reg + reloc' cases...
2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.c (nios2_legitimize_address): When handling
	'reg + reloc' cases, allow first operand to be non-REG, and use
	force_reg() to enforce address pattern.

From-SVN: r228012
2015-09-22 12:19:27 +00:00
Alexander Fomin
01c102a6de re PR target/67480 (AVX512 bitwise logic operations pattern is incorrect)
PR target/67480

gcc/
	* config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
	(define_mode_iterator VI12_AVX_AVX512F): New.
	(define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
	all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
	(define_insn "*<code><mode>3"): ... Into new pattern using
	VI12_AVX_AVX512F iterators without masking.

gcc/testsuite/
	* gcc.target/i386/pr67480.c: New test.

From-SVN: r228010
2015-09-22 11:14:25 +00:00
Kirill Yukhin
06caf59d7f AVX-512. Introduce SKylake server CPU.
gcc/
	* config.gcc: Support "skylake-avx512".
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle
        PROCESSOR_SKYLAKE_AVX512.
        * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
        (processor_target_table): Add "skylake-avx512".
        (PTA_SKYLAKE_AVX512): Define.
	(ix86_option_override_internal): Add "skylake_avx512".
        (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
	F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
        * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
        (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
	* doc/invoke.texi (skylake-avx512): New.

libgcc/
	* libgcc/config/i386/cpuinfo.c (enum processor_features): Add
	FEATURE_AVX512VL, FEATURE_AVX512BW, FEATURE_AVX512DQ,
	FEATURE_AVX512CD, FEATURE_AVX512ER, FEATURE_AVX512PF.
	(get_available_features): Habdle new features.

gcc/testsuite/
        * gcc.target/i386/funcspec-5.c: Test avx512vl, avx512bw,
	avx512dq, avx512cd, avx512er, avx512pf and skylake-avx512.
	* gcc.target/i386/builtin_target.c: Test  avx512vl, avx512bw,
	avx512dq, avx512cd, avx512er and avx512pf.

From-SVN: r228009
2015-09-22 11:10:21 +00:00
Kirill Yukhin
7095d6f2eb AVX-512. Fix patterns for kunpck insns.
gcc/
	* gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
	operand in pattern.
	(define_insn "kunpcksi"): Ditto. 
	(define_insn "kunpckdi"): Ditto.

From-SVN: r228005
2015-09-22 09:47:39 +00:00
Kirill Yukhin
5febdf54ab AVX-512. Fix kxnor insn split.
gcc/
	* gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
	iterator instead of fixed modes.

From-SVN: r228003
2015-09-22 09:42:26 +00:00
Matthew Wahab
68729b062d [AArch64] Use atomic load-operate instructions for update-fetch patterns.
2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
	Adjust declaration.
	* config/aarch64/aarch64.c (aarch64_emit_bic): New.
	(aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
	out_result.  Update to support update-fetch operations.
	* config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
	Adjust for change to aarch64_gen_atomic_ldop.
	(aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
	(aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
	(atomic_<atomic_optab>_fetch<mode>): Change to an expander.
	(aarch64_atomic_<atomic_optab>_fetch<mode>): New.
	(aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.

gcc/testsuite
2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* gcc.target/aarch64/atomic-inst-ldadd.c: Add tests for
	update-fetch operations.
	* gcc.target/aarch64/atomic-inst-ldlogic.c: Likewise.

From-SVN: r228002
2015-09-22 09:41:15 +00:00
Matthew Wahab
641c2f8b69 [AArch64] Use atomic load-operate instructions for fetch-update patterns.
gcc/
2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_atomic_ldop_supported_p): Declare.
	* config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
	(enum aarch64_atomic_load_op_code): New.
	(aarch64_emit_atomic_load_op): New.
	(aarch64_gen_atomic_ldop): Update to support load-operate
	patterns.
	* config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
	to an expander.
	(aarch64_atomic_<atomic_optab><mode>): New.
	(aarch64_atomic_<atomic_optab><mode>_lse): New.
	(atomic_fetch_<atomic_optab><mode>): Change to an expander.
	(aarch64_atomic_fetch_<atomic_optab><mode>): New.
	(aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.

gcc/testsuite/
2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* gcc.target/aarch64/atomic-inst-ldadd.c: New.
	* gcc.target/aarch64/atomic-inst-ldlogic.c: New.

From-SVN: r228001
2015-09-22 09:35:17 +00:00
Matthew Wahab
6380d2bc38 [AArch64] Add atomic load-operate instructions.
2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
	(UNSPECV_ATOMIC_LDOP_OR): New.
	(UNSPECV_ATOMIC_LDOP_BIC): New.
	(UNSPECV_ATOMIC_LDOP_XOR): New.
	(UNSPECV_ATOMIC_LDOP_PLUS): New.
	(ATOMIC_LDOP): New.
	(atomic_ldop): New.
	(aarch64_atomic_load<atomic_ldop><mode>): New.

From-SVN: r228000
2015-09-22 09:30:51 +00:00
Matthew Wahab
cc05c2c3e0 [AArch64] Make BIC, other logical instructions, available.
2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64.md
	(<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
	pattern.

From-SVN: r227999
2015-09-22 09:24:47 +00:00
Matthew Wahab
9cd7b72071 [AArch64] Use atomic instructions for swap and fetch-update operations.
gcc/
2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
	Declare.
	* config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
	(aarch64_gen_atomic_ldop): New.
	(aarch64_split_atomic_op): Fix whitespace and add a comment.
	* config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
	(aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
	(atomic_exchange<mode>): Replace with an expander.
	(aarch64_atomic_exchange<mode>): New.
	(aarch64_atomic_exchange<mode>_lse): New.
	(aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
	(aarch64_atomic_swp<mode>): New.

gcc/testsuite/
2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>

	* gcc.target/aarch64/atomic-inst-ops.inc: (TEST_MODEL): New.
	(TEST_ONE): New.
        * gcc.target/aarch64/atomic-inst-swap.c: New.

From-SVN: r227998
2015-09-22 09:19:55 +00:00
Manuel López-Ibáñez
9915b1c916 [PATCH tree-inline] Do not say "called from here" with UNKNOWN_LOCATION
In https://sourceware.org/ml/libc-alpha/2014-12/msg00300.html, we give a
"called from here" note without actually having a location, which looks
strange. I haven't been able to generate such a testcase. If this happens,
try to at least point to the current function being called. If that location is
also unknown, skip the extra note.

gcc/ChangeLog:

2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree-inline.c (expand_call_inline): Use inform for extra note.
	Do not give a note with UNKNOWN_LOCATION.
	Replace input_location with gimple_location (stmt).
	Use true/false instead of TRUE/FALSE.

gcc/testsuite/ChangeLog:

2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* gcc.target/i386/inline_error.c (int bar): Use dg-message for note.
	* gcc.target/i386/pr57756.c (static __inline int caller): Likewise.
	* gcc.target/i386/pr59789.c (f1): Likewise.
	* gcc.target/i386/intrinsics_5.c (__m128i foo): Likewise.
	* gcc.target/i386/intrinsics_6.c: Likewise.
	* gcc.dg/winline-5.c (int t): Likewise.
	* gcc.dg/winline-9.c (t): Likewise.
	* gcc.dg/always_inline2.c (q): Likewise.
	* gcc.dg/winline-2.c (inline int t): Likewise.
	* gcc.dg/winline-6.c: Likewise.
	* gcc.dg/winline-10.c (void g): Likewise.
	* gcc.dg/pr49243.c (void parse): Likewise.
	* gcc.dg/always_inline3.c (q2): Likewise.
	* gcc.dg/winline-3.c: Likewise.
	* gcc.dg/winline-7.c (inline void *t): Likewise.

From-SVN: r227997
2015-09-22 09:14:04 +00:00
Tom de Vries
50b4b446bb Handle single restrict pointer in struct in create_variable_info_for_1
2015-09-22  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/67666
	* tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
	with single field non-conservative.

	* g++.dg/pr67666.C: New test.

From-SVN: r227996
2015-09-22 08:15:32 +00:00
Chung-Lin Tang
6bb4c3e2d8 re PR libgomp/67141 (wrong libgomp mutex initialisation order)
2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>

	PR libgomp/67141
	* oacc-int.h (goacc_host_init): Add declaration.
	* oacc-host.c (goacc_host_init): Remove static and constructor attribute.
	* oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.

From-SVN: r227994
2015-09-22 06:45:22 +00:00
David S. Miller
dc2a24eddf Revert LRA SPARC changes for now.
gcc/

	PR/67622
	Revert:
	2015-09-11  David S. Miller  <davem@davemloft.net>

		* config/sparc/constraints.md: Make "U" constraint a real register
		constraint.
		* config/sparc/sparc.c (TARGET_LRA_P): Define.
		(D_MODES, DF_MODES): Add missing cast.
		(TF_MODES, TF_MODES_NO_S): Include T_MODE.
		(OF_MODES, OF_MODES_NO_S): Include O_MODE.
		(sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
		cost to 8.
		* config/sparc/sparc.h (PROMOTE_MODE): Define.
		* config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
		provide these insn when flag_pic.

	2015-09-17  David S. Miller  <davem@davemloft.net>

		* config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
		Declare.
		* config/sparc/sparc.c (sparc_secondary_memory_needed): New
		function.
		* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
		(HARD_REGNO_CALLER_SAVE_MODE): Define.
		* config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
		(setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
		(embmedany_losum, embmedany_brsum, embmedany_textuhi)
		(embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
		provide when flag_pic.

From-SVN: r227993
2015-09-21 20:52:45 -07:00
GCC Administrator
36d0586f56 Daily bump.
From-SVN: r227992
2015-09-22 00:16:12 +00:00
James Bowman
131314e14a [FT32] fixes for the default hardware startup
libgcc/
        * config/ft32/crti-hw.S: Use __PMSIZE to allow configurable
        memory layout. Deal correctly with BSS region larger than 32K.
        Handle a watchdog reset like a power-on reset. Clean up unused
        code.

From-SVN: r227986
2015-09-21 22:31:53 +00:00
Steven G. Kargl
6ff560cc25 resolve.c (nonscalar_typebound_assign): Fix typos in comment.
2015-09-21  Steven G. Kargl  <kargl@gcc.gnu.org>

	* resolve.c (nonscalar_typebound_assign): Fix typos in comment.

From-SVN: r227985
2015-09-21 21:40:26 +00:00
Steven G. Kargl
e2eb0806ea re PR fortran/67615 (ICE on using arithmetic if with array instead of scalar)
2015-09-21  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67615
	* resolve.c (gfc_resolve_code): Check for scalar expression in 
	arithmetic-if.


2015-09-21  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/67615
	* gfortran.dg/pr67615.f90: new test.

From-SVN: r227981
2015-09-21 18:09:13 +00:00
Jeff Law
d7b00a16de [PATCH] Fix undefined behavior in h8300 backend
* config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
	behavior.

	* gcc.target/h8300/andsi3_ashift_n_lower.c: New test.

From-SVN: r227978
2015-09-21 11:09:53 -06:00
Ville Voutilainen
bdaaa8b70f Complete the implementation of N4230, Nested namespace definition.
/c-family
2015-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Complete the implementation of N4230, Nested namespace definition.
	* c-cppbuiltin.c: Add __cpp_namespace_attributes and
	__cpp_nested_namespace_definitions.

/cp
2015-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Complete the implementation of N4230, Nested namespace definition.
	* parser.c (cp_parser_namespace_definition): Support namespace
	attributes both before and after the namespace identifier.

/testsuite
2015-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Complete the implementation of N4230, Nested namespace definition.
	* g++.dg/cpp1y/feat-cxx11-neg.C: Add tests for C++17 namespace
	attributes and nested namespace definitions.
	* g++.dg/cpp1y/feat-cxx98-neg.C: Likewise.
	* g++.dg/cpp1z/feat-cxx1z.C: Likewise.
	* g++.dg/cpp1y/feat-cxx14-neg.C: New.
	* g++.dg/cpp1z/namespace-attribs.C: Likewise.
	* g++.dg/cpp1z/nested-namespace-def1.C: Add tests for attributes
	appearing before the namespace identifier.

From-SVN: r227977
2015-09-21 18:50:30 +03:00
Manuel López-Ibáñez
87b470b363 Handle lines encoded into several maps in linemap_position_for_loc_and_offset
linemap_position_for_loc_and_offset() tries to generate a location_t
encoding a column offset from the current location, for example, point
to a certain character inside a string. This is trivial to do when the
new location "fits within" the map of the original location. However,
it may happen that the (long) line corresponding to the original
location is encoded in several maps, thus the new location should
actually be encoded in a subsequent map from the original location.
This patch detects this case and adjusts the map correspondingly.

(This shows that the line-map representation is quite wasteful in this
case, because line-maps always start at column 0. That is, map[0]
highest location may encode up to line 8 column 80, then
map[1]->start_location starts encoding at line 8 column 0. Thus, there
are two location_t values that point to the same source location.)

libcpp/ChangeLog:

2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/66415
	* line-map.c (linemap_position_for_loc_and_offset): Handle the
	case of long lines encoded in multiple maps.

gcc/testsuite/ChangeLog:

2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/66415
	* gcc.dg/cpp/pr66415-1.c: Test column number.

From-SVN: r227975
2015-09-21 14:52:09 +00:00
Ulrich Weigand
a49448515d * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
From-SVN: r227974
2015-09-21 14:41:10 +00:00
Richard Biener
b1e251ec9e passes.c (rest_of_decl_compilation): Do not call dwarf2out_early_global_decl for aliases.
2015-09-21  Richard Biener  <rguenther@suse.de>

	* passes.c (rest_of_decl_compilation): Do not call
	dwarf2out_early_global_decl for aliases.

	* g++.dg/ext/attr-alias-3.C: Add -g.

From-SVN: r227973
2015-09-21 14:12:58 +00:00
Richard Biener
9386cdeee6 re PR debug/67664 (Duplicate AT_const_value attributes in some c++ cases.)
2015-09-21  Richard Biener  <rguenther@suse.de>

	PR debug/67664
	* dwarf2out.c (add_location_or_const_value_attribute): Remove
	attribute parameter.  Early exit if either DW_AT_const_value
	or DW_AT_location are present already.
	(gen_variable_die): Adjust caller.
	(dwarf2out_late_global_decl): Likewise.

	* g++.dg/debug/dwarf2/pr67764.C: New testcase.

From-SVN: r227972
2015-09-21 14:02:27 +00:00
Oleg Endo
ce89c02e86 re PR target/64345 ([SH] Improve single bit extraction)
testsuite/
	PR target/64345
	* gcc.target/sh/pr64345-1.c: Adjust expected insn counts for SH2A.

From-SVN: r227971
2015-09-21 13:49:07 +00:00
Oleg Endo
7dc5a9bb0d re PR target/67657 ([SH][5/6 Regression]: internal compiler error: in cselib_record_set, at cselib.c:2396 when compiling libjpeg-turbo)
gcc/
	PR target/67657
	* config/sh/sh.c (sh_remove_overlapping_post_inc,
	sh_peephole_emit_move_insn): Add new functions.
	* config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
	sh_peephole_emit_move_insn): Declere them.
	* config/sh/sh.md: Use them in various peephole2 patterns.

From-SVN: r227969
2015-09-21 12:57:31 +00:00
Richard Biener
06da803c9f re PR middle-end/67651 (Optimizer assumes nothing can reside at address 0 despite -fno-delete-null-pointer-checks)
2015-09-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/67651
	* rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
	address with -fno-delete-null-pointer-checks.

From-SVN: r227968
2015-09-21 12:33:23 +00:00
Manuel López-Ibáñez
70b95cee51 Catch excess warning in gcc.dg/pragma-diag-5.c
We xfail at emitting the correct location, but we still need to catch the
warning.

2015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org>

	* gcc.dg/pragma-diag-5.c: Catch excess warning.

From-SVN: r227967
2015-09-21 12:26:18 +00:00
Jonathan Wakely
561cfdec25 Fix bootstrap error introduced in r227870
PR libstdc++/67647
	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
	(basic_string::shrink_to_fit): Fix #endif placement.

From-SVN: r227966
2015-09-21 12:44:08 +01:00
Alan Lawrence
5e8edf67f8 [RS6000] Migrate from reduc_xxx to reduc_xxx_scal optabs
* config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
	(reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
	(reduc_uplus_v16qi): Remove.

	* config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
	(reduc_<VEC_reduc_name>_v2df): Remove.
	(reduc_<VEC_reduc_name>_v4sf): Remove.
	(reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.

	* config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
	gen_ function by removing * prefix.
	(vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.

From-SVN: r227965
2015-09-21 10:38:27 +00:00
Manuel López-Ibáñez
973dabae60 [PR middle-end/60832] Do not convert widest_int to tree just for printing it.
In do_warn_aggressive_loop_optimizations, we convert to a tree just to print a
widest_int. Apart from overly complicated, this results in printing '3u'
instead of just '3'.

Unfortunately, adding a printf-like conversion specifier would require making
pretty-print.c link with wide-int.cc, which will include a lot of new
dependencies into several other programs (gcov-tool for example). It would be
possible to add the conversion specifier to every FE pretty-printer, but this
still would require updating c-format.c, which is far from trivial. A simpler
approach is to convert to a string rather than to a tree.

In addition, "iteration 3 invokes undefined behavior within this loop" seems to
me clearer than "iteration 3 invokes undefined behavior; containing loop".

gcc/testsuite/ChangeLog:

2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR middle-end/60832
	* gcc.dg/pr53265.c: Update.

gcc/ChangeLog:

2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR middle-end/60832
	* tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
	Print i_bound without converting it to a tree.

From-SVN: r227964
2015-09-21 10:11:24 +00:00
Bilyan Borisov
6ad9ac8838 [ARM] Replacing variable swaps that use a temporary variable with a call to std::swap in gcc/config/arm/arm.c
On behalf of <bilyan.borisov@arm.com>

2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>

	* config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
	operands[4] operands[5] swap with std::swap, removed tmp variable.
	(arm_evpc_neon_vzip): Replaced in0/in1 and
	out0/out1 swaps with std::swap, removed x variable.
	(arm_evpc_neon_vtrn): Replaced in0/int1 and
	out0/out1 swaos with std::swap, removed x variable.
	(arm_expand_vec_perm_const_1): Replaced
	d->op0/d->op1 swap with std::swap, removed x variable.
	(arm_evpc_neon_vuzp): Replaced in0/in1 and
	out0/out1 swaps with std::swap, removed x variable.

From-SVN: r227963
2015-09-21 10:07:44 +00:00
Jonathan Yong
84fe5e5c41 cygwin.h (STARTFILE_SPEC): Explicitly search sysroot/usr/lib/32api for additional win32 libraries...
2015-09-21  Jonathan Yong  <10walls@gmail.com>

        * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
        sysroot/usr/lib/32api for additional win32 libraries,
        fixes failing Cygwin bootstrapping.

From-SVN: r227962
2015-09-21 11:58:44 +02:00
Eric Botcazou
b65ea4a760 * gcc.target/arm/stack-checking.c: Skip for Thumb1.
From-SVN: r227960
2015-09-21 08:16:32 +00:00
Oleg Endo
416418e6a2 invoke.texi (SH Options): Undocument SH5/SH64 related options.
gcc/
	* doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.

From-SVN: r227959
2015-09-21 07:23:23 +00:00
Oleg Endo
1383eae791 re PR tree-optimization/59478 (Optimize variable access via byte copy)
gcc/testsuite/
	PR target/59478
	* gcc.target/sh/pr59478.c: New.

From-SVN: r227958
2015-09-21 01:43:50 +00:00
Oleg Endo
0a775f1a4b re PR target/67126 ([SH] gcc.target/sh/pr51244-12.c failures)
gcc/
	PR target/67126
	* config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
	(*mov_t_msb_neg): Rewrite negc pattern.

gcc/testsuite/
	PR target/67126
	* gcc.target/sh/pr51244-12.c: Adjust testcase.
	* gcc.target/sh/pr54236-2.c: Likewise.

From-SVN: r227957
2015-09-21 00:17:22 +00:00