Commit Graph

148038 Commits

Author SHA1 Message Date
Marek Polacek ebef225f4d c-common.c (warn_logical_not_parentheses): Print fixit hints.
* c-common.c (warn_logical_not_parentheses): Print fixit hints.
	* c-common.h (warn_logical_not_parentheses): Update declaration.

	* c-typeck.c (parser_build_binary_op): Pass LHS to
	warn_logical_not_parentheses.

	* parser.c (cp_parser_binary_expression): Pass LHS to
	warn_logical_not_parentheses.

	* c-c++-common/Wlogical-not-parentheses-2.c: New test.

Co-Authored-By: David Malcolm <dmalcolm@redhat.com>

From-SVN: r239756
2016-08-25 12:48:34 +00:00
David Edelsohn 30df8b9f1e * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
From-SVN: r239755
2016-08-25 08:07:10 -04:00
Richard Biener 45fea2b206 dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): Only add locations in late dwarf.
2016-08-25  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
	Only add locations in late dwarf.
	(gen_scheduled_generic_parms_dies): Do not set early dwarf here.
	(dwarf2out_early_finish): But do it here.

From-SVN: r239753
2016-08-25 09:25:31 +00:00
Marek Polacek fe377a48b4 re PR c/77323 (Bad "defaults to 'int'" warning for unsupported types)
PR c/77323
	* c-decl.c (declspecs_add_type): Set typespec_word even when __intN
	or _FloatN or _FloatNx is not supported.
	(finish_declspecs): Set type to integer_type_node when _FloatN or
	_FloatNx is not supported.

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

From-SVN: r239752
2016-08-25 08:22:56 +00:00
GCC Administrator e627efefd8 Daily bump.
From-SVN: r239751
2016-08-25 00:16:17 +00:00
Paul Thomas 88b8971f9c re PR fortran/77358 ([F08] deferred-length character function returns zero-length string)
2016-08-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/77358
	* resolve.c (resolve_fl_procedure): Use the correct gfc_charlen
	for deferred character length module procedures.

2016-08-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/77358
	* gfortran.dg/submodule_17.f08: New test.

