Commit Graph

182297 Commits

Author SHA1 Message Date
Nathan Sidwell
4be6c4e2a4 libcody: fix --enable-checking=... [PR 98311]
The -enable-checking configure code in libcody didn't play well with
us.  This just uses libcpp's configurey for that piece.

	libcody/
	* configure.ac: Use libcpp's enable-checking code.
	* configure: Rebuilt.
2020-12-16 06:20:20 -08:00
Nathan Sidwell
6d972f5183 libcody: More dashism
There were still some dash-killing uses of +=.  Fixed thusly.

	* config.m4: Replace V+="..." with V="$V..."
	* configure: Rebuilt.
2020-12-16 06:03:38 -08:00
Nathan Sidwell
c1ea7c68ef c++: Fix detailed-mem-stat breakage
module.cc has a static initializer that ends up in a circular
dependency when detailed mem stats are enabled.  This removes the need
for that initializer to be dynamic, and we punt to the lazy
initializing we already had inside the object in question anyway.  At
the cost of an additional indirection.

	gcc/cp/
	* module.cc (loc_spans): Make spans a pointer, not inline.
	Adjust all accesses.
2020-12-16 05:55:38 -08:00
H.J. Lu
151d1347c9 Require .init_array/.fini_array support for SHF_GNU_RETAIN
Since SHF_GNU_RETAIN support doesn't work for crtstuff.c which switches
the output section directly with asm statement:

---
static void __attribute__((used))
__do_global_dtors_aux (void)
{
  static _Bool completed;

  if (__builtin_expect (completed, 0))
    return;
  completed = 1;
}

static void __attribute__((__used__))
call___do_global_dtors_aux (void)
{
  asm ("\t.section\t.fini");
  __do_global_dtors_aux ();
  asm ("\t.section\t.text");
}
---

use SHF_GNU_RETAIN only if .init_array/.fini_array section is supported.

gcc/

	PR target/98146
	* defaults.h (SUPPORTS_SHF_GNU_RETAIN): New.
	* varasm.c (get_section): Replace HAVE_GAS_SHF_GNU_RETAIN with
	SUPPORTS_SHF_GNU_RETAIN.
	(resolve_unique_section): Likewise.
	(get_variable_section): Likewise.
	(switch_to_section): Likewise.

gcc/testsuite/

	PR target/98146
	* lib/target-supports.exp
	(check_effective_target_R_flag_in_section): Also check
	HAVE_INITFINI_ARRAY_SUPPORT != 0.
2020-12-16 05:42:08 -08:00
H.J. Lu
2a97602060 Warn used and not used symbols in section with the same name
When SECTION_RETAIN is used, issue a warning when a symbol without used
attribute and a symbol with used attribute are placed in the section with
the same name, like

int __attribute__((used,section(".data.foo"))) foo2 = 2;
int __attribute__((section(".data.foo"))) foo1 = 1;

since assembler will put them in different sections with the same section
name.

gcc/

	PR target/98146
	* varasm.c (switch_to_section): Warn when a symbol without used
	attribute and a symbol with used attribute are placed in the
	section with the same name.

gcc/testsuite/

	PR target/98146
	* c-c++-common/attr-used-5.c: Updated.
	* c-c++-common/attr-used-6.c: Likewise.
	* c-c++-common/attr-used-7.c: Likewise.
	* c-c++-common/attr-used-8.c: Likewise.
2020-12-16 05:40:57 -08:00
H.J. Lu
6175383249 Switch to a new section if the SECTION_RETAIN bit doesn't match
When definitions marked with used attribute and unmarked definitions are
placed in the section with the same name, switch to a new section if the
SECTION_RETAIN bit doesn't match.

gcc/

	PR target/98146
	* output.h (switch_to_section): Add a tree argument, default to
	nullptr.
	* varasm.c (get_section): If the SECTION_RETAIN bit doesn't match,
	return and switch to a new section later.
	(assemble_start_function): Pass decl to switch_to_section.
	(assemble_variable): Likewise.
	(switch_to_section): If the SECTION_RETAIN bit doesn't match,
	switch to a new section.

gcc/testsuite/

	PR target/98146
	* c-c++-common/attr-used-5.c: New test.
	* c-c++-common/attr-used-6.c: Likewise.
	* c-c++-common/attr-used-7.c: Likewise.
	* c-c++-common/attr-used-8.c: Likewise.
	* c-c++-common/attr-used-9.c: Likewise.
