aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-12-16c++: Another solaris header use [PR 98315]Nathan Sidwell3-7/+8
Rather than early-include sys/socket.h, let's allow the includer to tell cody no networking. libcody/ * cody.hh: Allow user to set CODY_NETWORKING. gcc/cp/ * mapper-resolver.cc: Remove early include of sys/socket.h. Specify no CODY_NETWORKING instead. * module.cc: Specify no CODY_NETWORKING.
2020-12-16c++: Fix template parm ICE [PR 98297]Nathan Sidwell2-1/+9
I think this is nonsense code, we seem to be naming an instantiation of a template template parm. But this fixes the ICE. Perhaps we should diagnose the issue earlier? gcc/cp/ * parser.c (cp_parser_elaborated_type_specifier): Test BOUND_TEMPLATE_TEMPLATE_PARM before checking for instantiation. gcc/testsuite/ * g++.dg/template/pr98297.C: New.
2020-12-16c++tools: fix install-strip [PR 98328]Nathan Sidwell3-13/+24
I'd missed an install-strip rule in c++tools. Here it is, cribbed from gcc/ subdir. c++tools/ * Makefile.in (INSTALL): Replace with ... (INSTALL_PROGRAM): ... this. (INSTALL_STRIP_PROGRAM): New. (install-strip): New target. (install): Use INSTALL_PROGRAM. * configure.ac: Add INSTALL_PROGRAM. * configure: Regenerated.
2020-12-16libstdc++: Simplify built-in detection in <utility>Jonathan Wakely1-11/+5
Now that GCC supports __has_builtin there is no need to test whether it's defined, we can just use it unconditionally. libstdc++-v3/ChangeLog: * include/std/utility: Use __has_builtin without checking if it's defined.
2020-12-16libstdc++: Warn if __STRICT_ANSI has been undefinedJonathan Wakely1-0/+9
Recent changes to use __int128 as an integer-like type in <ranges> and to optimize std::uniform_int_distribution mean that the library relies on __int128 more heavily than in the past. The library expects that if __int128 is supported then either __GLIBCXX_TYPE_INT_N_0 is defined (and we treat is like the standard integer types), or __STRICT_ANSI__ is defined (and we need to add special handling for __int128 as a non-standard integer type). If users compile with -std=c++NN -U__STRICT_ANSI__ then it puts the library into a broken and inconsistent state, where the compiler doesn't define the __GLIBCXX_TYPE_INT_N_0 macro, but the library thinks it doesn't need special handling for __int128. What the user should do is compile with -std=gnu++NN instead. This adds a warning if it appears that __int128 is supported but neither __GLIBCXX_TYPE_INT_N_0 nor __STRICT_ANSI__ is defined. libstdc++-v3/ChangeLog: * include/bits/c++config: Warn if __STRICT_ANSI__ state is inconsistent with __GLIBCXX_TYPE_INT_N_0.
2020-12-16Fix instruction length for MMA insns.Pat Haugen1-21/+11
Prefixed instructions should not have their length explicitly set to '8'. The function get_attr_length() will adjust the length appropriately based on the value of the "prefixed" attribute. 2020-12-16 Pat Haugen <pthaugen@linux.ibm.com> gcc/ * config/rs6000/mma.md (*movxo, mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>): Remove explicit setting of length attribute.
2020-12-16c++: Fix offsetof use [PR 98232]Nathan Sidwell1-1/+1
offsetof is underspecified. GCC happened to accept an unneeded explicit scoping, clang does not. gcc/cp/ * module.cc (dumper::push): Clangify offsetof use.
2020-12-16C++: Fix solaris header use (mk 2)Nathan Sidwell1-0/+6
There is another path to get to a poisoned bcopy. Fixed thusly. gcc/cp/ * mapper-resolver.cc: #include sys/socket before system.h due to poisoned bcopy use.
2020-12-16libcody: fix --enable-checking=... follow-up [PR98311]Jakub Jelinek2-16/+20
> The -enable-checking configure code in libcody didn't play well with > us. This just uses libcpp's configurey for that piece. This doesn't set is_release anywhere, which means when --enable-checking* or --disable-checking isn't specified, it always treats it as --enable-checking=yes, while the normal gcc behavior is treat only trunk as --enable-checking=yes and treat release branches as --enable-checking=release by default. On the other side, nothing uses those ac_assert_checking and ac_valgrind_checking variables, so it is a waste to compute those. 2020-12-16 Jakub Jelinek <jakub@redhat.com> * configure.ac: Compute is_release. (NMS_ENABLE_CHECKING): Simplify but not computing ac_assert_checking and ac_valgrind_checking the code doesn't use. * configure: Regenerated.
2020-12-16PR fortran/98284 - ICE in get_array_indexHarald Anlauf2-0/+19
Reject DATA elements with the ALLOCATABLE attribute also when they are components of a derived type. gcc/fortran/ChangeLog: PR fortran/98284 * resolve.c (check_data_variable): Reject DATA elements with the ALLOCATABLE attribute. gcc/testsuite/ChangeLog: PR fortran/98284 * gfortran.dg/pr98284.f90: New test.
2020-12-16varasm: Fix up __patchable_function_entries handlingJakub Jelinek1-3/+3
The SECTION_LINK_ORDER changes don't seem to work properly. If I compile: static inline __attribute__((__gnu_inline__)) __attribute__((__unused__)) __attribute__((patchable_function_entry(0, 0))) int foo (int x) { return x + 1; } static inline __attribute__((__gnu_inline__)) __attribute__((__unused__)) __attribute__((patchable_function_entry(0, 0))) int bar (int x) { return x + 2; } int baz (int x) { return foo (x) + 1; } int qux (int x) { return bar (x) + 2; } (distilled from aarch64 Linux kernel) with -O2 -fpatchable-function-entry=2 on aarch64 compiler configured against latest binutils, I get: ... .section __patchable_function_entries,"awo",@progbits,baz ... .section __patchable_function_entries ... in the assembly, but when it is assembled, one gets: [ 4] __patchable_function_entries PROGBITS 0000000000000000 000060 000008 00 WAL 1 0 8 [ 5] .rela__patchable_function_entries RELA 0000000000000000 000280 000018 18 I 12 4 8 [ 6] __patchable_function_entries PROGBITS 0000000000000000 000068 000008 00 0 0 8 [ 7] .rela__patchable_function_entries RELA 0000000000000000 000298 000018 18 I 12 6 8 i.e. one writable allocated section with SHF_LINK_ORDER and another non-allocated non-writable without link order. In the kernel case there is always one entry in the WAL section and then dozens or more in the non-allocated one. The kernel then fails to link: WARNING: modpost: vmlinux.o (__patchable_function_entries): unexpected non-allocatable section. Did you forget to use "ax"/"aw" in a .S file? Note that for example <linux/init.h> contains section definitions for use in .S files. ld: .init.data has both ordered [`__patchable_function_entries' in init/main.o] and unordered [`.init.data' in +./drivers/firmware/efi/libstub/vsprintf.stub.o] sections ld: final link failed: bad value make: *** [Makefile:1175: vmlinux] Error 1 The following patch fixes it by always forcing full section flags for SECTION_LINK_ORDER sections. 2020-12-16 Jakub Jelinek <jakub@redhat.com> * varasm.c (default_elf_asm_named_section): Always force section flags even for sections with SECTION_LINK_ORDER flag.
2020-12-16libcody: Fix build for older GCC versionsJonathan Wakely1-2/+13
Before CWG DR 1955 the controlling expression for an #elif must be syntactically correct, meaning this won't compile with C++11 compilers such as gcc 4.8: The solution is to define __has_include(X) as 0 for compilers that don't support it. The second problem is that when <source_location> is found, it is used without the std:: qualification. libcody/ChangeLog: * internal.hh: Define fallback macros for __has_builtin and __has_include. Use __has_builtin for __builtin_FILE and __builtin_LINE. Define alias for std::source_location.
2020-12-16libstdc++: Only use __builtin_sprintf if supported [PR 96083]Jonathan Wakely1-0/+16
Clang doesn't support __builtin_sprintf, so use std::sprintf instead. libstdc++-v3/ChangeLog: PR libstdc++/96083 * include/ext/throw_allocator.h: Use __has_builtin to check for __builtin_sprintf support, and use std::sprtinf if necessary.
2020-12-16libcody: fix --enable-checking=... [PR 98311]Nathan Sidwell2-20/+79
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-16libcody: More dashismNathan Sidwell2-14/+16
There were still some dash-killing uses of +=. Fixed thusly. * config.m4: Replace V+="..." with V="$V..." * configure: Rebuilt.
2020-12-16c++: Fix detailed-mem-stat breakageNathan Sidwell1-22/+25
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-16Require .init_array/.fini_array support for SHF_GNU_RETAINH.J. Lu3-5/+16
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-16Warn used and not used symbols in section with the same nameH.J. Lu5-3/+23
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-16Switch to a new section if the SECTION_RETAIN bit doesn't matchH.J. Lu7-6/+130
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-16libstdc++: Fix errors from Library Fundamentals TS headers in C++11 [PR 98319]Jonathan Wakely4-60/+45
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-16libstdc++: Add performance test for atomic_flag [PR 46447]Jonathan Wakely1-0/+71
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-16libstdc++: Test errno macros directly, not via autoconf [PR 93151]Jonathan Wakely5-60/+53
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-16c++tools: Fix (an) install issueNathan Sidwell1-3/+4
This fixes installers that don't understand -p. c++tools/ * Makefile.in (install): Do not use -p, use mkinstalldirs. (clean): Fix typo.
2020-12-16c++: Fix (some) solaris breakageNathan Sidwell1-0/+9
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[Ada] Code cleanup: rename ALI.ScopeArnaud Charlet4-9/+9
gcc/ada/ * ali.ads, ali.adb, bindo-writers.adb, lib-writ.adb (Scope): Renamed to IS_Scope.
2020-12-16[Ada] Add contracts to Ada.Strings.FixedJoffrey Huguet1-46/+848
gcc/ada/ * libgnat/a-strfix.ads: Add postconditions and contract cases to subprograms.
2020-12-16[Ada] Handle iterator filters on loop specifications over containersEd Schonberg1-1/+7
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[Ada] armhf-linux: symbolic tracebacksDoug Rupp3-1/+10
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[Ada] Fix memory leak in GNAT.Expect.Non_Blocking_Spawn on WindowsDmitriy Anisimkov1-0/+6
gcc/ada/ * libgnat/g-expect.adb (Non_Blocking_Spawn): Deallocate elements on Arg_List after calling Set_Up_Child_Communications.
2020-12-16[Ada] Remove inconsistent colons in messages for Ada 83 violationsPiotr Trojanek3-3/+3
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[Ada] Refine types of variables for parsing formal object declarationsPiotr Trojanek1-3/+3
gcc/ada/ * par-ch12.adb (P_Formal_Object_Declarations): Refine types to Pos.
2020-12-16[Ada] Fix typo in checks for implementation defined unitsPiotr Trojanek1-1/+1
gcc/ada/ * impunit.adb (Not_Impl_Defined_Unit): Fix typo in iteration over Non_Imp_File_Names_12 array.
2020-12-16[Ada] Simplify membership tests with N_Delay_Statement subtypePiotr Trojanek2-5/+2
gcc/ada/ * exp_ch9.adb, sem_warn.adb: Simplify membership test.
2020-12-16[Ada] Simplify membership tests with N_Subprogram_Call subtypePiotr Trojanek5-9/+6
gcc/ada/ * exp_ch6.adb, exp_util.adb, sem_ch4.adb, sem_disp.adb, sem_elab.adb: Simplify membership test.
2020-12-16[Ada] Fix glitch in comment of System.Powten_TableEric Botcazou1-3/+3
gcc/ada/ * libgnat/s-powtab.ads (Maxpow): Use explicit formula in comment.
2020-12-16[Ada] Fix possible uninitialized ATCB component usePhilippe Gil1-0/+1
gcc/ada/ * libgnarl/s-tporft.adb (Register_Foreign_Thread): Set Global_Task_Lock_Nesting before using allocator.
2020-12-16[Ada] Avoid artificial underflow in System.Val_RealEric Botcazou1-6/+45
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[Ada] Fix integer-vs-float errors in example for Test_Case pragmaPiotr Trojanek2-5/+5
gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst (Test_Case): Change integer to float literals. * gnat_rm.texi: Regenerate.
2020-12-16[Ada] Reject junk syntax for Contract_Cases/Test_Case/Subprogram_VariantPiotr Trojanek2-8/+50
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[Ada] Fix gmem.out corruption by GNAT.ExpectDmitriy Anisimkov4-12/+42
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[Ada] Mark generic body outside of SPARKYannick Moy3-3/+3
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[Ada] Another small adjustment to System.Value_REric Botcazou1-6/+12
gcc/ada/ * libgnat/s-valuer.adb (Scan_Decimal_Digits): Tweak overflow test. (Scan_Integral_Digits): Likewise.
2020-12-16[Ada] Add some OS constants to control serial portPascal Obry1-0/+35
gcc/ada/ * s-oscons-tmplt.c: Add some OS constants.
2020-12-16bswap: Handle vector CONSTRUCTORs [PR96239]Jakub Jelinek2-5/+140
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-16opts: Remove all usages of Report keyword.Martin Liska65-1383/+1383
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-16Remove Report keyword for optionsMartin Liska4-10/+3
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-16Add -Wtsan.Martin Liska4-1/+32
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-16options: fix integer overflowMartin Liska2-3/+22
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-16Fix PR tree-optimization/98272Eric Botcazou2-6/+29
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-16rs6000: Use subreg for QI/HI vector initKewen Lin3-11/+5
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.