From-SVN: r239740
2016-08-24 19:33:14 +00:00
Michael Collison c8cd469647 arm-modes.def: Add new condition code mode CC_V to represent the overflow bit.
2016-08-24  Michael Collison <michael.collison@linaro.org>
	    Michael Collison <michael.collison@arm.com>

	* config/arm/arm-modes.def: Add new condition code mode CC_V
	to represent the overflow bit.
	* config/arm/arm.c (maybe_get_arm_condition_code):
	Add support for CC_Vmode.
	(arm_gen_unlikely_cbranch): New function to generate common
	rtl conditional branches for overflow patterns.
	* config/arm/arm-protos.h: Add prototype for
	arm_gen_unlikely_cbranch.
	* config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
	addsi3_compareV_upper): New patterns to support signed
	builtin overflow add operations.
	(uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
	New patterns to support unsigned builtin add overflow operations.
	(subv<mode>4, sub<mode>3_compare1): New patterns to support signed
	builtin overflow subtract operations,
	(usubv<mode>4): New patterns to support unsigned builtin subtract
	overflow operations.
	(negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
	to support builtin overflow negate operations.
	* gcc.target/arm/builtin_saddl.c: New testcase.
	* gcc.target/arm/builtin_saddll.c: New testcase.
	* gcc.target/arm/builtin_uaddl.c: New testcase.
	* gcc.target/arm/builtin_uaddll.c: New testcase.
	* gcc.target/arm/builtin_ssubl.c: New testcase.
	* gcc.target/arm/builtin_ssubll.c: New testcase.
	* gcc.target/arm/builtin_usubl.c: New testcase.
	* gcc.target/arm/builtin_usubll.c: New testcase.


Co-Authored-By: Michael Collison <michael.collison@arm.com>

From-SVN: r239739
2016-08-24 19:31:20 +00:00
Uros Bizjak d5b5d21260 re PR target/77270 (Flag -mprftchw is shared with 3dnow for -march=k8)
PR target/77270
	* gcc.dg/tree-ssa/loop-28.c: Also compile on 32bit x86 targets.
	(dg-options): Use -march=amdfam10 instead of -march=athlon.
	* gcc.dg/tree-ssa/update-unroll-1.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-3.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-4.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-5.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-6.c: Ditto.  Do not require sse2
	effective target.  Remove scan-assembler-times directives.
	* gcc.dg/tree-ssa/prefetch-7.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-8.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-9.c: Ditto.

From-SVN: r239737
2016-08-24 16:59:43 +02:00
Andreas Krebbel b9553e20ad Revert "Drop excess size used for run time allocated stack variables."
This patch caused a bootstrap failure on AIX.

2016-08-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Revert
	2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* explow.c (get_dynamic_stack_size): Take known alignment of stack
	pointer + STACK_DYNAMIC_OFFSET into account when calculating the
	size needed.

From-SVN: r239735
2016-08-24 10:56:37 +00:00
Thomas Preud'homme 0630b8ec3d fragments.texi (MULTILIB_REUSE): Mention that only options in MULTILIB_OPTIONS should be used.
2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
    MULTILIB_OPTIONS should be used.  Small wording fixes.
    * genmultilib: Memorize set of all option combinations in
    combination_space.  Detect if RHS of MULTILIB_REUSE uses an option not
    found in MULTILIB_OPTIONS by checking if option set is listed in
    combination_space.  Output new and existing error message to stderr.

From-SVN: r239734
2016-08-24 09:51:35 +00:00
Thomas Preud'homme 0ba81bbe65 t-aprofile (MULTILIB_MATCHES): Add mapping for -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
    -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
    Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
    (MULTILIB_REUSE): Remove reuse rules for option set including
    -mfpu=fp-armv8 and -mfpu=vfpv4

From-SVN: r239733
2016-08-24 09:51:26 +00:00
Senthil Kumar Selvaraj d118868932 Fix bogus testsuite failures for avr.
gcc/testsuite/

2016-08-24  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

        * gcc.c-torture/execute/pr71083.c: Use UINT32_TYPE instead
        of unsigned int.
        * gcc.dg/zero_sign_ext_test.c: Require int32plus.

From-SVN: r239732
2016-08-24 08:36:56 +00:00
Aditya Kumar 9a38acdfdc Remove trailing whitespace in C++ headers
2016-08-24  Aditya Kumar  <hiraditya@msn.com>

	* include/bits/algorithmfwd.h: Remove trailing whitespace.
	* include/bits/shared_ptr_base.h: Likewise.

From-SVN: r239731
2016-08-24 09:03:01 +01:00
Robert Suchanek 0b6b8f85a3 re PR testsuite/77317 (x86_64 --target_board=''unix/ unix/-m32'' parallel testrun gives inconsistent results in gcc.dg/vect)
Fix PR testsuite/77317

gcc/testsuite/
	* lib/target-supports.exp
	(check_effective_target_vect_aligned_arrays): Don't cache the result.
	(check_effective_target_vect_natural_alignment): Ditto.
	(check_effective_target_vector_alignment_reachable): Ditto.
	(check_effective_target_vector_alignment_reachable_for_64bit): Ditto.

From-SVN: r239730
2016-08-24 07:53:07 +00:00
Sebastian Huber a4892ab4f8 [RTEMS] Add vfp multilib for ARM
gcc/

	* config/arm/t-rtems: Add vfp multilib.

From-SVN: r239727
2016-08-24 06:05:04 +00:00
GCC Administrator f5e9814bb4 Daily bump.
From-SVN: r239726
2016-08-24 00:16:22 +00:00
Ian Lance Taylor 587b7f7aa1 s390.c (s390_asm_file_start): Call default_file_start.
gcc/:
	* config/s390/s390.c (s390_asm_file_start): Call
	default_file_start.
gcc/testsuite/:
	* gcc.target/s390/nolrl-1.c: Don't match the file name.

From-SVN: r239713
2016-08-23 20:43:17 +00:00
Michael Meissner 6019c0fc62 rs6000.c (rs6000_expand_vector_init): Set initialization of all 0's to the 0 constant, instead of directly generating XOR.
[gcc]
2016-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
	initialization of all 0's to the 0 constant, instead of directly
	generating XOR.  Add support for V4SImode vector initialization on
	64-bit systems with direct move, and rework the ISA 3.0 V4SImode
	initialization.  Change variables used in V4SFmode vector
	intialization.  For V4SFmode vector splat on ISA 3.0, make sure
	any memory addresses are in index form.  Add support for using
	VSPLTH/VSPLTB to initialize vector short and vector char vectors
	with all of the same element.
	(regno_or_subregno): New helper function to return a register
	number for either REG or SUBREG.
	(rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
	Use regno_or_subregno where possible.
	(rs6000_split_v4si_init_di_reg): New helper function to build up a
	DImode value from two SImode values in order to generate V4SImode
	vector initialization on 64-bit systems with direct move.
	(rs6000_split_v4si_init): Split up the insns for a V4SImode vector
	initialization.
	(rtx_is_swappable_p): V4SImode vector initialization insn is not
	swappable.
	* config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
	declaration.
	* config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
	attributes to initialize V8HImode and V16QImode vectors with the
	same element.
	(VSX_SPLAT_COUNT): Likewise.
	(VSX_SPLAT_SUFFIX): Likewise.
	(UNSPEC_VSX_VEC_INIT): New unspec.
	(vsx_concat_v2sf): Eliminate using 'preferred' register classes.
	Allow SFmode values to come from Altivec registers.
	(vsx_init_v4si): New insn/split for V4SImode vector initialization
	on 64-bit systems with direct move.
	(vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
	vector initializations, to allow V4SImode vector initializations
	on 64-bit systems with direct move.
	(vsx_splat_v4si): Likewise.
	(vsx_splat_v4si_di): Likewise.
	(vsx_splat_v4sf): Likewise.
	(vsx_splat_v4sf_internal): Likewise.
	(vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
	register classes.
	(vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
	(vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
	initializing V8HImode and V16QImode vectors with the same
	element.
	* config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
	optimization if -maltivec=be.

[gcc/testsuite]
2016-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/vec-init-1.c: Add tests where the vector is
	being created from pointers to memory locations.
	* gcc.target/powerpc/vec-init-2.c: Likewise.

From-SVN: r239712
2016-08-23 20:41:32 +00:00
David Malcolm d672cded1f line-map.h: add source_range::from_locations
libcpp/ChangeLog:
	* include/line-map.h (source_range::from_locations): New method.

From-SVN: r239711
2016-08-23 20:20:48 +00:00
Christophe Lyon 0da825e962 [ARM] Fix predicable_short_it attribute for arm_movqi_insn
2016-08-23  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
	attribute for alternatives 3 and 4.

From-SVN: r239710
2016-08-23 22:07:52 +02:00
Fritz Reese cfe37db47a decl.c (gfc_match_structure_decl): Make gfc_structure_id static.
2016-08-23  Fritz Reese  <fritzoreese@gmail.com>

	gcc/fortran/
	* decl.c (gfc_match_structure_decl): Make gfc_structure_id static.

	gcc/testsuite/gfortran.dg/
	* dec_structure_12.f90: New testcase.

From-SVN: r239709
2016-08-23 19:33:46 +00:00
Ian Lance Taylor c0ccddb46c compiler: revamp scheme for ordering calls to import init fcns.
Switch to a new method for determining the order in which import init
    functions are invoked: build an init fcn dependence DAG and walk the DAG
    to rewrite/adjust priorities to account for discrepancies introduced by
    "go test".
    
    This patch includes a change to the export data format generated
    by gccgo. Older versions of gccgo will not be able to read object files
    produced by a newer gccgo, but the new gcc will still be able to read
    old object files.
    
    Fixes golang/go#15738.
    
    Reviewed-on: https://go-review.googlesource.com/25301

From-SVN: r239708
2016-08-23 17:45:45 +00:00
David Malcolm 9f58978668 selftest.h: add ASSERT_STR_CONTAINS
gcc/ChangeLog:
	* selftest.c (selftest::assert_str_contains): New function.
	(selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
	* selftest.h (selftest::assert_str_contains): New decl.
	(ASSERT_STR_CONTAINS): New macro.

From-SVN: r239707
2016-08-23 16:51:57 +00:00
Fritz Reese a181ec0301 interface.c (compare_components): Fix typo in name check conditional.
2016-08-23  Fritz Reese  <fritzoreese@gmail.com>

	gcc/fortran/
	* interface.c (compare_components): Fix typo in name check conditional.

From-SVN: r239706
2016-08-23 16:11:19 +00:00
Jonathan Wakely e90a801017 Add C++17 constexpr to debug and profile mode arrays
* include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
	* include/profile/array (array): Likewise.
	(array::swap): Fix exception specification for zero-sized arrays.

From-SVN: r239705
2016-08-23 16:54:57 +01:00
Richard Biener 027f10047b re PR tree-optimization/77286 (ICE in fold_convert_loc, at fold-const.c:2248 building 435.gromacs)
2016-08-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77286
	* tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
	the CFG here.
	(vect_transform_loop): Split exit edges of loop and scalar
	loop if required and at the appropriate time.

From-SVN: r239700
2016-08-23 13:58:19 +00:00
Jonathan Wakely 5ea387db6c libstdc++/77334 move assign RB trees of non-copyable types
PR libstdc++/77334
	* include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
	(_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
	* testsuite/23_containers/map/77334.cc: New test.

From-SVN: r239698
2016-08-23 14:15:12 +01:00
Jonathan Wakely 5d1c6b3e76 Remove reference to -pthreads option in libstdc++ manual
* doc/xml/manual/using.xml: Remove reference to -pthreads option.
	* doc/html/*: Regenerate.

From-SVN: r239693
2016-08-23 11:13:36 +01:00
Jonathan Wakely 457c4a3fd2 Use dg-do preprocess instead of compile for tests
* testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
	* testsuite/experimental/feat-lib-fund.cc: Likewise.

From-SVN: r239692
2016-08-23 11:13:31 +01:00
Jonathan Wakely b405d54fcd Implement resolution of LWG DR 685 precisely
PR libstdc++/71771
	* include/bits/stl_iterator.h
	(operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
	define for C++98 mode.
	(operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
	* testsuite/24_iterators/headers/iterator/synopsis.cc: Use
	-std=gnu++98.
	* testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
	* testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
	* testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
	difference operator.
	* testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
	difference operator for C++98.
	* testsuite/24_iterators/reverse_iterator/71771.cc: New test.

From-SVN: r239691
2016-08-23 11:13:26 +01:00
Jonathan Wakely 06db992005 Add constexpr to <iterator> and <array> for C++17
* include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
	* include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
	(crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
	* include/bits/stl_iterator.h (reverse_iterator, move_iterator)
	(__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
	Likewise.
	* include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
	_GLIBCXX14_CONSTEXPR.
	(distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
	* include/std/array (array::begin, array::end, array::rbegin)
	(array::rend, array::cbegin, array:cend, array::crbegin)
	(array::crend, array::operator[], array::at, array::front)
	(array::back, array::data): Likewise.
	* testsuite/24_iterators/headers/iterator/range_access.cc: Replace
	with separate tests for C++11, C++14, and C++17.
	* testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
	* testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
	* testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.

From-SVN: r239690
2016-08-23 11:13:12 +01:00
Dominik Vogt 1135a1330c Drop excess size used for run time allocated stack variables.
* get_dynamic_stack_size is passed a SIZE of a data block (which is
  allocated elsewhere), the SIZE_ALIGN of the SIZE (i.e. the alignment
  of the underlying memory units (e.g. 32 bytes split into 4 times 8
  bytes = 64 bit alignment) and the REQUIRED_ALIGN of the data portion
  of the allocated memory.

* Assuming the function is called with SIZE = 2, SIZE_ALIGN = 8 and
  REQUIRED_ALIGN = 64 it first adds 7 bytes to SIZE -> 9.  This is
  what is needed to have two bytes 8-byte-aligned at some memory
  location without any known alignment.

* Finally round_push is called to round up SIZE to a multiple of the
  stack slot size.

The key to understanding this is that the function assumes that
STACK_DYNMAIC_OFFSET is completely unknown at the time its called
and therefore it does not make assumptions about the alignment of
STACKPOINTER + STACK_DYNMAIC_OFFSET.  The latest patch simply
hard-codes that SP + SDO is supposed to be aligned to at least
stack slot size (and does that in a very complicated way).  Since
there is no guarantee that this is the case on all targets, the
patch is broken.  It may miscalculate a SIZE that is too small in
some cases.

However, on many targets there is some guarantee about the
alignment of SP + SDO even if the actual value of SDO is unknown.
On s390x it's always 8-byte-aligned (stack slot size).  So the
right fix should be to add knowledge about the target's guaranteed
alignment of SP + SDO to the function.  I'm right now testing a
much simpler patch that uses
REGNO_POINTER_ALIGN(VIRTUAL_STACK_DYNAMIC_REGNUM) as the
alignment.


gcc/ChangeLog:

2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* explow.c (get_dynamic_stack_size): Take known alignment of stack
	pointer + STACK_DYNAMIC_OFFSET into account when calculating the
	size needed.  Correct a typo in a comment.

From-SVN: r239688
2016-08-23 09:20:15 +00:00
Dominik Vogt 7e11f46f12 S/390: Fix insv-1.c test with -m31.
gcc/testsuite/ChangeLog:

2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/insv-1.c: Fix test when running with -m31.

From-SVN: r239687
2016-08-23 09:13:31 +00:00
Dominik Vogt 7ab4f35457 S/390: Improve result verification in test case vec-genmask-1.c.
THe attached patch improves checking of teh results of the subtests
"a" and "f".  As they share the same "vone" instruction, the duplicate
scan-assembler-times was bogus.  Moved "f" to a separate function to
fix this.  Also double check that no extra "vgmf" instructions are
used.

gcc/testsuite/ChangeLog:

2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/zvector/vec-genmask-1.c: Improve result
	verification.

From-SVN: r239686
2016-08-23 09:09:45 +00:00
Dominik Vogt deb9351faf S/390: Add splitter for "and" with complement.
Split ~b & a to (b & a) ^ a.  This is benefitial on z Systems since we
otherwise need a big -1 constant to be loaded for the ~b.
	
gcc/ChangeLog:

2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.md ("*andc_split"): New splitter for and with
	complement.

gcc/testsuite/ChangeLog:

2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/md/andc-splitter-1.c: New test case.
	* gcc.target/s390/md/andc-splitter-2.c: Likewise.

From-SVN: r239685
2016-08-23 09:01:42 +00:00
Richard Biener 1fd9f058f3 re PR middle-end/27336 (delete null checks in callers to nonnull functions)
2016-08-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/27336
	* tree-vrp.c (infer_value_range): Handle stmts that can throw
	by looking for a non-EH edge.
	(process_assert_insertions_for): Likewise.

	* c-c++-common/pr27336.c: New testcase.

From-SVN: r239684
2016-08-23 07:23:19 +00:00
Richard Biener e83421c08f re PR lto/77305 (-fdump-tree-all and -flto causes ICE)
2016-08-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/77305
	* statistics.c (statistics_counter_event): Robustify against
	NULL current_pass.

From-SVN: r239683
2016-08-23 07:21:36 +00:00
Venkataramanan Kumar 9c810a4e44 2016-08-23 Venkataramanan Kumar
* config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
	for targets amdfam10 and barcelona.

From-SVN: r239682
2016-08-23 06:45:36 +00:00
GCC Administrator 3dce0662b5 Daily bump.
From-SVN: r239680
2016-08-23 00:16:16 +00:00
Marek Polacek b00e6e758a re PR c++/77321 (crash in warn_for_memset)
PR c++/77321
	* c-common.c (warn_for_memset): Check type for null.

	* g++.dg/cpp1y/pr77321.C: New test.

From-SVN: r239676
2016-08-22 21:53:59 +00:00
Ian Lance Taylor bb748b89df compiler: don't permit P.M if P is a pointer type
When lowering method expressions of the form "P.M" where
    P is a pointer type (e.g. "type P *T") make sure we examine
    the method set of P and not T during method lookup.
    
    Fixes golang/go#15722.
    
    Reviewed-on: https://go-review.googlesource.com/24843

From-SVN: r239675
2016-08-22 21:30:49 +00:00
Tim Shen d79d625275 Split _M_dfs() into smaller functions.
* regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
	(_M_handle_subexpr_end, _M_handle_line_begin_assertion)
	(_M_handle_line_end_assertion, _M_handle_word_boundary)
	(_M_handle_subexpr_lookahead, _M_handle_match)
	(_M_handle_backref, _M_handle_accept, _M_handle_alternative):
	Add separate function declarations.
	* regex_executor.tcc: Split _M_dfs() into multiple handler functions.

From-SVN: r239673
2016-08-22 19:50:15 +00:00
Uros Bizjak bef18c6382 i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
* config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
	(zero_extend<mode>di2): Ditto.
	(*zero_extend<mode>si2): Ditto.
	(*zero_extendqihi2): Ditto.

From-SVN: r239672
2016-08-22 21:13:45 +02:00
Steven G. Kargl 58338bacdd re PR fortran/60774 (f951: internal compiler error: Segmentation fault: 11)
2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
	    Bud Davis  <jmdavis@link.com>

	PR fortran/60774
	* parse.c (next_free,next_fixed): Issue error for statement label
	without a statement.

2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/60774
	* gfortran.dg/empty_label.f: Adjust test for new error message.
	* gfortran.dg/empty_label.f90: Ditto.
	* gfortran.dg/empty_label_typedecl.f90: Ditto.
	* gfortran.dg/label_3.f90: Deleted (redundant with empty_label.f90).
	* gfortran.dg/warnings_are_errors_1.f90: Remove invalid statement label.

Co-Authored-By: Bud Davis <jmdavis@link.com>

From-SVN: r239668
2016-08-22 18:23:43 +00:00
Steven G. Kargl 30364ce673 re PR fortran/61318 (Improve error diagnostic by pointing to the expression and not to declared-at of a USE-associated variable)
2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/61318
	* interface.c (compare_parameter): Use better locus for error message.

2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/61318
	* gfortran.dg/pr61318.f90: New test.

From-SVN: r239667
2016-08-22 18:18:14 +00:00
Steven G. Kargl ad7a5a8fc5 re PR fortran/77260 (bogus warning with ENTRY in a function)
2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77260
	* gcc/fortran/trans-decl.c (generate_local_decl): Suppress warning
	for unused variable if symbol is entry point.

2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77260
	* gfortran.dg/pr77260_1.f90: New test.
	* gfortran.dg/pr77260_2.f90: Ditto.

From-SVN: r239666
2016-08-22 18:12:33 +00:00
Joseph Myers 72f52f3081 Support __builtin_isinf_sign for new floating-point types (PR middle-end/77269).
The __builtin_isinf_sign folding uses a type-specific signbit built-in
function, meaning it only works for the types float, double and long
double, not for types such as _FloatN, _FloatNx, __float128.  Since
the signbit built-in function is now type-generic, that can be used
unconditionally, much as the code uses the type-generic isinf built-in
function unconditionally, and this patch makes it do so, thereby
enabling __builtin_isinf_sign (which glibc uses to expand the isinf
macro since that macro in glibc traditionally provided the stronger
guarantees about the return value given by __builtin_isinf_sign) to
work for all floating-point types.

The test gcc.dg/torture/builtin-isinf_sign-1.c needs updating because
it tests that comparisons of calls to __builtin_isinf_sign to
conditional expressions involving __builtin_isinf and
__builtin_signbit* get optimized away, and with a change of what
particular built-in function for signbit is used, GCC doesn't notice
the expressions with type-generic and non-type-generic built-in
functions are equivalent at -O0 or -O1 (it does optimize away the
original test at -O2).

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

	PR middle-end/77269
gcc:
	* builtins.c (fold_builtin_classify): Use builtin_decl_explicit
	(BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.

gcc/testsuite:
	* gcc.dg/torture/builtin-isinf_sign-1.c: Use __builtin_signbit not
	__builtin_signbitf and __builtin_signbitl in expected generic
	expansion.
	* gcc.dg/torture/float128-tg-2.c, gcc.dg/torture/float128x-tg-2.c,
	gcc.dg/torture/float16-tg-2.c, gcc.dg/torture/float32-tg-2.c,
	gcc.dg/torture/float32x-tg-2.c, gcc.dg/torture/float64-tg-2.c,
	gcc.dg/torture/float64x-tg-2.c, gcc.dg/torture/floatn-tg-2.h: New
	tests.

From-SVN: r239665
2016-08-22 19:03:59 +01:00
Gleb Natapov 27abac2648 libstdc++/68297 avoid throw/catch in make_exception_ptr
2016-08-22  Gleb Natapov  <gleb@scylladb.com>

	PR libstdc++/68297
	* config/abi/pre/gnu-versioned-namespace.ver: Export
	__cxa_init_primary_exception and std::exception_ptr(void*).
	* config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
	export __cxa_init_primary_exception and std::exception_ptr(void*).
	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Add new headers.
	* libsupc++/Makefile.in: Regenerate.
	* libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
	* libsupc++/cxxabi_init_exception.h: New header.
	(__cxa_init_primary_exception): Declare.
	* libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
	(__cxa_throw): Use __cxa_init_primary_exception.
	* libsupc++/exception (std::exception): Move to ...
	* libsupc++/exception.h: New header.
	* libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
	friend declaration.
	(__exception_ptr::__dest_thunk): New function template.
	(std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
	Use __cxa_allocate_exception and __cxa_init_primary_exception to
	create exception_ptr.
	* libsupc++/typeinfo: Include bits/exception.h instead of exception.
	* testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.

From-SVN: r239664
2016-08-22 18:29:31 +01:00
Jonathan Wakely 4c86ffccf9 Update links to libstdc++ Doxygen pages
* doc/xml/api.xml: Replace hardcoded links for specific versions with
	link to docs for all releases.
	* doc/html/*: Regenerate.

From-SVN: r239663
2016-08-22 17:47:39 +01:00
Jonathan Wakely 94f54d47ca Add noexcept to std::function swap
PR libstdc++/77322
	* doc/xml/manual/intro.xml: Document DR 2062 change.
	* include/std/functional (function::swap): Add noexcept.
	(swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
	* testsuite/20_util/function/77322.cc: New test.

From-SVN: r239662
2016-08-22 17:47:34 +01:00