2020-12-16 05:40:57 -08:00
Jonathan Wakely
ab9bd93271 libstdc++: Fix errors from Library Fundamentals TS headers in C++11 [PR 98319]
Currently the <experimental/random>, <experimental/source_location> and
<experimental/utility> headers can be included in C++98 and C++11 modes,
but gives errors. With this change they can be included, but define
nothing.

libstdc++-v3/ChangeLog:

	PR libstdc++/98319
	* include/experimental/random: Only define contents for C++14
	and later.
	* include/experimental/source_location: Likewise.
	* include/experimental/utility: Likewise.
	* testsuite/experimental/feat-lib-fund.cc: Include all LFTS
	headers that are present. Allow test to run for all modes.
2020-12-16 13:37:17 +00:00
Jonathan Wakely
3cee0c6562 libstdc++: Add performance test for atomic_flag [PR 46447]
This adds a test to compare the performance of std::atomic_flag with
similar operations on std::atomic_uchar and std::atomic_int.

libstdc++-v3/ChangeLog:

	PR libstdc++/46447
	* testsuite/performance/29_atomics/atomic_flag.cc: New test.
2020-12-16 13:36:02 +00:00
Jonathan Wakely
a2c2eec183 libstdc++: Test errno macros directly, not via autoconf [PR 93151]
This fixes a bug caused by a mismatch between the macros defined by
<errno.h> when GCC is built and the macros defined by <errno.h> when
users include <system_error>. If the user code is compiled with
_XOPEN_SOURCE defined to 500 or 600, Darwin suppresses the
ENOTRECOVERABLE and EOWNERDEAD macros, which are not defined by SUSv3
(aka POSIX.1-2001).

Since POSIX requires the errno macros to be macros (and not variables or
enumerators) we can just test for them directly using the preprocessor.
That means that <system_error> will match what is actuallydefined when
it's included, not what was defined when GCC was built. With that change
there is no need for the GLIBCXX_CHECK_SYSTEM_ERROR configure checks and
they can be removed.

libstdc++-v3/ChangeLog:

	PR libstdc++/93151
	* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Remove.
	* configure.ac: Regenerate.
	* config/os/generic/error_constants.h: Test POSIX errno macros
	directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
	* testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc:
	Likewise.
	* testsuite/19_diagnostics/headers/system_error/93151.cc: New
	test.
2020-12-16 13:36:02 +00:00
Nathan Sidwell
4d8476b05d c++tools: Fix (an) install issue
This fixes installers that don't understand -p.

	c++tools/
	* Makefile.in (install): Do not use -p, use mkinstalldirs.
	(clean): Fix typo.
2020-12-16 05:19:06 -08:00
Nathan Sidwell
6ff747f023 c++: Fix (some) solaris breakage
Solaris' sys/socket uses the poisoned bcopy identifier, so we must
preemptively copy a bit of cody's inclusion logic to get it earlier.

	gcc/cp/
	* mapper-client.cc: Include sys/socket.h before system.h.
2020-12-16 05:18:39 -08:00
Arnaud Charlet
1c4aefb681 [Ada] Code cleanup: rename ALI.Scope
gcc/ada/

	* ali.ads, ali.adb, bindo-writers.adb, lib-writ.adb (Scope):
	Renamed to IS_Scope.
2020-12-16 08:01:05 -05:00
Joffrey Huguet
571d3fb1f4 [Ada] Add contracts to Ada.Strings.Fixed
gcc/ada/

	* libgnat/a-strfix.ads: Add postconditions and contract cases to
	subprograms.
2020-12-16 08:01:04 -05:00
Ed Schonberg
d1d0c4c800 [Ada] Handle iterator filters on loop specifications over containers
gcc/ada/

	* sem_ch5.adb (Analyze_Iterator_Specification): If iterator
	filter is present, preanalyze filter without expansion.
	(Analyze_Loop_Parameter_Specification): When
	loop_Parameter_Specification is rewritten as
	Iterator_Specification, transfer Iterator_Filter if present.
2020-12-16 08:01:04 -05:00
Doug Rupp
aa44eaca60 [Ada] armhf-linux: symbolic tracebacks
gcc/ada/

	* libgnat/s-objrea.ads (Object_Arch): Add ARM enum
	* libgnat/s-objrea.adb (Initialize): Add EM_ARM case.
	(Read_Address): Add ARM case to 32bit read.
	* Makefile.rtl: Add trasym units to the runtime for armhf-linux.
