1. 07 Feb, 2019 15 commits
    • re PR fortran/52789 (gfortran sets -Wunused-parameter in the C sense as well as the Fortran sense) · 2a88974c
      2019-02-07  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	PR fortran/52789
      	* gfortran.dg/wunused-parameter_2.f90: New test.
      
      From-SVN: r268656
      Dominique d'Humieres committed
    • Only run on arm architecture · accd3cd6
      My previous patch failed to only run an arm test on arm architecture.
      This adds that condition to the test.
      
      gcc/testsuite/ChangeLog:
      
      2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	* gcc.dg/rtl/arm/ldrd-peepholes.c: Only run on arm
      
      From-SVN: r268655
      Matthew Malcomson committed
    • S/390: Fix the vec_xl / vec_xst style builtins · 993f9e7d
      This patch fixes several problems with the vec_xl/vec_xst builtins:
      
      - vec_xl/vec_xst needs to use the alignment of the scalar memory
        operand for the vector type reference. This is required to emit the
        proper vl/vst alignment hints.
      - vec_xl / vec_xld2 / vec_xlw4 should accept const pointer source operands
      - vec_xlw4 / vec_xstw4 needs to accept float memory operands
      
      gcc/ChangeLog:
      
      2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390-builtin-types.def: Add new types.
      	* config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
      	(s390_vec_xlw4): Make the memory operand into a const pointer.
      	(s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
      	float.
      	* config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
      	a new vector type with the alignment of the scalar memory operand.
      
      gcc/testsuite/ChangeLog:
      
      2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/xl-xst-align-1.c: New test.
      	* gcc.target/s390/zvector/xl-xst-align-2.c: New test.
      
      From-SVN: r268651
      Andreas Krebbel committed
    • [Patch] [arm] Fix 88714, Arm LDRD/STRD peepholes. · c272bbda
      These peepholes match a pair of SImode loads or stores that can be
      implemented with a single LDRD or STRD instruction.
      When compiling for TARGET_ARM, these peepholes originally created a set
      pattern in DI mode to be caught by movdi patterns.
      
      This approach failed to take into account the possibility that the two
      matched insns operated on memory with different aliasing information.
      The peepholes lost the aliasing information on one of the insns, which
      could then cause the scheduler to make an invalid transformation.
      
      This patch changes the peepholes so they generate a PARALLEL expression
      of the two relevant loads or stores, which means the aliasing
      information of both is kept.  Such a PARALLEL pattern is what the
      peepholes currently produce for TARGET_THUMB2.
      
      In order to match these new insn patterns, we add two new define_insn's.  These
      define_insn's use the same checks as the peepholes to find valid insns.
      
      Note that the patterns now created by the peepholes for LDRD and STRD
      are very similar to those created by the peepholes for LDM and STM.
      Many patterns could be matched by the LDM and STM define_insns, which
      means we rely on the order the define_insn patterns are defined in the
      machine description, with those for LDRD/STRD defined before those for
      LDM/STM.
      
      The difference between the peepholes for LDRD/STRD and those for LDM/STM
      are mainly that those for LDRD/STRD have some logic to ensure that the
      two registers are consecutive and the first one is even.
      
      Bootstrapped and regtested on arm-none-linux-gnu.
      Demonstrated fix of bug 88714 by bootstrapping on armv7l.
      
      
      gcc/ChangeLog:
      
      2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
      	    Jakub Jelinek  <jakub@redhat.com>
      
      	PR bootstrap/88714
      	* config/arm/arm-protos.h (valid_operands_ldrd_strd,
      	arm_count_ldrdstrd_insns): New declarations.
      	* config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
      	MINUS.
      	(valid_operands_ldrd_strd): New function.
      	(arm_count_ldrdstrd_insns): New function.
      	* config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
      	sets instead of single DImode set and define new insns to match this.
      
      gcc/testsuite/ChangeLog:
      
      2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
      	    Jakub Jelinek  <jakub@redhat.com>
      
      	PR bootstrap/88714
      	* gcc.c-torture/execute/pr88714.c: New test.
      	* gcc.dg/rtl/arm/ldrd-peepholes.c: New test.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r268644
      Matthew Malcomson committed
    • AArch64: Fix initializer for array so it's a C initializer instead of C++. · 5eb9ac1e
      This fixes a missing = that would cause the array initializer to be a C++
      initializer instead of a C one, causing a warning when building with pre-C++11
      standards compiler.
      
      Committed under the GCC obvious rules.
      
      gcc/ChangeLog:
      
      	* config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
      	Make it a C initializer.
      
      From-SVN: r268614
      Tamar Christina committed
    • Arm: Fix NEON REG to REG reload failures. (PR/target 88850) · 4fcb52c4
      We currently return cost 2 for NEON REG to REG moves, which would be incorrect
      for 64 bit moves.  We currently don't have a pattern for this in the neon_move
      alternatives because this is a bit of a special case.  We would almost never
      want it to use this r -> r pattern unless it really has no choice.
      
      As such we add a new neon r -> r move pattern but also hide it from being used
      to determine register preferences and also disparage it during LRA.
      
      gcc/ChangeLog:
      
      	PR/target 88850
      	* config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
      
      gcc/testsuite/ChangeLog:
      
      	PR/target 88850
      	* gcc.target/arm/pr88850.c: New test.
      
      From-SVN: r268612
      Tamar Christina committed
    • [arm] Use neon_dot_q type for 128-bit V[US]DOT instructions where appropriate · 51e6029f
      For the Dot Product instructions we have the scheduling types neon_dot and neon_dot_q for the 128-bit versions.
      It seems that we're only using the former though, not assigning the neon_dot_q type anywhere.
      
      This patch fixes that by adding the <q> mode attribute suffix to the type, similar to how we do it for other
      types in neon.md. 
      
      	* config/arm/neon.md (neon_<sup>dot<vsi2qi>):
      	Use neon_dot<q> for type.
      	(neon_<sup>dot_lane<vsi2qi>): Likewise.
      
      From-SVN: r268611
      Kyrylo Tkachov committed
    • [AArch64] Use neon_dot_q type for 128-bit [US]DOT instructions where appropriate · 3ed8fcfa
      For the Dot Product instructions we have the scheduling types neon_dot and neon_dot_q for the 128-bit versions.
      It seems that we're only using the former though, not assigning the neon_dot_q type anywhere.
      
      This patch fixes that by adding the <q> mode attribute suffix to the type, similar to how we do it for other
      types in aarch64-simd.md.
      
      	* config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
      	Use neon_dot<q> for type.
      	(aarch64_<sur>dot_lane<vsi2qi>): Likewise.
      	(aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
      
      From-SVN: r268610
      Kyrylo Tkachov committed
    • [PR86218] handle ck_aggr in compare_ics in both and either conversion · dc51dece
      Because of rank compares, and checks for ck_list, we know that if we
      see user_conv_p or ck_list in ics1, we'll also see it in ics2.  This
      reasoning does not extend to ck_aggr, however, so we might have
      ck_aggr conversions starting both ics1 and ics2, which we handle
      correctly, or either, which we likely handle by crashing on whatever
      path we take depending on whether ck_aggr is in ics1 or ics2.
      
      We crash because, as we search the conversion sequences, we may very
      well fail to find what we are looking for, and reach the end of the
      sequence, which is unexpected in all paths.
      
      This patch arranges for us to take the same path when ck_aggr is in
      ics2 only that we would if it was in ics1 (regardless of ics2), and it
      deals with not finding the kind of conversion we look for there.
      
      I've changed the type of the literal constant in the testcase, so as
      to hopefully make it well-formed.  We'd fail to reject the narrowing
      conversion in the original testcase, but that's a separate bug.
      
      
      for  gcc/cp/ChangeLog
      
      	PR c++/86218
      	* call.c (compare_ics): Deal with ck_aggr in either cs.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/86218
      	* g++.dg/cpp0x/pr86218.C: New.
      
      From-SVN: r268606
      Alexandre Oliva committed
    • os, syscall: Hurd fixes for a couple of tests · 18591d3e
          
          Based on patch by Svante Signell.
          
          Reviewed-on: https://go-review.googlesource.com/c/161520
      
      From-SVN: r268605
      Ian Lance Taylor committed
    • os, net, crypto/x509: add hurd support · 4a3e2571
          
          Patch by Svante Signell.
          
          Reviewed-on: https://go-review.googlesource.com/c/161519
      
      From-SVN: r268604
      Ian Lance Taylor committed
    • syscall: add Hurd support · 4321f202
          
          Loosely based on a patch by Svante Signell.
          
          Reviewed-on: https://go-review.googlesource.com/c/161518
      
      From-SVN: r268603
      Ian Lance Taylor committed
    • internal/syscall/unix: add constants for hurd · 9fa4b2aa
          
          Patch by Svante Signell.
          
          Reviewed-on: https://go-review.googlesource.com/c/161517
      
      From-SVN: r268602
      Ian Lance Taylor committed
    • Daily bump. · 3a3dc1d3
      From-SVN: r268601
      GCC Administrator committed
  2. 06 Feb, 2019 18 commits
    • re PR rtl-optimization/89225 (LRA hang on ppc64le compiling glibc starting with r268404) · f8dc3fb2
      2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/89225
      	* lra-constaints.c (simplify_operand_subreg): Add subreg mode
      	sizes check.
      
      2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/89225
      	* gcc.target/powerpc/pr89225.c: New.
      
      From-SVN: r268597
      Vladimir Makarov committed
    • i386.c (ix86_expand_prologue): Emit a memory blockage after restoring registers… · a4f73f96
      i386.c (ix86_expand_prologue): Emit a memory blockage after restoring registers saved to allocate the frame on...
      
      	* config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
      	after restoring registers saved to allocate the frame on Windows.
      
      From-SVN: r268593
      Eric Botcazou committed
    • * eo.po: Update. · 2f2205e2
      From-SVN: r268592
      Joseph Myers committed
    • re PR go/89199 (libgo regression in implementation of CompareAndSwap functions… · 73fe55d7
      re PR go/89199 (libgo regression in implementation of CompareAndSwap functions resulting in intermittent testcase failures on ppc64le power9 after r268458)
      
      	PR go/89199
          sync/atomic: use strong form of atomic_compare_exchange_n
          
          In the recent change to use atomic_compare_exchange_n I thought we
          could use the weak form, which can spuriously fail. But that is not
          how it is implemented in the gc library, and it is not what the rest
          of the library expects.
          
          Thanks to Lynn Boger for identifying the problem.
          
          Fixes https://gcc.gnu.org/PR89199
          
          Reviewed-on: https://go-review.googlesource.com/c/161359
      
      From-SVN: r268591
      Ian Lance Taylor committed
    • re PR fortran/71860 ([OOP] ICE on pointing to null(mold), verify_gimple failed) · 16e2bcd5
      2019-02-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/71860
      	* gfortran.dg/null_10.f90: New test.
      
      From-SVN: r268590
      Thomas Koenig committed
    • Fix locations in conversion_null_warnings (PR c++/71302) · aa9dc193
      PR c++/71302 reports that g++ shows poor locations for
      -Wzero-as-null-pointer-constant for pointers in function calls,
      using the close parenthesis of the call, rather than showing the
      pertinent argument.
      
      This particular case was fixed in GCC 8, but regressed on trunk
      in r260973.
      
      This patch fixes the regression, and adds column numbers to the
      test cases (where they're correct) to avoid regressing them in the
      future.  There are still various places where the locations aren't
      correct, but fixing them isn't stage 4 material.
      
      gcc/cp/ChangeLog:
      	PR c++/71302
      	* call.c (get_location_for_expr_unwinding_for_system_header): New
      	function.
      	(conversion_null_warnings): Use it when getting locations for
      	EXPR, effectively adding a call to
      	get_location_for_expr_unwinding_for_system_header for
      	-Wconversion-null and making use of EXPR_LOCATION for
      	-Wzero-as-null-pointer-constant.
      
      gcc/testsuite/ChangeLog:
      	PR c++/71302
      	* g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C: Add expected
      	column numbers to dg-warning directives where they are correct.
      	* g++.dg/warn/Wzero-as-null-pointer-constant-5.C: Likewise.
      	* g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Likewise.
      	* g++.dg/warn/Wzero-as-null-pointer-constant-8.C: New test.
      
      From-SVN: r268589
      David Malcolm committed
    • Fix gcc.dg/debug/dwarf2/inline5.c with Solaris as (PR debug/87451) · d0307ff2
      	PR debug/87451
      	* gcc.dg/debug/dwarf2/inline5.c: Allow for non-comment before
      	"(DIE (0x[0-9a-f]*) DW_TAG_variable".
      	xfail scan-assembler-not with Solaris as.
      
      From-SVN: r268588
      Rainer Orth committed
    • * ru.po: Update. · d24b0ba3
      From-SVN: r268587
      Joseph Myers committed
    • PR libstdc++/89102 fix common_type<> and common_type<T> specializations · 373c726e
      This is a partial implementation of the revised std::common_type rules
      from P0435R1.
      
      	PR libstdc++/89102 (partial)
      	* include/std/type_traits (common_type<>): Define.
      	(common_type<T>): Derive from common_type<T, T>.
      	* testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
      	Test zero-length template argument list.
      	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
      	Test additional single argument cases.
      	* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
      	Adjust expected error.
      
      From-SVN: r268586
      Jonathan Wakely committed
    • vsx-vector-6.p7.c: Update instruction counts and target. · 12f82acc
      2019-02-06  Bill Seurer  <seurer@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/vsx-vector-6.p7.c: Update instruction
      	counts and target.
      	* gcc.target/powerpc/vsx-vector-6.p8.c: Update instruction
      	counts and target.
      	* gcc.target/powerpc/vsx-vector-6.p9.c: Update instruction
      	counts and target.
      
      From-SVN: r268585
      Bill Seurer committed
    • s-linux__x32.ads: Resync list of signals with s-linux.ads · b49fa5e0
      	* libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
      
      From-SVN: r268576
      Arnaud Charlet committed
    • re PR tree-optimization/89182 ([graphite] ICE in extract_affine, at graphite-sese-to-poly.c:280) · 124f4f57
      2019-02-06  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/89182
      	* graphite.h (cached_scalar_evolution_in_region): Declare.
      	* graphite.c (struct seir_cache_key): New.
      	(struct sese_scev_hash): Likewise.
      	(seir_cache): New global.
      	(cached_scalar_evolution_in_region): New function.
      	(graphite_transform_loops): Allocate and release seir_cache.
      	* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
      	cached_scalar_evolution_in_region.
      	* graphite-scop-detection.c (scop_detection::can_represent_loop):
      	Simplify.
      	(scop_detection::graphite_can_represent_expr: Use
      	cached_scalar_evolution_in_region.
      	(scop_detection::stmt_simple_for_scop_p): Likewise.
      	(find_params_in_bb): Likewise.
      	(gather_bbs::before_dom_children): Likewise.
      	* graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
      	(add_loop_constraints): Likewise.
      
      	* gfortran.dg/graphite/pr89182.f90: New testcase.
      
      From-SVN: r268575
      Richard Biener committed
    • re PR c/89211 (ICE in int_mode_for_mode, at stor-layout.c:403) · cfc30fd1
      	PR c/89211
      	* c-parser.c (c_parser_declaration_or_fndef): Don't update
      	DECL_ARGUMENTS of d if it has been defined already.  Use a single if
      	instead of 3 nested ifs.
      
      	* gcc.dg/pr89211.c: New test.
      
      From-SVN: r268574
      Jakub Jelinek committed
    • re PR middle-end/89210 (ICE tree check: expected integer_cst, have real_cst in… · 47635817
      re PR middle-end/89210 (ICE tree check: expected integer_cst, have real_cst in to_wide, at tree.h:5600)
      
      	PR middle-end/89210
      	* fold-const-call.c (fold_const_vec_convert): Pass true as last
      	operand to new_unary_operation only if both element types are integral
      	and it isn't a widening conversion.  Return NULL_TREE if
      	new_unary_operation failed.
      
      	* c-c++-common/builtin-convertvector-2.c: New test.
      
      From-SVN: r268573
      Jakub Jelinek committed
    • re PR go/89019 (LTO and gccgo cause ICE during free_lang_data) · ce4321c9
      gcc/go:
              PR go/89019
              * go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark
              placeholder structs as requiring structural equality.
              (Gcc_backend::set_placeholder_pointer_type): Propagate the
      	canonical type from the desired pointer type to the placeholder
      	pointer type.
      gcc/testsuite/:
              * lib/go-torture.exp: Test compiling with -flto.
      
      From-SVN: r268572
      Nikhil Benesch committed
    • Fix type of extern array declared in inner scope with outer initialization shadowed (PR c/88584). · fbe83e6b
      As reported in bug 88584, if you have a file-scope array with external
      linkage, initialized at file scope, and that array is shadowed at
      block scope, and is declared again with external linkage and an
      incomplete type in an inner scope, it is wrongly given a complete type
      in that inner scope when the correct C semantics give it an incomplete
      type (only the visible declarations contribute to the type in a given
      scope).
      
      In general, issues with the types of external linkage declarations
      being different in different scopes were addressed by my fixes for bug
      13801, for GCC 4.0.  In this case, however, the code in pushdecl
      dealing with giving declarations the right type in each scope works
      fine, and the type is subsequently modified by complete_array_type
      called from finish_decl: finish_decl is trying to complete an array
      type based on an initializer, but that's only correct for the original
      initialization at file scope, not for such a declaration in an inner
      scope (it's harmless but unnecessary in the case where the original
      declaration is still visible in the inner scope).  Thus, this patch
      changes finish_decl to stop this logic applying for such an external
      declaration in an inner scope.  (An erroneous attempt to include an
      initializer for an extern variable in an inner scope is diagnosed
      elsewhere.)
      
      This is a regression from GCC 3.4, which properly rejected the code in
      question (quite likely by accident).
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc/c:
      	PR c/88584
      	* c-decl.c (finish_decl): Do not complete array types for arrays
      	with external linkage not at file scope.
      
      gcc/testsuite:
      	PR c/88584
      	* gcc.dg/redecl-18.c: New test.
      
      From-SVN: r268571
      Joseph Myers committed
    • Daily bump. · e9f061bd
      From-SVN: r268570
      GCC Administrator committed
  3. 05 Feb, 2019 7 commits
    • Update .po files. · 4f2f8148
      gcc/po:
      	* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
      	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
      	zh_TW.po: Update.
      
      libcpp/po:
      	* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
      	id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
      	vi.po, zh_CN.po, zh_TW.po: Update.
      
      From-SVN: r268567
      Joseph Myers committed
    • PR libstdc++/89128 add deduction guides for container adaptors · 5bb89e0a
      	PR libstdc++/89128
      	* include/bits/stl_queue.h (queue, priority_queue): Add deduction
      	guides.
      	* include/bits/stl_stack.h (stack): Likewise.
      	* testsuite/23_containers/priority_queue/deduction.cc: New test.
      	* testsuite/23_containers/queue/deduction.cc: New test.
      	* testsuite/23_containers/stack/deduction.cc: New test.
      
      From-SVN: r268566
      Jonathan Wakely committed
    • re PR c++/89187 (ICE in initialize_argument_information, at calls.c:2023) · d397e394
      	PR c++/89187
      	* optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
      	PARM_DECLs of the thunk.
      	* lambda.c (maybe_add_lambda_conv_op): Likewise.
      
      	* g++.dg/opt/pr89187.C: New test.
      
      From-SVN: r268564
      Jakub Jelinek committed
    • libgccjit: introduce gcc_jit_context_add_driver_option · 216090cc
      gcc/jit/ChangeLog:
      2019-02-05  Andrea Corallo <andrea.corallo@arm.com>
      
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag.
      	* docs/topics/contexts.rst (Additional driver options): New
      	section.
      	* jit-playback.c (invoke_driver): Add call to append_driver_options.
      	* jit-recording.c: Within namespace gcc::jit...
      	(recording::context::~context): Free the optnames within
      	m_driver_options.
      	(recording::context::add_driver_option): New method.
      	(recording::context::append_driver_options): New method.
      	(recording::context::dump_reproducer_to_file): Add driver
      	options.
      	* jit-recording.h: Within namespace gcc::jit...
      	(recording::context::add_driver_option): New method.
      	(recording::context::append_driver_options): New method.
      	(recording::context::m_driver_options): New field.
      	* libgccjit++.h (gccjit::context::add_driver_option): New
      	method.
      	* libgccjit.c (gcc_jit_context_add_driver_option): New API
      	entrypoint.
      	* libgccjit.h (gcc_jit_context_add_driver_option): New API
      	entrypoint.
      	(LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New
      	macro.
      	* libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag.
      
      gcc/testsuite/ChangeLog:
      2019-02-05  Andrea Corallo <andrea.corallo@arm.com>
      
      	* jit.dg/add-driver-options-testlib.c: Add support file for
      	test-add-driver-options.c testcase.
      	* jit.dg/all-non-failing-tests.h: Add note about
      	test-add-driver-options.c
      	* jit.dg/jit.exp (jit-dg-test): Update to support
      	add-driver-options-testlib.c compilation.
      	* jit.dg/test-add-driver-options.c: New testcase.
      
      From-SVN: r268563
      Andrea Corallo committed
    • re PR rtl-optimization/11304 (Wrong code production with -fomit-frame-pointer) · 6fc4ecbc
      	PR rtl-optimization/11304
      	* gcc.target/i386/call-1.c (set_eax): Add "eax" clobber.
      	* gcc.target/i386/call-2.c: New test.
      
      From-SVN: r268562
      Jakub Jelinek committed
    • PR c++/89158 - by-value capture of constexpr variable broken. · 0d806438
      	* call.c (convert_like_real) <case ck_user>: Call mark_exp_read
      	instead of mark_rvalue_use.
      
      	* g++.dg/cpp0x/lambda/lambda-89158.C: New test.
      
      From-SVN: r268561
      Marek Polacek committed
    • compiler: check duplicate implicit indexes in slices/arrays · b81e1cd5
          
          Fixes golang/go#28186.
          
          Reviewed-on: https://go-review.googlesource.com/c/160832
      
      From-SVN: r268554
      Ian Lance Taylor committed