aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-11-30[Ada] Confusion in Transform_Function_Array and internal subprogramsArnaud Charlet6-245/+206
gcc/ada/ * ali-util.adb (Get_File_Checksum): Remove dead code. * exp_ch4.adb (Expand_Boolean_Operator, Expand_N_Op_Not, Make_Boolean_Array_Op): Take Transform_Function_Array into account. * exp_ch6.adb (Expand_Call_Helper): Update comment. Code cleanup. * exp_util.adb (Build_Procedure_Form): Use new predefined name Name_UP_RESULT. * snames.ads-tmpl (Name_UP_RESULT): New predefined name. Code cleanup: remove unused names from the project parser, moved to gprbuild sources. * xsnamest.adb: Add support for uppercase names.
2020-11-30[Ada] Spurious visibility error in subprogram body in with_clauseEd Schonberg1-0/+7
gcc/ada/ * sem_util.adb (Enter_Name): When an inherited operation for a local derived type is hidden by an explicit declaration of a non-overloadable entity in the same scope, make the inherited operation non-visible to prevent its accidental use elsewhere.
2020-11-30tree-optimization/98064 - fix BB SLP live lane extract wrt LC SSARichard Biener2-0/+43
This avoids breaking LC SSA when SLP codegen pulled an out-of-loop def into a loop when merging with in-loop defs for an external def. 2020-11-30 Richard Biener <rguenther@suse.de> PR tree-optimization/98064 * tree-vect-loop.c (vectorizable_live_operation): Avoid breaking LC SSA for BB vectorization. * g++.dg/vect/pr98064.cc: New testcase.
2020-11-30changelog: allow subdir wildcard entryMartin Liska3-3/+34
contrib/ChangeLog: * gcc-changelog/git_commit.py: Allow sub-directory wildcard changelog entry. Fix a typo caused by apostrophe escaping. * gcc-changelog/test_email.py: Test it. * gcc-changelog/test_patches.txt: Likewise.
2020-11-30doc: Fix description of dg-require-effective-targetJonathan Wakely1-1/+1
The optional target selector for the dg-require-effective-target directive needs to be { target selector } not just { selector } as currently documented. gcc/ChangeLog: * doc/sourcebuild.texi (Directives): Fix description of dg-require-effective-target to include "target" in selector.
2020-11-30tree-optimization/98048 - fix vector lowering of ABSU_EXPRRichard Biener2-1/+15
This makes sure to use the correct type for the LHS of the scalar replacement statement. 20220-11-30 Richard Biener <rguenther@suse.de> PR tree-optimization/98048 * tree-vect-generic.c (expand_vector_operations_1): Use the correct type for the scalar LHS replacement. * gcc.dg/vect/pr98048.c: New testcase.
2020-11-30gimple ISEL: fix BB stmt iterationMartin Liska1-0/+2
gcc/ChangeLog: PR tree-optimization/98066 * gimple-isel.cc (gimple_expand_vec_exprs): Return when gimple_expand_vec_exprs replaces last stmt.
2020-11-30gcc-changelog: Add libstdc++-v3/testsuite to wildcard prefixesJonathan Wakely1-1/+2
This allows using "testsuite/*" in libstdc++-v3/ChangeLog entries, which was one of the original motivations for adding wildcard support in the first place: https://gcc.gnu.org/pipermail/gcc/2020-June/232719.html contrib/ChangeLog: * gcc-changelog/git_commit.py (wildcard_prefixes): Add libstdc++ testsuite directory.
2020-11-30rtl_dump_bb: fix segfault when reporting internal errorIlya Leoshkevich1-1/+9
During ICE reporting, sometimes rtl_dump_bb is called on partially initialized basic blocks. This produces another ICE, obscuring the original problem. Fix by checking that that basic blocks are initialized before touching their bb_infos. gcc/ChangeLog: 2020-11-25 Ilya Leoshkevich <iii@linux.ibm.com> * cfgrtl.c (rtl_bb_info_initialized_p): New function. (rtl_dump_bb): Use rtl_bb_info_initialized_p before accessing bb insns.
2020-11-30d: Add freebsd support for D compiler and runtimeIain Buclaw4-0/+69
gcc/ChangeLog: PR d/87818 * config.gcc (*-*-freebsd*): Add freebsd-d.o and t-freebsd. * config/freebsd-d.c: New file. * config/t-freebsd: New file. libphobos/ChangeLog: PR d/87818 * configure.tgt: Add x86_64-*-freebsd* and i?86-*-freebsd* as supported targets.
2020-11-30[Obvious] arm: Fix test from failing on some targets [PR91816]Stam Markianos-Wright1-2/+3
This recently submitted test was found to fail on some Cortex-M targets. This was because codegen on these CPUs would emit a ldr instead of a movw/movt pair, resulting in an overall smaller test (i.e. the branch wasn't as far) and the behaviour being tested for not being triggered. This commit doubles the size of the test to account for this. gcc/testsuite/ChangeLog: * gcc.target/arm/pr91816.c: New test.
2020-11-30expansion: Improve double-word modulo by certain constant divisors [PR97459]Jakub Jelinek5-1/+337
As discussed in the PR, e.g. on x86_64 (both -m32 and -m64) there is no double-word modulo and so we expand it to a __{,u}mod[dt]i3 call. For certain constant divisors we can do better. E.g. consider 32-bit word-size, 0x100000000ULL % 3 == 1, so we can use partly the Hacker's delight modulo by summing digits approach and optimize unsigned long long foo (unsigned long long x) { return x % 3; } as unsigned long long foo (unsigned long long x) { unsigned int sum, carry; carry = __builtin_add_overflow ((unsigned int) x, (unsigned int) (x >> 32), &sum); sum += carry; return sum % 3; } Similarly, 0x10000000ULL % 5 == 1 (note, 1 << 28), so unsigned long long bar (unsigned long long x) { return x % 5; } as unsigned long long bar (unsigned long long x) { unsigned int sum = x & ((1 << 28) - 1); sum += (x >> 28) & ((1 << 28) - 1); sum += (x >> 56); return sum % 5; } etc. And we can do also signed modulo, long long baz (long long x) { return x % 5; } as long long baz (long long x) { unsigned int sum = x & ((1 << 28) - 1); sum += ((unsigned long long) x >> 28) & ((1 << 28) - 1); sum += ((unsigned long long) x >> 56); /* Sum adjustment for negative x. */ sum += (x >> 63) & 3; unsigned int rem = sum % 5; /* And finally adjust it to the right interval for negative values. */ return (int) (rem + ((x >> 63) & -4)); } 2020-11-30 Jakub Jelinek <jakub@redhat.com> PR rtl-optimization/97459 * internal-fn.h (expand_addsub_overflow): Declare. * internal-fn.c (expand_addsub_overflow): No longer static. * optabs.c (expand_doubleword_mod): New function. (expand_binop): Optimize double-word mod with constant divisor. * gcc.dg/pr97459-1.c: New test. * gcc.dg/pr97459-2.c: New test.
2020-11-30changelog: Allow wildcard pattern only.Martin Liska1-1/+1
contrib/ChangeLog: * gcc-changelog/git_commit.py: Allow wildcard pattern only.
2020-11-30RISC-V: Always define MULTILIB_DEFAULTSKito Cheng3-88/+12
- Define MULTILIB_DEFAULTS can reduce the total number of multilib if the default arch and ABI are listed in the multilib config. - This also simplify the implementation of --with-multilib-list. gcc/ChangeLog: * config.gcc (riscv*-*-*): Add TARGET_RISCV_DEFAULT_ABI and TARGET_RISCV_DEFAULT_ARCH to tm_defines. Remove including riscv/withmultilib.h for --with-multilib-list. * config/riscv/riscv.h (STRINGIZING): New. (__STRINGIZING): Ditto. (MULTILIB_DEFAULTS): Ditto. * config/riscv/withmultilib.h: Remove.
2020-11-30Fix print_multilib_info when default arguments appear in the option list ↵Kito Cheng1-6/+17
with '!' This issue is found when we try to always define MULTILIB_DEFAULTS for -march and -mabi for RISC-V back-end, however `-print-multi-lib` will skip multi-lib setting if match any one of flag in MULTILIB_DEFAULTS, even some options are specified in the option list with '!'. e.g. We have default march=rv32i and mabi=ilp32. And we have following multi-lib set: ". !march=rv32i !march=rv32im !march=rv32imafc !mabi=ilp32 !mabi=ilp32f;" "rv32i/ilp32 march=rv32i !march=rv32im !march=rv32imafc mabi=ilp32 !mabi=ilp32f;" "rv32im/ilp32 !march=rv32i march=rv32im !march=rv32imafc mabi=ilp32 !mabi=ilp32f;" "rv32imafc/ilp32f !march=rv32i !march=rv32ic !march=rv32im march=rv32imafc !mabi=ilp32 mabi=ilp32f;" `-print-multi-lib` willl show `.` and `rv32imafc/ilp32f` only, because the mabi=ilp32 is matched, however there is `!march=rv32i` in `rv32im/ilp32`, so `rv32im/ilp32` should keep, because it reject march=rv32i. Note: This can be reproduced via following configure options with patch [1]: gcc/configure --target=riscv64-elf --with-arch=rv32i --with-abi=ilp32 \ --with-multilib-generator="rv32i-ilp32--;rv32im-ilp32--;rv32imafc-ilp32f--" [1] https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559707.html gcc/ChangeLog: * gcc.c (print_multilib_info): Check default arguments not appeared in multi-lib option list with '!'
2020-11-29fixed _bswapsi2 functionStefan Kanthak1-4/+4
libgcc * libgcc2.c (bswapsi2): Make constants unsigned.
2020-11-29Fix minor bug in ft32 widening multiplyJeff Law1-3/+3
gcc/ * config/ft32/ft32.md (umulsidi3): Do not allow constants as arguments.
2020-11-30Daily bump.GCC Administrator24-1/+201
2020-11-29PR fortran/98017 - Suspected regression using PACKHarald Anlauf2-0/+17
When substituting a parameter variable of type character, the character length was reset to 1. Fix this by copying the length. gcc/fortran/ChangeLog: * expr.c (simplify_parameter_variable): Fix up character length after copying an array-valued expression. gcc/testsuite/ChangeLog: * gfortran.dg/pr98017.f90: New test.
2020-11-29Fix handling of ignore_stores in ipa_merge_modref_summary_after_inliningJan Hubicka1-2/+2
* ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix handling of ignore_stores.
2020-11-29Fix freeing of thunk-infoJan Hubicka1-1/+1
PR jit/97867 * symtab-thunks.h (thunk_info::release): Use ggc_delete.
2020-11-29Handle PHIs in compute_objsize.Martin Sebor26-651/+2190
PR middle-end/92936 - missing warning on a past-the-end store to a PHI PR middle-end/92940 - incorrect offset and size in -Wstringop-overflow for out-of-bounds store into VLA and two offset ranges PR middle-end/89428 - missing -Wstringop-overflow on a PHI with variable offset gcc/ChangeLog: PR middle-end/92936 PR middle-end/92940 PR middle-end/89428 * builtins.c (access_ref::access_ref): Initialize member. (access_ref::phi): New function. (access_ref::get_ref): New function. (access_ref::add_offset): Remove duplicate assignment. (maybe_warn_for_bound): Add "maybe" kind of warning messages. (warn_for_access): Same. (inform_access): Rename... (access_ref::inform_access): ...to this. Print PHI arguments. Format offset the same as size and simplify. Improve printing of allocation functions and VLAs. (check_access): Adjust to the above. (gimple_parm_array_size): Change argument. (handle_min_max_size): New function. * builtins.h (class ssa_name_limit_t): Move class here from tree-ssa-strlen.c. (struct access_ref): Declare new members. (gimple_parm_array_size): Change argument. * tree-ssa-strlen.c (maybe_warn_overflow): Use access_ref and simplify. (handle_builtin_memcpy): Correct argument passed to maybe_warn_overflow. (handle_builtin_memset): Same. (class ssa_name_limit_t): Move class to builtins.{h,c}. gcc/testsuite/ChangeLog: PR middle-end/92936 PR middle-end/92940 PR middle-end/89428 * c-c++-common/Wstringop-overflow-2.c: Adjust text of expected informational notes. * g++.dg/warn/Wstringop-overflow-3.C: Same. * g++.dg/warn/Wplacement-new-size.C: Remove a test for a no longer issued warning. * gcc.dg/Warray-bounds-43.c: Removed unused declarations. * gcc.dg/Wstringop-overflow-11.c: Remove xfails. * gcc.dg/Wstringop-overflow-12.c: Same. * gcc.dg/Wstringop-overflow-17.c: Adjust text of expected messages. * gcc.dg/Wstringop-overflow-27.c: Same. Remove xfails. * gcc.dg/Wstringop-overflow-28.c: Adjust text of expected messages. * gcc.dg/Wstringop-overflow-29.c: Same. * gcc.dg/Wstringop-overflow-37.c: Same. * gcc.dg/Wstringop-overflow-46.c: Same. * gcc.dg/Wstringop-overflow-47.c: Same. * gcc.dg/Wstringop-overflow-54.c: Same. * gcc.dg/warn-strnlen-no-nul.c: Add expected warning. * gcc.dg/Wstringop-overflow-7.c: New test. * gcc.dg/Wstringop-overflow-58.c: New test. * gcc.dg/Wstringop-overflow-59.c: New test. * gcc.dg/Wstringop-overflow-60.c: New test. * gcc.dg/Wstringop-overflow-61.c: New test. * gcc.dg/Wstringop-overflow-62.c: New test. * gcc.dg/Wstringop-overflow-63.c: New test. * gcc.dg/Wstringop-overflow-64.c: New test.
2020-11-29d: Add darwin support for D language front-endIain Buclaw8-3/+122
gcc/ChangeLog: * config.gcc (*-*-darwin*): Set d_target_objs and target_has_targetdm. * config/elfos.h (TARGET_D_MINFO_SECTION): New macro. (TARGET_D_MINFO_START_NAME): New macro. (TARGET_D_MINFO_END_NAME): New macro. * config/t-darwin: Add darwin-d.o. * doc/tm.texi: Regenerate. * doc/tm.texi.in (D language and ABI): Add @hook for TARGET_D_MINFO_SECTION, TARGET_D_MINFO_START_NAME, and TARGET_D_MINFO_END_NAME. * config/darwin-d.c: New file. gcc/d/ChangeLog: * d-target.def (d_minfo_section): New hook. (d_minfo_start_name): New hook. (d_minfo_end_name): New hook. * modules.cc: Include d-target.h. (register_moduleinfo): Update to use new targetdm hooks.
2020-11-29configure: Support building D front-end on *-*-darwin*Iain Buclaw2-6/+0
The bootstrap has been confirmed to be succeeding, there's no need to set it as an unsupported language. ChangeLog: PR d/87788 * configure.ac: Don't disable D for *-*-darwin*. * configure: Regenerate.
2020-11-29Fix hppa64-hpux11 build to remove source paths from embedded path.John David Anglin19-62/+62
This change adds the +nodefaultrpath ld option to remove all library paths that were specified with the -L option from the embedded path. 2020-11-29 John David Anglin <danglin@gcc.gnu.org> ChangeLog: * libtool.m4 (archive_cmds): Add +nodefaultrpath ld option on hppa64-*-hpux11*. libatomic/ChangeLog: * configure: Regenerate. libbacktrace/ChangeLog: * configure: Regenerate. libcc1/ChangeLog: * configure: Regenerate. libffi/ChangeLog: * configure: Regenerate. libgfortran/ChangeLog: * configure: Regenerate. libgomp/ChangeLog: * configure: Regenerate. libhsail-rt/ChangeLog: * configure: Regenerate. libitm/ChangeLog: * configure: Regenerate. libobjc/ChangeLog: * configure: Regenerate. liboffloadmic/ChangeLog: * configure: Regenerate. * plugin/configure: Regenerate. libquadmath/ChangeLog: * configure: Regenerate. libsanitizer/ChangeLog: * configure: Regenerate. libssp/ChangeLog: * configure: Regenerate. libstdc++-v3/ChangeLog: * configure: Regenerate. libvtv/ChangeLog: * configure: Regenerate. lto-plugin/ChangeLog: * configure: Regenerate. zlib/ChangeLog: * configure: Regenerate.
2020-11-29Fix PR ada/97504 on hppa*-*-hpux*.John David Anglin1-0/+2
2020-11-29 John David Anglin <danglin@gcc.gnu.org> gcc/ada/ PR ada/97504 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <hppa*-*-hpux*>: Use wraplf version of Aux_Long_Long_Float.
2020-11-29Skip EAF_UNUSED parameters in handle_pure_callJan Hubicka1-0/+5
* tree-ssa-structalias.c (handle_pure_call): Skip EAF_UNUSED parameters.
2020-11-29Detect unused parameters in ipa-modrefJan Hubicka1-4/+26
* ipa-modref.c (modref_lattice::merge): Do nothing if F is EAF_UNUSED. (analyze_parms): Detect unused params. (modref_merge_call_site_flags): Merge correct EAF_UNUSED.
2020-11-29d: Remove d_size_t from front-end sources (PR 87788)Iain Buclaw10-45/+31
The typedef for d_size_t assumes that the implementation of the front-end is written in D itself, where size_t can map only to uint32_t or uint64_t. As that is not the case for the current D front-end, the typedef should be removed. This would fix the bootstrap on targets where in C++ size_t is a long, such as darwin i386. Reviewed-on: https://github.com/dlang/dmd/pull/12008 gcc/d/ChangeLog: PR d/87788 * dmd/MERGE: Merge upsream dmd 45fa6cfd2.
2020-11-29Daily bump.GCC Administrator5-1/+68
2020-11-28Improve support of simple bit-fields in -fdump-ada-specEric Botcazou1-14/+9
This fixes an issue with nested structures and adds an Alignment clause to counter the effect of the Pack aspect. gcc/c-family/ChangeLog: * c-ada-spec.c (dump_nested_type) <RECORD_TYPE>: Remove obsolete code. (dump_ada_structure): Also deal with convention, unchecked union and bit-field for nested types. In the latter case, print an Alignment aspect along with the Pack aspect.
2020-11-28compiler: avoid follow-on errors for bad typesIan Lance Taylor5-16/+95
Mark bad types as erroneous, to avoid generating further errors. This required some code using array types to check for errors. For https://golang.org/issue/19880 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273626
2020-11-28compiler: better error for x, x := 1, 2Ian Lance Taylor2-4/+12
Was assign.go:59:28: error: multiple assignments to x Now assign.go:59:28: error: ‘x’ repeated on left side of := Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273546
2020-11-28Fix PR target/97939Eric Botcazou3-55/+113
The little dance around 4096 that add/sub instructions do on the SPARC needs to be taken into account for the overflow arithmetic operations. It cannot be done for unsigned overflow, but it can be done for signed overflow. gcc/ChangeLog: PR target/97939 * config/sparc/predicates.md (arith_double_add_operand): Comment. * config/sparc/sparc.md (uaddvdi4): Use arith_double_operand. (addvdi4): Use arith_double_add_operand. (addsi3): Remove useless attributes. (addvsi4): Use arith_add_operand. (*cmp_ccv_plus): Likewise and add second alternative accordingly. (*cmp_ccxv_plus): Likewise. (*cmp_ccv_plus_set): Likewise. (*cmp_ccxv_plus_set): Likewise. (*cmp_ccv_plus_sltu_set): Likewise. (usubvdi4): Use arith_double_operand. (subvdi4): Use arith_double_add_operand. (subsi3): Remove useless attributes. (subvsi4): Use arith_add_operand. (*cmp_ccv_minus): Likewise and add second alternative accordingly. (*cmp_ccxv_minus): Likewise. (*cmp_ccv_minus_set): Likewise. (*cmp_ccxv_minus_set): Likewise. (*cmp_ccv_minus_sltu_set): Likewise. (negsi2): Use register_operand. (unegvsi3): Likewise. (negvsi3) Likewise. (*cmp_ccnz_neg): Likewise. (*cmp_ccxnz_neg): Likewise. (*cmp_ccnz_neg_set): Likewise. (*cmp_ccxnz_neg_set): Likewise. (*cmp_ccc_neg_set): Likewise. (*cmp_ccxc_neg_set): Likewise. (*cmp_ccc_neg_sltu_set): Likewise. (*cmp_ccv_neg): Likewise. (*cmp_ccxv_neg): Likewise. (*cmp_ccv_neg_set): Likewise. (*cmp_ccxv_neg_set): Likewise. (*cmp_ccv_neg_sltu_set): Likewise. gcc/testsuite/ChangeLog: * gcc.target/sparc/overflow-6.c: New test.
2020-11-28Generate correct fn specs for some Fortran library functions.Thomas Koenig5-10/+98
This patch works by generating the correct fn spec from the actual arguments in specific_intrinsic_symbol, and by passing this down via gfc_get_extern_function_decl to gfc_get_function_type. CSHIFT remains to be done. gcc/fortran/ChangeLog: PR fortran/97454 * trans-decl.c (gfc_get_extern_function_decl): Add argument fnspec. * trans-intrinsic.c (MAX_SPEC_ARG): Define. (intrinsic_fnspec): New function. (ADD_CHAR): Define. (specific_intrinsic_symbol): Adjust comment. Pass fn spec to gfc_get_extern_function_decl. (gfc_conv_intrinsic_funcall): Add ANY, ALL, NORM2, PRODUCT and SUM intrnisic. Add FIXME for cshift et al. * trans-types.c (gfc_get_function_type): Add fnspec argument, handle it. * trans-types.h (gfc_get_function_type): Add optinal fnspec argument. * trans.h (gfc_get_extern_function_decl): Likewise.
2020-11-28Daily bump.GCC Administrator10-1/+605
2020-11-27Revert previous change and use pragma to suppress -Wformat-diag.Martin Sebor1-10/+8
gcc/cp/ChangeLog: * error.c (add_quotes): Revert previous change and use pragma to suppress -Wformat-diag.
2020-11-27preprocessor: Fix #line overflow check [PR97602]Joseph Myers3-5/+15
The preprocessor check for overflow (of linenum_type = unsigned int) when reading the line number in a #line directive is incomplete; it checks "reg < reg_prev" which doesn't cover all cases where multiplying by 10 overflowed. Fix this by checking for overflow before rather than after it occurs (using essentially the same logic as used by e.g. glibc printf when reading width and precision values from strings). Bootstrapped with no regressions for x86_64-pc-linux-gnu. libcpp/ 2020-11-27 Joseph Myers <joseph@codesourcery.com> PR preprocessor/97602 * directives.c (strtolinenum): Check for overflow before it occurs. Correct comment. gcc/testsuite/ 2020-11-27 Joseph Myers <joseph@codesourcery.com> PR preprocessor/97602 * gcc.dg/cpp/line9.c, gcc.dg/cpp/line10.c: New tests.
2020-11-27libphobos: Fix segfault at run-time when using custom Fibers (PR 98025)Iain Buclaw10-9/+43
When libphobos is configured with --enable-cet, this adds extra fields to the Fiber class to support the ucontext_t fallback implementation. These fields get omitted when compiling user code unless they also used `-fversion=CET' to build their project, which resulted in data being overwritten from within swapcontext(). On reviewing the ucontext_t definitions, it was found that the shadow stack fields were missing, and the struct size didn't match up on X32. This has been fixed in upstream druntime and merged down here. Reviewed-on: https://github.com/dlang/druntime/pull/3293 libphobos/ChangeLog: PR d/98025 * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac (DCFG_ENABLE_CET): Substitute. * libdruntime/MERGE: Merge upstream druntime 0fe7974c. * libdruntime/Makefile.in: Regenerate. * libdruntime/core/thread.d: Import gcc.config. (class Fiber): Add ucontext_t fields when GNU_Enable_CET is true. * libdruntime/gcc/config.d.in (GNU_Enable_CET): Define. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate.
2020-11-27d: Merge upstream dmd db0df3f7e.Iain Buclaw14-986/+4
Removes all support code and tests for the extern(Pascal) calling convention. Reviewed-on: https://github.com/dlang/dmd/pull/11994 gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd db0df3f7e. * types.cc (TypeVisitor::visit (TypeFunction *)): Remove LINKpascal.
2020-11-27libphobos: Merge upstream druntime d37ef985.Iain Buclaw13-99/+214
Adds support for FreeBSD/x86 53-bit precision reals, updates bindings for FreeBSD 12.x, and removes all support code and tests for the extern(Pascal) calling convention. Reviewed-on: https://github.com/dlang/druntime/pull/3286 https://github.com/dlang/druntime/pull/3287 libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime d37ef985. * libdruntime/Makefile.am (DRUNTIME_DSOURCES_FREEBSD): Add core/sys/freebsd/config.d * libdruntime/Makefile.in: Regenerate.
2020-11-27libphobos: Merge upstream phobos 38873fe6e.Iain Buclaw6-41/+92
Adds support for FreeBSD/x86 53-bit precision reals, and removes all support code and tests for the extern(Pascal) calling convention. Reviewed-on: https://github.com/dlang/phobos/pull/7704 https://github.com/dlang/phobos/pull/7705 libphobos/ChangeLog: * src/MERGE: Merge upstream phobos 38873fe6e.
2020-11-27d: Add float and double overloads for all core.math intrinsicsIain Buclaw5-88/+151
For the math intrinsics: cos, fabs, ldexp, rint, rndtol, and sin, new overloads have been added to the core.math module for matching float and double types. These have been implemented in the compiler. A recent change to dump_function_to_file started triggering some scan-tree-dump tests to FAIL, these have been adjusted as well when updating the test. gcc/d/ChangeLog: * intrinsics.cc (maybe_expand_intrinsic): Handle new intrinsics. * intrinsics.def (INTRINSIC_COS): Add float and double overloads. (INTRINSIC_FABS): Likewise. (INTRINSIC_LDEXP): Likewise. (INTRINSIC_RINT): Likewise. (INTRINSIC_RNDTOL): Likewise. (INTRINSIC_SIN): Likewise. (INTRINSIC_TOPREC): Adjust signature. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime 5e4492c4. gcc/testsuite/ChangeLog: * gdc.dg/intrinsics.d: Adjust patterns in scan-tree-dump.
2020-11-27testsuite/i386: Fix XOP and FMA4 checking functions [PR98036].Uros Bizjak11-71/+57
Add missing returns and remove unnecessary postfix increments. 2020-11-27 Uroš Bizjak <ubizjak@gmail.com> PR testsuite/98036 gcc/testsuite/ * gcc.target/i386/fma4-256-maccXX.c (check_maccps): Remove unnecessary postfix increment on a returned variable. (check_maccpd): Ditto. * gcc.target/i386/fma4-256-msubXX.c (check_msubps): Ditto. (check_msubpd): Ditto. * gcc.target/i386/fma4-256-nmaccXX.c (check_nmaccps): Ditto. (check_nmaccpd): Ditto. * gcc.target/i386/fma4-256-nmsubXX.c (check_nmsubps): Ditto. (check_nmsubpd): Ditto. * gcc.target/i386/fma4-maccXX.c (check_maccps): Ditto. (check_maccpd): Ditto. (check_maccss): Ditto. (check_maccsd): Ditto. * gcc.target/i386/fma4-msubXX.c (check_msubps): Ditto. (check_msubpd): Ditto. (check_msubss): Ditto. (check_msubsd): Ditto. * gcc.target/i386/fma4-nmaccXX.c (check_nmaccps): Ditto. (check_nmaccpd): Ditto. (check_nmaccss): Ditto. (check_nmaccsd): Ditto. * gcc.target/i386/fma4-nmsubXX.c (check_nmsubps): Ditto. (check_nmsubpd): Ditto. (check_nmsubss): Ditto. (check_nmsubsd): Ditto. * gcc.target/i386/xop-haddX.c (check_sbyte2word): Add missing return. (check_sbyte2dword): Remove unnecessary postfix increment on a returned value. (check_sbyte2qword): Ditto. (check_sword2dword): Add missing return. (check_sword2qword): Remove unnecessary postfix increment on a returned value. (check_dword2qword): Add missing return. * gcc.target/i386/xop-hadduX.c (check_byte2word): Add missing return. (check_byte2dword): Remove unnecessary postfix increment on a returned value. (check_byte2qword): Ditto. (check_word2dword): Add missing return. (check_word2qword): Remove unnecessary postfix increment on a returned value. (check_word2qword): Add missing return. * gcc.target/i386/xop-hsubX.c (check_sbyte2word): Add missing return. (check_sword2dword): Ditto. (check_sword2qword): Ditto.
2020-11-27libstdc++: Refactor dejagnu effective-target checksJonathan Wakely1-477/+145
This introduces two new procs to replace boilerplate in the effective-target checks. libstdc++-v3/ChangeLog: * testsuite/lib/libstdc++.exp (v3_try_preprocess): Define new proc to preprocess a chunk of code. (v3_check_preprocessor_condition): Define new proc to test a preprocessor condition depending on GCC or libstdc++ macros. (check_v3_target_debug_mode, check_v3_target_normal_mode): Use v3_try_preprocess. (check_v3_target_normal_namespace) (check_v3_target_parallel_mode, check_v3_target_cstdint) (check_v3_target_cmath, check_v3_target_atomic_builtins) (check_v3_target_gthreads, check_v3_target_gthreads_timed) (check_v3_target_sleep, check_v3_target_sched_yield) (check_v3_target_string_conversions, check_v3_target_swprintf) (check_v3_target_binary_io, check_v3_target_nprocs): Use v3_check_preprocessor_condition. (check_effective_target_cxx11): Likewise. (check_effective_target_random_device): Likewise. (check_effective_target_tbb-backend): Likewise. (check_effective_target_futex): Likewise. (check_v3_target_little_endian) Call check_effective_target_le. (check_effective_target_atomic-builtins): New proc to define new effective-target keyword. (check_effective_target_gthreads-timed): Likewise.
2020-11-27INSTALL: Default to --enable-cet=autoH.J. Lu1-5/+4
PR other/98027 * doc/install.texi: Default to --enable-cet=auto.
2020-11-27In 'gcc/omp-oacc-kernels-decompose.cc:flatten_binds', don't choke on empty ↵Thomas Schwinge3-3/+13
GIMPLE sequence Also, instead of just examining the first statement of inner 'GIMPLE_BIND' (via 'inner_sequence' being a 'typedef gimple *gimple_seq'), in fact examine all statements contained therein, which I suppose must've been the intention here. This "fixes" the testcase 'c-c++-common/goacc/kernels-decompose-ice-2.c' (which now runs into the same ICE as 'c-c++-common/goacc/kernels-decompose-ice-1.c', etc.). gcc/ * omp-oacc-kernels-decompose.cc (flatten_binds): Don't choke on empty GIMPLE sequence, and examine all statements contained in inner 'GIMPLE_BIND'. gcc/testsuite/ * c-c++-common/goacc/kernels-decompose-ice-1.c: Adjust. * c-c++-common/goacc/kernels-decompose-ice-2.c: Likewise.
2020-11-27libstdc++: Fix -Wrange-loop-construct warnings in filesystem testsJonathan Wakely52-58/+58
Many tests do `for (const path& p : test_paths)` where test_paths is an array of strings. To avoid -Wrange-loop-construct warnings the loop variable should be an object, not a reference bound to a temporary. libstdc++-v3/ChangeLog: * testsuite/27_io/filesystem/operations/absolute.cc: Avoid -Wrange-loop-construct warning. * testsuite/27_io/filesystem/path/append/source.cc: Likewise. * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise. * testsuite/27_io/filesystem/path/compare/path.cc: Likewise. * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise. * testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise. * testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise. * testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise. * testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise. * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Likewise. * testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise. * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise. * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Likewise. * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: Likewise. * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: Likewise. * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise. * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise. * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc: Likewise. * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise. * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise. * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise. * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise. * testsuite/27_io/filesystem/path/query/has_relative_path.cc: Likewise. * testsuite/27_io/filesystem/path/query/has_root_directory.cc: Likewise. * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise. * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise. * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise. * testsuite/experimental/filesystem/operations/absolute.cc: Likewise. * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise. * testsuite/experimental/filesystem/path/compare/path.cc: Likewise. * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/extension.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/filename.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/parent_path.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/relative_path.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/root_directory.cc: Likewise. * testsuite/experimental/filesystem/path/decompose/root_path.cc: Likewise. * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: Likewise. * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: Likewise. * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_extension.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_filename.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_parent_path.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_relative_path.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_root_directory.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_root_name.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_root_path.cc: Likewise. * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise. * testsuite/experimental/filesystem/path/query/is_relative.cc: Likewise.
2020-11-27changelog: allow flexible "cherry picked" format.Martin Liska3-10/+14
It handles the following: (cherry picked from commit c0c7270cc4efd896fe99f8ad5409dbef089a407f (testsuite changes only)) contrib/ChangeLog: * gcc-changelog/git_commit.py: Use regex for cherry pick prefix. * gcc-changelog/test_email.py: Test it. * gcc-changelog/test_patches.txt: Likewise.
2020-11-27libstdc++: Partially revert r11-5314Jonathan Wakely2-2/+2
The changes in r11-5314 are broken, because it means we don't use __gthread_once for the first few initializations, but after the program becomes multi-threaded we will repeat the initialization, using __gthread_once once this time. This leads to memory errors. The use of __is_single_threaded() in locale::id::_M_id() is OK, because the side effects are the same either way. libstdc++-v3/ChangeLog: * src/c++98/locale.cc (locale::facet::_S_get_c_locale()): Revert change to use __is_single_threaded. * src/c++98/locale_init.cc (locale::_S_initialize()): Likewise.