2020-12-16 08:01:04 -05:00
Dmitriy Anisimkov
29cd42e019 [Ada] Fix memory leak in GNAT.Expect.Non_Blocking_Spawn on Windows
gcc/ada/

	* libgnat/g-expect.adb (Non_Blocking_Spawn): Deallocate elements
	on Arg_List after calling Set_Up_Child_Communications.
2020-12-16 08:01:04 -05:00
Piotr Trojanek
64f4351d83 [Ada] Remove inconsistent colons in messages for Ada 83 violations
gcc/ada/

	* par-ch3.adb (P_Modular_Type_Definition): Remove colon from
	error message.
	* sem_ch11.adb (Check_Duplication): Likewise.
	* sem_ch3.adb (Derived_Type_Declaration): Likewise.
2020-12-16 08:01:03 -05:00
Piotr Trojanek
027ed68ca0 [Ada] Refine types of variables for parsing formal object declarations
gcc/ada/

	* par-ch12.adb (P_Formal_Object_Declarations): Refine types to
	Pos.
2020-12-16 08:01:03 -05:00
Piotr Trojanek
55337de847 [Ada] Fix typo in checks for implementation defined units
gcc/ada/

	* impunit.adb (Not_Impl_Defined_Unit): Fix typo in iteration
	over Non_Imp_File_Names_12 array.
2020-12-16 08:01:03 -05:00
Piotr Trojanek
2c623ed86a [Ada] Simplify membership tests with N_Delay_Statement subtype
gcc/ada/

	* exp_ch9.adb, sem_warn.adb: Simplify membership test.
2020-12-16 08:01:03 -05:00
Piotr Trojanek
612c48b13b [Ada] Simplify membership tests with N_Subprogram_Call subtype
gcc/ada/

	* exp_ch6.adb, exp_util.adb, sem_ch4.adb, sem_disp.adb,
	sem_elab.adb: Simplify membership test.
2020-12-16 08:01:02 -05:00
Eric Botcazou
1053ff8a3a [Ada] Fix glitch in comment of System.Powten_Table
gcc/ada/

	* libgnat/s-powtab.ads (Maxpow): Use explicit formula in comment.
2020-12-16 08:01:02 -05:00
Philippe Gil
61c91059b9 [Ada] Fix possible uninitialized ATCB component use
gcc/ada/

	* libgnarl/s-tporft.adb (Register_Foreign_Thread): Set
	Global_Task_Lock_Nesting before using allocator.
2020-12-16 08:01:02 -05:00
Eric Botcazou
e8070c83ab [Ada] Avoid artificial underflow in System.Val_Real
gcc/ada/

	* libgnat/s-valrea.adb (Maxexp32): New constant array.
	(Maxexp64): Likewise.
	(Maxexp80): Likewise.
	(Integer_to_Real): New local constants Maxexp and B.
	When the exponent is too negative, do the divison in two steps.
2020-12-16 08:01:01 -05:00
Piotr Trojanek
a0d40c5c32 [Ada] Fix integer-vs-float errors in example for Test_Case pragma
gcc/ada/

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Test_Case): Change integer to float literals.
	* gnat_rm.texi: Regenerate.
2020-12-16 08:01:01 -05:00
Piotr Trojanek
bee916bcc7 [Ada] Reject junk syntax for Contract_Cases/Test_Case/Subprogram_Variant
gcc/ada/

	* sem_ch13.adb (Analyze_Aspect_Specifications): Add a codefix
	for extra parentheses around aspect Annotate expression; reject
	"(null record)" aggregate and extra parentheses around aspect
	Test_Case expression.
	* sem_prag.adb (Analyze_Pragma): Reject "null", "(null record)"
	and extra parentheses around pragma Contract_Cases; likewise for
	pragma Subprogram_Variant.
2020-12-16 08:01:01 -05:00
Dmitriy Anisimkov
be19b8662b [Ada] Fix gmem.out corruption by GNAT.Expect
gcc/ada/

	* adaint.h (__gnat_in_child_after_fork): New flag to express
	child process side after fork call.
	* adaint.c (__gnat_portable_spawn): Set flag
	__gnat_in_child_after_fork.
	* expect.c (__gnat_expect_fork): Set __gnat_in_child_after_fork
	to one on child side.
	* libgnat/memtrack.adb
	(In_Child_After_Fork): Flag to disable memory tracking.
	(Allow_Trace): New routine defining if memory should be tracked.
	(Alloc, Realloc, Free): Use Allow_Trace in "if" condition
	instead of First_Call.
