1. 01 May, 2019 9 commits
    • runtime: persistentalloc and cache itabs · 1da37f43
          
          Previously, each time we do an interface conversion for which the
          method table is not known at compile time, we allocate a new
          method table.
          
          This CL ports the mechanism of itab caching from the gc runtime,
          adapted to our itab representation and method finding mechanism.
          With the cache, we reuse the same itab for the same (interface,
          concrete) type pair. This reduces allocations in interface
          conversions.
          
          Unlike the gc runtime, we don't prepopulate the cache with
          statically allocated itabs, as currently we don't have a way to
          find them. This means we don't deduplicate run-time allocated
          itabs with compile-time allocated ones. But that is not too bad
          -- it is just a cache anyway.
          
          As now itabs are never freed, it is also possible to drop the
          write barrier for writing the first word of an interface header.
          I'll leave this optimization for the future.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171617
      
      From-SVN: r270778
      Ian Lance Taylor committed
    • module.c (write_module): Initialize module_column before writing module to… · 9f3a481e
      module.c (write_module): Initialize module_column before writing module to ensure line break occurs at...
      
      * module.c (write_module): Initialize module_column before writing
      module to ensure line break occurs at correct column
      
      From-SVN: r270777
      Andrew Benson committed
    • re PR fortran/60144 (Misleading error message when missing "then" after "if" and "else if") · db9c3729
      2019-05-01 Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	PR fortran/60144
      	* match.c (gfc_match_parens): Change the location for missing ')'.
      	(gfc_match_if): Detect a missing '('. Remove the spurious named
      	constant error. Change the wording of some errors.
      	(gfc_match_else): Change the wording of an error.
      	(gfc_match_elseif): Detect a missing '('. Improve the matching
      	process to get a better syntax analysis.
      
      	PR fortran/60144
      	* gfortran.dg/block_name_2.f90: Adjust dg-error.
      	* gfortran.dg/dec_type_print_3.f90.f90: Likewise
      	* gfortran.dg/pr60144.f90: New test.
      
      From-SVN: r270776
      Dominique d'Humieres committed
    • re PR tree-optimization/88797 (Unneeded branch added when function is inlined… · d3640534
      re PR tree-optimization/88797 (Unneeded branch added when function is inlined (function runs faster if not inlined))
      
      	PR tree-optimization/88797
      	* gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
      	PHI feeds a conditional on the RHS of an assignment.
      
      	PR tree-optimization/88797
      	* g++.dg/tree-ssa/pr88797.C: New test.
      
      From-SVN: r270775
      Jeff Law committed
    • Update Solaris baselines for GCC 9.1 · 7ee7c293
      	* config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
      	* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
      	* config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
      	* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
      	* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
      	* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
      	Likewise.
      	* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
      	* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
      	Likewise.
      
      From-SVN: r270773
      Rainer Orth committed
    • [C++ PATCH] Simplify class member lookup · 9a54a0d9
      https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00004.html
      	gcc/cp/
      	* name-lookup.h (get_class_binding_direct): Change final arg to
      	bool.
      	(get_class_binding): Likewise.
      	* name-lookup.c (get_class_binding_direct): Replace TYPE_OR_FNS
      	arg with WANT_TYPE bool.  Simplify.
      	(get_class_binding): Adjust final arg.
      	* decl.c (reshape_init_class): Adjust get_class_binding calls.
      
      	gcc/testsuite/
      	* g++.dg/cpp0x/decltype9.C: Adjust expected diagnostics.
      
      From-SVN: r270765
      Nathan Sidwell committed
    • Daily bump. · fc2749e5
      From-SVN: r270763
      GCC Administrator committed
    • PR libstdc++/61761 fix std::proj for targets without C99 cproj · 4f75543d
      The current generic implementation of __complex_proj used when cproj is
      not available calculates the wrong projection, giving a different result
      than given by C99's cproj.
      
      When C99 cproj is not available but isinf and copysign are, use those to
      give correct results for float, double and long double. Otherwise, and
      for other specializations of std::complex, just use a generic version
      that returns its argument, and so doesn't support infinities.
      
      We might want to consider adding additional overloads of __complex_proj
      to support extended types such as _Float64x, _Float128 etc.
      
      	PR libstdc++/61761
      	* include/std/complex (__complex_proj): Return parameter unchanged.
      	[_GLIBCXX_USE_C99_COMPLEX] (__complex_proj): Change overloads for
      	floating-point types to take std::complex arguments.
      	[_GLIBCXX_USE_C99_MATH_TR1] (__complex_proj): Add overloads for
      	floating-point types.
      	* testsuite/26_numerics/complex/proj.cc: New test.
      
      From-SVN: r270759
      Jonathan Wakely committed
  2. 30 Apr, 2019 27 commits
  3. 29 Apr, 2019 4 commits