1. 11 Apr, 2018 5 commits
    • Clean up attribute value comparison in lto-symtab.c. · 23d87577
      2018-04-11  Martin Liska  <mliska@suse.cz>
      
      	* lto-symtab.c (lto_symtab_merge_p): Use attribute_value_equal
      	function.
      
      From-SVN: r259312
      Martin Liska committed
    • re PR rtl-optimization/85302 (ICE in size_of_loc_descr, at dwarf2out.c:1771 on i686-linux-gnu) · 5805b089
      	PR debug/85302
      	* dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if
      	SIZEP is NULL.
      	(output_loc_list): Pass address of a dummy size variable even in the
      	locview handling loop.
      	(index_location_lists): Add comment on why skip_loc_list_entry can't
      	call size_of_locs.
      
      	* g++.dg/debug/dwarf2/pr85302.C: New test.
      
      From-SVN: r259311
      Jakub Jelinek committed
    • [ARM] Fix PR85261: ICE with FPSCR setter builtin · 60d1915f
      Instruction pattern for setting the FPSCR expects the input value to be
      in a register. However, __builtin_arm_set_fpscr expander does not ensure
      that this is the case and as a result GCC ICEs when the builtin is
      called with a constant literal.
      
      This commit fixes the builtin to force the input value into a register.
      It also remove the unneeded volatile in the existing fpscr test and
      fixes the function prototype.
      
      2018-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          PR target/85261
          * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
          into register.
      
          gcc/testsuite/
          PR target/85261
          * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
          into register.
      
      From-SVN: r259310
      Thomas Preud'homme committed
    • Update libstdc++ manual in preparation for GCC 8 release · 52556a87
      	* doc/xml/manual/abi.xml: Document header locations in recent
      	releases.
      	* doc/xml/manual/evolution.xml: Add API changes since GCC 5.
      	* doc/xml/manual/spine.xml: Update copyright years.
      	* doc/xml/manual/strings.xml: Adjust tolower example to avoid
      	undefined behaviour.
      	* doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
      	* doc/html/*: Regenerate.
      
      From-SVN: r259308
      Jonathan Wakely committed
    • Daily bump. · f70bbfb3
      From-SVN: r259307
      GCC Administrator committed
  2. 10 Apr, 2018 31 commits
    • re PR c++/70808 (Spurious -Wzero-as-null-pointer-constant for nullptr_t) · 310e77fe
      /cp
      2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/70808
      	* init.c (build_zero_init_1): Handle NULLPTR_TYPE_P being true of
      	the type like TYPE_PTR_OR_PTRMEM_P.
      
      /testsuite
      2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/70808
      	* g++.dg/warn/Wzero-as-null-pointer-constant-7.C: New.
      
      From-SVN: r259303
      Paolo Carlini committed
    • re PR target/85321 (Missing documentation and option misc for ppc64le) · 6f47ccff
      2018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>
      
      	PR target/85321
      	* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
      	-mblock-compare-inline-limit, -mblock-compare-inline-loop-limit,
      	and -mstring-compare-inline-limit.
      
      From-SVN: r259302
      Aaron Sawdey committed
    • MAINTAINERS: Update my email address. · a2919888
      2018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>
      
      	* MAINTAINERS: Update my email address.
      
      From-SVN: r259301
      Aaron Sawdey committed
    • forgot the PR marker in the changelog · bbb4c5e1
      From-SVN: r259300
      Segher Boessenkool committed
    • rs6000: Fix stack clash for big residuals (PR85287) · 7321063d
      The stack clash protection code had a logic error in how it decided
      whether to put the final update size in a register, or to emit it
      directly in an insn.  This fixes it.  It also tidies some surrounding
      code.
      
      
      	PR target/85287
      	* gcc/config/rs6000/rs6000.md (allocate_stack): Put the residual size
      	for stack clash protection in a register whenever we need it to be in
      	a register.
      
      From-SVN: r259299
      Segher Boessenkool committed
    • rs6000: Enable -fasynchronous-unwind-tables by default · 0359465c
      To find out where on-entry register values live at any point in a
      program, GDB currently tries to parse to parse the executable code.
      This does not work very well, for example it gets confused if some
      accesses to the stack use the frame pointer (r31) and some use the
      stack pointer (r1).  A symptom is that backtraces can be cut short.
      
      This patch enables -fasynchronous-unwind-tables by default for rs6000,
      which causes us to emit DWARF unwind tables for all functions, solving
      these problems.
      
      This not do anything for sub-targets without DWARF, and only for ELF
      sub-targets for now.
      
      It increases executable size, but only modestly, and does not change
      memory use, only the disk image.
      
      
      	* common/config/rs6000/rs6000-common.c (rs6000_option_init_struct):
      	Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF.
      
      gcc/testsuite/
      	* gcc.target/powerpc/dfmode_off.c: Add -fno-asynchronous-unwind-tables.
      	* gcc.target/powerpc/dimode_off.c: Ditto.
      	* gcc.target/powerpc/tfmode_off.c: Ditto.
      	* gcc.target/powerpc/timode_off.c: Ditto.
      
      From-SVN: r259298
      Segher Boessenkool committed
    • rs6000: Improve --help=target (PR85321) · ccdfb975
      This updates the help text for some options to mention the allowed
      values for -mXX=XX.
      
      
      	PR target/85321
      	* config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in
      	the help text.
      	(mlong-double-): Ditto.
      	* config/rs6000/sysv4.opt (msdata=): Ditto.
      	(mtls-size=): Ditto.
      
      From-SVN: r259296
      Segher Boessenkool committed
    • rs6000-c.c (altivec_overloaded_builtins): Remove erroneous entries for "vector int vec_ldl (int... · d4f18ec6
      gcc/ChangeLog:
      
      2018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
      	erroneous entries for
      	"vector int vec_ldl (int, long int *)", and
      	"vector unsigned int vec_ldl (int, unsigned long int *)".
      	Add comments and entries for
      	"vector bool char vec_ldl (int, bool char *)",
      	"vector bool short vec_ldl (int, bool short *)",
      	"vector bool int vec_ldl (int, bool int *)",
      	"vector bool long long vec_ldl (int, bool long long *)",
      	"vector pixel vec_ldl (int, pixel *)",
      	"vector long long vec_ldl (int, long long *)",
      	"vector unsigned long long vec_ldl (int, unsigned long long *)".
      	* config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new
      	type tree bool_long_long_type_node and correct definition of
      	bool_V2DI_type_node to make reference to this new type tree.
      	(rs6000_mangle_type): Replace erroneous reference to
      	bool_long_type_node with bool_long_long_type_node.
      	* config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
      	comments to emphasize sign distinctions for char and int types and
      	replace RS6000_BTI_bool_long constant with
      	RS6000_BTI_bool_long_long constant.  Also add comment to restrict
      	use of RS6000_BTI_pixel.
      	(bool_long_type_node): Remove this macro definition.
      	(bool_long_long_type_node): New macro definition
      
      gcc/testsuite/ChangeLog:
      
      2018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* gcc.target/powerpc/vec-ldl-1.c: New test.
      	* gcc.dg/vmx/ops-long-1.c: Correct test programs to reflect
      	corrections to ABI implementation.
      
      From-SVN: r259294
      Kelvin Nilsen committed
    • PR debug/65821 - wrong location for main(). · 45d14461
      	* call.c (clear_location_r, convert_default_arg): Revert.
      	* tree.c (break_out_target_exprs): Add clear_location parm.
      	(struct bot_data): New.
      	(bot_manip): Clear location if requested.
      	* init.c (get_nsdmi): Pass clear_location.
      
      From-SVN: r259291
      Jason Merrill committed
    • [PR target/85056] Address -Wmaybe-uninitialized diagnostic · f6d17c4d
      	gcc/testsuite/
      	* gcc.target/nvptx/pr85056.c (main): Initialize "sum".
      
      From-SVN: r259288
      Thomas Schwinge committed
    • cppopts.texi: Use "side effect" instead of side-effect. · df18c24a
      gcc/ChangeLog:
      
      	* doc/cppopts.texi: Use "side effect" instead of side-effect.
      	* doc/extend.texi: Same.
      	* doc/generic.texi: Same.
      	* doc/implement-c.texi: Same.
      	* doc/invoke.texi: Same.
      	* doc/md.texi: Same.
      	* doc/rtl.texi: Same.
      	* doc/tree-ssa.texi: Same.
      
      From-SVN: r259287
      Martin Sebor committed
    • Update links to archived copy of SGI STL docs · 25949ee3
      	* doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
      	* doc/xml/manual/backwards_compatibility.xml: Likewise.
      	* doc/xml/manual/containers.xml: Likewise.
      	* doc/xml/manual/debug_mode.xml: Likewise.
      	* doc/xml/manual/extensions.xml: Likewise.
      	* doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
      	* doc/xml/manual/using.xml: Likewise.
      	* doc/xml/manual/utilities.xml: Likewise.
      
      From-SVN: r259286
      Jonathan Wakely committed
    • re PR rtl-optimization/85300 (ICE in exact_int_to_float_conversion_p, at simplify-rtx.c:895) · e0cf12ba
      	PR rtl-optimization/85300
      	* combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
      	into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
      	simplify_unary_operation fails.
      
      	* gcc.dg/pr85300.c: New test.
      
      From-SVN: r259285
      Jakub Jelinek committed
    • gdbhooks: Add new pretty-printers for: varpool_node, symtab_node, cgraph_edge and ipa_ref. · efbf619b
      2018-04-10  Martin Liska  <mliska@suse.cz>
      
      	* gdbhooks.py: Add pretty-printers for varpool_node, symtab_node,
      	cgraph_edge and ipa_ref.
      
      From-SVN: r259283
      Martin Liska committed
    • Show pertinent parameter (PR c++/85110) · 672c767b
      gcc/cp/ChangeLog:
      	PR c++/85110
      	* call.c (get_fndecl_argument_location): Make non-static.
      	* cp-tree.h (get_fndecl_argument_location): New decl.
      	* typeck.c (convert_for_assignment): When complaining due to
      	conversions for an argument, show the location of the parameter
      	within the decl.
      
      gcc/testsuite/ChangeLog:
      	PR c++/85110
      	* g++.dg/cpp1z/direct-enum-init1.C: Update for the cases
      	where we now show the pertinent parameter.
      	* g++.dg/diagnostic/aka2.C: Likewise.
      	* g++.dg/diagnostic/param-type-mismatch-2.C: Likewise.
      
      From-SVN: r259282
      David Malcolm committed
    • PR libstdc++/85222 allow catching iostream errors as gcc4-compatible ios::failure · 5f302518
      Define a new exception type derived from std::ios::failure[abi:cxx11]
      which also aggregates an object of the gcc4-compatible ios::failure
      type. Make __throw_ios_failure throw this new type for iostream errors
      that raise exceptions. Provide custom type info for the new type so that
      it can be caught by handlers for the gcc4-compatible ios::failure type
      as well as handlers for ios::failure[abi:cxx11] and its bases.
      
      	PR libstdc++/85222
      	* src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
      	cxx11-ios_failure.cc to rewrite type info for __ios_failure.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
      	New types.
      	[_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
      	* src/c++11/ios.cc (__throw_ios_failure): Remove definition.
      	* src/c++98/ios_failure.cc (__construct_ios_failure)
      	(__destroy_ios_failure, is_ios_failure_handler): New functions.
      	[!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
      	* testsuite/27_io/ios_base/failure/dual_abi.cc: New.
      	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
      	handler types, to always catch std::ios_base::failure.
      	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
      	exceptions_failbit.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
      	exceptions_failbit.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_other/char/
      	exceptions_null.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
      	exceptions_null.cc: Likewise.
      	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
      	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
      	* testsuite/27_io/basic_ostream/inserters_other/char/
      	exceptions_null.cc: Likewise.
      	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
      	exceptions_null.cc: Likewise.
      	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
      
      From-SVN: r259281
      Jonathan Wakely committed
    • PR c++/85312 - P0962 cleanup · 7e6b73b1
      	PR c++/85312 - P0962 cleanup
      	* parser.c (cp_parser_perform_range_for_lookup): Remove unreachable
      	diagnostics.
      
      From-SVN: r259279
      Jakub Jelinek committed
    • PR debug/65821 - wrong location for main(). · 6e2446b6
      	* call.c (clear_location_r): New.
      	(convert_default_arg): Use it.
      	* tree.c (bot_manip): Remove builtin_LINE/FILE handling.
      
      From-SVN: r259278
      Jason Merrill committed
    • PR c++/85285 - ICE with flexible array after substitution. · 05c602a1
      	* pt.c (instantiate_class_template_1): Check for flexible array in
      	union.
      
      From-SVN: r259277
      Jason Merrill committed
    • re PR fortran/85313 (gcc/fortran/openmp.c: 2 * confused logic ?) · 24f80aa4
      	PR fortran/85313
      	* openmp.c (resolve_omp_do): Remove bogus if (j < i) break;.
      	(resolve_oacc_nested_loops): Likewise.  Formatting fix.
      
      	* gfortran.dg/gomp/pr85313.f90: New test.
      
      From-SVN: r259275
      Jakub Jelinek committed
    • Fix obvious error in handling of error attribute (PR lto/85248). · c16833dc
      2018-04-10  Martin Liska  <mliska@suse.cz>
      
      	PR lto/85248
      	* lto-symtab.c (lto_symtab_merge_p): Do not check for
      	TREE_VALUES of error attributes.
      
      From-SVN: r259274
      Martin Liska committed
    • re PR c++/24314 (Extra "template<>" in partial specialization is compiled successfuly.) · b30ae803
      2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/24314
      	* g++.dg/parse/template29.C: New.
      
      From-SVN: r259273
      Paolo Carlini committed
    • re PR testsuite/85190 (gcc.dg/vect/pr81196.c FAILs) · 2377345d
      	gcc/testsuite
      	PR testsuite/85190
      	* gcc.dg/vect/pr81196.c: Adjust pointer for aligned access.
      
      From-SVN: r259272
      Bin Cheng committed
    • re PR target/85177 (wrong code with -O -fno-tree-ccp -fno-tree-sra -mavx512f) · 56f1cb3f
      	PR target/85177
      	PR target/85255
      	* config/i386/sse.md
      	(<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix
      	computation of the VEC_MERGE selector from mask.
      	(<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>):
      	Fix decoding of the VEC_MERGE selector into mask.
      
      	* gcc.target/i386/avx512f-pr85177.c: New test.
      	* gcc.target/i386/avx512f-pr85255.c: New test.
      
      From-SVN: r259269
      Jakub Jelinek committed
    • Add missing cases to vect_get_smallest_scalar_type (PR 85286) · eb38d071
      In this PR we used WIDEN_SUM_EXPR to vectorise:
      
        short i, y;
        int sum;
        [...]
        for (i = x; i > 0; i--)
          sum += y;
      
      with 4 ints and 8 shorts per vector.  The problem was that we set
      the VF based only on the ints, then calculated the number of vector
      copies based on the shorts, giving 4/8.  Previously that led to
      ncopies==0, but after r249897 we pick it up as an ICE.
      
      In this particular case we could vectorise the reduction by setting
      ncopies based on the output type rather than the input type, but it
      doesn't seem worth adding a special "optimisation" for such a
      pathological case.  I think it's really an instance of the more general
      problem that we can't vectorise using combinations of (say) 64-bit and
      128-bit vectors on targets that support both.
      
      2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR tree-optimization/85286
      	* tree-vect-data-refs.c (vect_get_smallest_scalar_type):
      
      gcc/testsuite/
      	PR tree-optimization/85286
      	* gcc.dg/vect/pr85286.c: New test.
      
      From-SVN: r259268
      Richard Sandiford committed
    • Set insn_last_address in final_1 · 02149a78
      final_1 already sets insn_current_address for each instruction, making
      it possible to use some of the address functions in final.c during
      assembly generation.  This patch also sets insn_last_address, since
      as the comment says, we can treat final as a shorten_branches pass that
      does nothing.  It's then possible to use insn_current_reference_address
      during final as well.
      
      This is needed for the aarch64.md definitions of far_branch to work:
      
         (set (attr "far_branch")
      	(if_then_else (and (ge (minus (match_dup 2) (pc)) (const_int -1048576))
      			   (lt (minus (match_dup 2) (pc)) (const_int 1048572)))
      		      (const_int 0)
      		      (const_int 1)))]
      
      This value (tested only during final) uses the difference between
      the INSN_ADDRESSES of operand 2 and insn_current_reference_address
      to calculate a conservatively-correct estimate of the branch distance.
      It takes into account the worst-case gap due to alignment, whereas
      a direct comparison of INSN_ADDRESSES would give an unreliable,
      optimistic result.
      
      2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* final.c (final_1): Set insn_last_address as well as
      	insn_current_address.
      
      From-SVN: r259267
      Richard Sandiford committed
    • [explow] PR target/85173: validize memory before passing it on to target probe_stack · 5c35bc3e
      In this PR the expansion code emits an invalid memory address for the stack probe, which the backend fails to recognise.
      The address is created explicitly in anti_adjust_stack_and_probe_stack_clash in explow.c and passed down to gen_probe_stack
      without any validation in emit_stack_probe.
      
      This patch fixes the ICE by calling validize_mem on the memory location before passing it down to the target.
      Jakub pointed out that we also want to create valid addresses for the probe_stack_address case, so this patch
      creates an expand operand and legitimizes it before passing it down to the probe_stack_address expander.
      
      This patch passes bootstrap and testing on arm-none-linux-gnueabihf and aarch64-none-linux-gnu
      and ppc64le-redhat-linux on gcc112 in the compile farm.
      
      	PR target/85173
      	* explow.c (emit_stack_probe): Call validize_mem on memory location
      	before passing it to gen_probe_stack.  Create address operand and
      	legitimize it for the probe_stack_address case.
      
      	* gcc.target/arm/pr85173.c: New test.
      
      From-SVN: r259266
      Kyrylo Tkachov committed
    • Be more carefull about DECL merging in LTO (PR lto/85248). · 8d96e546
      2018-04-10  Richard Biener  <rguenther@suse.de>
      	    Martin Liska  <mliska@suse.cz>
      
      	PR lto/85248
      	* lto-symtab.c (lto_symtab_merge_p): Handle noreturn attribute.
      2018-04-10  Jakub Jelinek  <jakub@redhat.com>
      
      	PR lto/85248
      	* gcc.dg/lto/pr85248_0.c: New test.
      	* gcc.dg/lto/pr85248_1.c: New test.
      
      From-SVN: r259265
      Martin Liska committed
    • re PR lto/85078 (LTO ICE: tree check: expected tree that contains 'decl minimal'… · c1b8f25d
      re PR lto/85078 (LTO ICE: tree check: expected tree that contains 'decl minimal' structure, have 'identifier_node' in decl_mangling_context, at cp/mangle.c:878)
      
      
      	PR lto/85078
      	* ipa-devirt.c (rebuild_type_inheritance-hash): New.
      	* ipa-utils.h (rebuild_type_inheritance-hash): Declare.
      	* tree.c (free_lang_data_in_type): Fix handling of binfos;
      	walk basetypes.
      	(free_lang_data): Rebuild type inheritance graph.
      	* g++.dg/torture/pr85078.C: New.
      
      From-SVN: r259264
      Jan Hubicka committed
    • Daily bump. · f518da46
      From-SVN: r259263
      GCC Administrator committed
  3. 09 Apr, 2018 4 commits