2020-12-16 08:01:01 -05:00
Yannick Moy
c507c83b32 [Ada] Mark generic body outside of SPARK
gcc/ada/

	* libgnat/a-tifiio.adb: Mark body not in SPARK.
	* libgnat/a-tifiio.ads: Mark spec in SPARK.
	* libgnat/a-tifiio__128.adb: Mark body not in SPARK.
2020-12-16 08:01:00 -05:00
Eric Botcazou
94117322e6 [Ada] Another small adjustment to System.Value_R
gcc/ada/

	* libgnat/s-valuer.adb (Scan_Decimal_Digits): Tweak overflow test.
	(Scan_Integral_Digits): Likewise.
2020-12-16 08:00:59 -05:00
Pascal Obry
cbe22e189a [Ada] Add some OS constants to control serial port
gcc/ada/

	* s-oscons-tmplt.c: Add some OS constants.
2020-12-16 08:00:58 -05:00
Jakub Jelinek
cd676dfa57 bswap: Handle vector CONSTRUCTORs [PR96239]
The following patch teaches the bswap pass to handle for small (2/4/8 byte
long) vectors a CONSTRUCTOR by determining if the bytes of the constructor
come from non-vector sources and are either nop or bswap and changing the
CONSTRUCTOR in that case to VIEW_CONVERT_EXPR from scalar integer to
the vector type.

Unfortunately, as I found after the patch was written, due to pass ordering
this doesn't really fix the original testcase, just the one I wrote,
because both loop and slp vectorization is done only after the bswap pass.
A possible way out of that would be to perform just this particular bswap
optimization (i.e. for CONSTRUCTOR assignments with integral vector types
call find_bswap_or_nop and bswap_replace if successful) also during the
store merging pass, it isn't really a store, but the store merging pass
already performs bswapping when handling store, so it wouldn't be that big
hack.  What do you think?

2020-12-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96239
	* gimple-ssa-store-merging.c (find_bswap_or_nop): Handle a vector
	CONSTRUCTOR.
	(bswap_replace): Likewise.

	* gcc.dg/pr96239.c: New test.
2020-12-16 13:08:07 +01:00
Martin Liska
eece52b53b opts: Remove all usages of Report keyword.
gcc/brig/ChangeLog:

	* lang.opt: Remove usage of Report.

gcc/c-family/ChangeLog:

	* c.opt: Remove usage of Report.

gcc/ChangeLog:

	* common.opt: Remove usage of Report.
	* config/aarch64/aarch64.opt: Ditto.
	* config/alpha/alpha.opt: Ditto.
	* config/arc/arc.opt: Ditto.
	* config/arm/arm.opt: Ditto.
	* config/avr/avr.opt: Ditto.
	* config/bfin/bfin.opt: Ditto.
	* config/bpf/bpf.opt: Ditto.
	* config/c6x/c6x.opt: Ditto.
	* config/cr16/cr16.opt: Ditto.
	* config/cris/cris.opt: Ditto.
	* config/cris/elf.opt: Ditto.
	* config/csky/csky.opt: Ditto.
	* config/darwin.opt: Ditto.
	* config/fr30/fr30.opt: Ditto.
	* config/frv/frv.opt: Ditto.
	* config/ft32/ft32.opt: Ditto.
	* config/gcn/gcn.opt: Ditto.
	* config/i386/cygming.opt: Ditto.
	* config/i386/i386.opt: Ditto.
	* config/ia64/ia64.opt: Ditto.
	* config/ia64/ilp32.opt: Ditto.
	* config/linux-android.opt: Ditto.
	* config/linux.opt: Ditto.
	* config/lm32/lm32.opt: Ditto.
	* config/m32r/m32r.opt: Ditto.
	* config/m68k/m68k.opt: Ditto.
	* config/mcore/mcore.opt: Ditto.
	* config/microblaze/microblaze.opt: Ditto.
	* config/mips/mips.opt: Ditto.
	* config/mmix/mmix.opt: Ditto.
	* config/mn10300/mn10300.opt: Ditto.
	* config/moxie/moxie.opt: Ditto.
	* config/msp430/msp430.opt: Ditto.
	* config/nds32/nds32.opt: Ditto.
	* config/nios2/elf.opt: Ditto.
	* config/nios2/nios2.opt: Ditto.
	* config/nvptx/nvptx.opt: Ditto.
	* config/pa/pa.opt: Ditto.
	* config/pdp11/pdp11.opt: Ditto.
	* config/pru/pru.opt: Ditto.
	* config/riscv/riscv.opt: Ditto.
	* config/rl78/rl78.opt: Ditto.
	* config/rs6000/aix64.opt: Ditto.
	* config/rs6000/linux64.opt: Ditto.
	* config/rs6000/rs6000.opt: Ditto.
	* config/rs6000/sysv4.opt: Ditto.
	* config/rx/elf.opt: Ditto.
	* config/rx/rx.opt: Ditto.
	* config/s390/s390.opt: Ditto.
	* config/s390/tpf.opt: Ditto.
	* config/sh/sh.opt: Ditto.
	* config/sol2.opt: Ditto.
	* config/sparc/long-double-switch.opt: Ditto.
	* config/sparc/sparc.opt: Ditto.
	* config/tilegx/tilegx.opt: Ditto.
	* config/tilepro/tilepro.opt: Ditto.
	* config/v850/v850.opt: Ditto.
	* config/visium/visium.opt: Ditto.
	* config/vms/vms.opt: Ditto.
	* config/vxworks.opt: Ditto.
	* config/xtensa/xtensa.opt: Ditto.

