aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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.
2020-12-16arm: Replace calls to __builtin_vcgt* by <,> in arm_neon.h [PR66791]Prathamesh Kulkarni2-30/+28
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-16arm: Replace calls to __builtin_vneg* by - in arm_neon.h [PR66791]Prathamesh Kulkarni2-9/+8
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-16arm: Replace calls to __builtin_vcreate* in arm_neon.h [PR66791]Prathamesh Kulkarni2-12/+11
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-16Daily bump.GCC Administrator12-1/+775
2020-12-15c++: Remove dg-ice in constexpr-52830.C [PR52830]Marek Polacek1-1/+0
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-15cody: Remove unused variable.Marek Polacek1-1/+0
libcody/ChangeLog: * buffer.cc (MessageBuffer::Lex): Remove unused variable.
2020-12-15libcody: Work with older gccsNathan Sidwell1-1/+5
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-15gcc_update updateNathan Sidwell1-0/+2
I missed adding these two configure files. contrib/ * gcc_update: Add c++tools & libcody.
2020-12-15match.pd: Optimize X / bool_range_Y to X [PR96094]Jakub Jelinek2-4/+43
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-15d: Fix ICE in gimplify_expr, at gimplify.c (PR98277)Iain Buclaw2-21/+35
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-15Go testsuite: update bugs for recent changeIan Lance Taylor2-2/+2
This matches changes in 788d204885c187d5604e3960d7c78e1523f04861.
2020-12-15compiler: correct grammar in error messageIan Lance Taylor2-2/+2
For golang/go#43200 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278452
2020-12-15compiler: avoid knock-on errors from invalid interfacesIan Lance Taylor3-9/+37
The test case for this is issue11614.go. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278192
2020-12-15compiler: discard global sink variables with static initializersIan Lance Taylor4-2/+31
This is specifically for the test fixedbugs/issue23781.go, which builds a large static array. The code does compile and work without this change, but it takes a long time and generates a large object file. Discarding the unnecessary static initializer makes this test much faster. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278172
2020-12-15compiler: better error for unexpected digitIan Lance Taylor2-1/+8
A digit character is not invalid in general, but it's not permitted at the start of an identifier. Report a better error message. The test case is issue11359.go in the source repo. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278174
2020-12-15Fix dashismNathan Sidwell2-4/+4
I missed some other places that used += * config.m4: Avoid var+=... * configure: Rebuilt
2020-12-15libcody: Fix for dashNathan Sidwell2-2/+4
Apparently 'var+=...' is not a dash thing. Fixed thusly. * config.m4: Avoid non-dash idiom * configure: Rebuilt.
2020-12-15libstdc++: Remove init_priority attribute for Init object [PR 98108]Jonathan Wakely1-9/+1
This reverts commit cf4ed3b41594b6935a337fe0aaf8149eadf88751. libstdc++-v3/ChangeLog: PR libstdc++/98108 * include/std/iostream (__ioinit): Remove init_priority attribute.
2020-12-15libstdc++: Support libc with stdio-only I/O in libstdc++Keith Packard4-17/+69
The current libstdc++ basic_file_stdio.cc code assumes a POSIX API underneath the stdio implementation provided by the host libc. This means that the host must provide a fairly broad POSIX file API, including read, write, open, close, lseek and ioctl. This patch changes basic_file_stdio.cc to only use basic ANSI-C stdio functions, allowing it to be used with libc implementations like picolibc which may not have a POSIX operating system underneath. This is enabled by a new --enable-cstdio=stdio_pure configure option. Aided-by: Jonathan Wakely <jwakely@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com> libstdc++-v3/ChangeLog: * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Allow "stdio_pure" option and define _GLIBCXX_USE_PURE_STDIO when it is used. Also add "stdio_posix" option as an alias for "stdio". * config/io/basic_file_stdio.cc [_GLIBCXX_USE_PURE_STDIO]: Only use defined stdio entry points for all I/O operations, without direct calls to underlying POSIX functions. * config.h.in: Regenerate. * configure: Regenerate.
2020-12-15c++: Fix return type deduction during satisfactionPatrick Palka2-2/+13
During satisfaction that's entered through the three-parameter version of satisfy_declaration_constraints, current_function_decl gets set to the dependent DECL_TEMPLATE_RESULT for sake of access checking. This makes the predicate in_template_function return true during satisfaction from this entrypoint, which in turn makes calls to mark_used exit early before it does its full processing. This leads to us accepting the invalid testcase below due to mark_used never attempting to deduce the return type of A::foo() and detecting failure thereof. It seems wrong for in_template_function to be true during instantiation or during satisfaction, so this patch makes in_template_function inspect the less volatile cfun->decl instead of current_function_decl. gcc/cp/ChangeLog: * pt.c (in_template_function): Inspect cfun->decl instead of current_function_decl. gcc/testsuite/ChangeLog: * g++.dg/cpp2a/concepts-requires23.C: New test.