1. 10 Apr, 2018 17 commits
    • 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
  2. 09 Apr, 2018 22 commits
  3. 08 Apr, 2018 1 commit