gcc/lto/ChangeLog:

	* lang.opt: Remove usage of Report.
2020-12-16 12:44:19 +01:00
Martin Liska
5137d1ae6a Remove Report keyword for options
Since g:7caa49706316e650fb67719e1a1bf3a35054b685 the option is ignored
as we print used command line for -fverbose-asm output.

gcc/ChangeLog:

	* doc/options.texi: Remove Report keyword.
	* opt-functions.awk: Print error when Report keyword
	is used.
	* optc-gen.awk: Do not handle Report keyword.
	* opts.h (struct cl_option): Remove cl_report bitfield flag.
2020-12-16 12:43:56 +01:00
Martin Liska
8833eab446 Add -Wtsan.
gcc/ChangeLog:

	PR sanitizer/97868
	* common.opt: Add new warning -Wtsan.
	* doc/invoke.texi: Likewise.
	* tsan.c (instrument_builtin_call): Warn users about unsupported
	std::atomic_thread_fence.

gcc/testsuite/ChangeLog:

	PR sanitizer/97868
	* gcc.dg/tsan/atomic-fence.c: New test.
2020-12-16 10:25:32 +01:00
Martin Liska
5c5eb7e487 options: fix integer overflow
gcc/ChangeLog:

	PR rtl-optimization/98271
	PR rtl-optimization/98276
	PR tree-optimization/98279
	* opts-common.c (set_option): Do not allow overflow for integer
	arguments.

gcc/testsuite/ChangeLog:

	PR rtl-optimization/98271
	PR rtl-optimization/98276
	PR tree-optimization/98279
	* gcc.dg/pr98271.c: New test.
2020-12-16 10:20:45 +01:00
Eric Botcazou
61e3c180ad Fix PR tree-optimization/98272
This fixes the precision mismatch introduced by the previous change.

gcc/ChangeLog:
	PR tree-optimization/98272
	* tree-switch-conversion.c (bit_test_cluster::emit): When finding
	out whether the entry test can be merged in the bit test, do the
	computation using the type of the index expression.

gcc/testsuite/ChangeLog:
	* gcc.dg/pr98272.c: New test.
2020-12-16 09:41:47 +01:00
Kewen Lin
31008a8bb3 rs6000: Use subreg for QI/HI vector init
This patch is to use paradoxical subreg instead of
zero_extend for promoting QI/HI to SI/DI when we
want to construct one vector with these modes.
Since we do the gpr->vsx movement and vector merge
or pack later, the high part is useless and safe to
use paradoxical subreg.  It can avoid useless rlwinms
generated for signed cases.

Bootstrapped/regtested on powerpc64le-linux-gnu P9.

gcc/ChangeLog:

	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
	paradoxical subreg instead of zero_extend for QI/HI promotion.

gcc/testsuite/ChangeLog:

	* gcc.target/powerpc/pr96933-1.c: Adjusted to check no rlwinm.
	* gcc.target/powerpc/pr96933-2.c: Likewise.
2020-12-16 02:12:08 -06:00
Prathamesh Kulkarni
a3bac40469 arm: Replace calls to __builtin_vcgt* by <,> in arm_neon.h [PR66791]
gcc/
2020-12-16  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/66791
	* config/arm/arm_neon.h: Replace calls to __builtin_vcgt* by
	<, > operators in vclt and vcgt intrinsics respectively.
	* config/arm/arm_neon_builtins.def: Remove entry for
	vcgt and vcgtu.
2020-12-16 13:16:25 +05:30
Prathamesh Kulkarni
9eeeef2877 arm: Replace calls to __builtin_vneg* by - in arm_neon.h [PR66791]
gcc/
2020-12-16  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/66791
	* config/arm/arm_neon.h: Replace calls to __builtin_vneg* by - operator
	in vneg intrinsics.
	* config/arm/arm_neon_builtins.def: Remove entry for vneg.
2020-12-16 11:55:52 +05:30
Prathamesh Kulkarni
cff6dac28a arm: Replace calls to __builtin_vcreate* in arm_neon.h [PR66791]
gcc/
2020-12-16  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/66791
	* config/arm/arm_neon.h: Replace calls to __builtin_vcreate*
	in vcreate intrinsics.
	* config/arm/arm_neon_builtins.def: Remove entry for vcreate.
2020-12-16 11:32:25 +05:30
GCC Administrator
6e9d865119 Daily bump. 2020-12-16 00:16:31 +00:00
Marek Polacek
42181708da c++: Remove dg-ice in constexpr-52830.C [PR52830]
It turned out that r11-5942 fixed this old PR, and it was detected
by one of the few dg-ice tests -- exactly the point of them!  Now
the PR won't be opened until someone notices that it'd been fixed.
The patch failed to remove the dg-ice though, so now it XPASSes.  Fixing
this now.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp0x/constexpr-52830.C: Remove dg-ice.
2020-12-15 18:18:23 -05:00
Marek Polacek
65eac818db cody: Remove unused variable.
libcody/ChangeLog:

	* buffer.cc (MessageBuffer::Lex): Remove unused variable.
2020-12-15 17:04:17 -05:00
Nathan Sidwell
4f0c800ba6 libcody: Work with older gccs
Older GCCs don't have all the exciting options we have now.  let's just
turn them off.

	libcody/
	* Makefile.in: Disable some flags.
2020-12-15 13:48:15 -08:00
Nathan Sidwell
3d5e3eb407 gcc_update update
I missed adding these two configure files.

	contrib/
	* gcc_update: Add c++tools & libcody.
2020-12-15 13:48:00 -08:00
Jakub Jelinek
d41b097350 match.pd: Optimize X / bool_range_Y to X [PR96094]
When the divisor is bool or has [0, 1] range, as division by
0 is UB, the only remaining option in valid programs is division by 1,
so we can optimize X / bool_range_Y into X.

2020-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96094
	* match.pd (X / bool_range_Y -> X): New simplification.

	* gcc.dg/tree-ssa/pr96094.c: New test.
2020-12-15 22:43:46 +01:00
Iain Buclaw
36c9a3fe3f d: Fix ICE in gimplify_expr, at gimplify.c (PR98277)
The DMD front-end shouldn't, but can sometimes leak manifest constants
in the AST passed to the code generator.  To prevent this being an
issue, the setting of DECL_INITIAL has been moved to the point where the
CONST_DECL is used, rather than in the declaration handler.

gcc/d/ChangeLog:

	PR d/98277
	* decl.cc (DeclVisitor::visit (VarDeclaration *)): Move setting of
	DECL_INITIAL for manifest constants to ...
	(get_symbol_decl): ... here.

gcc/testsuite/ChangeLog:

	PR d/98277
	* gdc.dg/pr98277.d: New test.
2020-12-15 22:20:35 +01:00
Ian Lance Taylor
34c7d3d3b2 Go testsuite: update bugs for recent change
This matches changes in 788d204885.
2020-12-15 13:12:17 -08:00
Ian Lance Taylor
5aba026671 compiler: correct grammar in error message
For golang/go#43200

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278452
2020-12-15 13:07:54 -08:00
Ian Lance Taylor
788d204885 compiler: avoid knock-on errors from invalid interfaces
The test case for this is issue11614.go.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278192
2020-12-15 13:00:54 -08:00