- 25 Jan, 2020 9 commits
-
-
testsuite: Fix up pr93166.C test, so that it doesn't FAIL with -std=c++98 and tests what it is supposed to test. 2020-01-26 Jakub Jelinek <jakub@redhat.com> PR ipa/93166 * g++.dg/pr93166.C: Move to ... * g++.dg/pr93166_0.C: ... here. Turn it into a proper lto test.
Jakub Jelinek committed -
2020-01-26 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/92788 * g++.dg/pr92788.C: Move to ... * g++.target/i386/pr92788.C: ... here. Remove target from dg-do line. Change type of operator new's first parameter to __SIZE_TYPE__.
Jakub Jelinek committed -
I neglected to add a proper diagnostic for the reference dynamic_cast case when the operand of a dynamic_cast doesn't refer to a public base of Derived, resulting in suboptimal error message error: call to non-'constexpr' function 'void* __cxa_bad_cast()' 2020-01-25 Marek Polacek <polacek@redhat.com> PR c++/93414 - poor diagnostic for dynamic_cast in constexpr context. * constexpr.c (cxx_eval_dynamic_cast_fn): Add a reference dynamic_cast diagnostic. * g++.dg/cpp2a/constexpr-dynamic18.C: New test.
Marek Polacek committed -
2020-01-25 John David Anglin <danglin@gcc.gnu.org> * inclhack.def (hpux_c99_inttypes4): New, add missing SCNuMAX defines. * fixincl.x: Regenerate. * tests/base/inttypes.h: Update for above fix.
John David Anglin committed -
2020-01-25 Feng Xue <fxue@os.amperecomputing.com> PR ipa/93166 * ipa-cp.c (get_info_about_necessary_edges): Remove value check assertion. PR ipa/93166 * g++.dg/pr93166.C: New test.
Feng Xue committed -
vec_zeroextend.c fails on big-endian as it assumes 0 index is the lower part but it is not for big-endian case. This fixes the problem by using the correct index for the lower part for big-endian. Committed as obvious after a test on aarch64_be-linux-gnu. ChangeLog: * gcc.target/aarch64/vec_zeroextend.c: Fix for big-endian.
Andrew Pinski committed -
Here, the problem was that tsubst_friend_function was modifying the CONSTRAINT_INFO for the friend template to have the constraints for one instantiation, which fell down when we went to adjust it for another instantiation. Fixed by deferring substitution of trailing requirements until we try to check declaration matching. PR c++/93400 - ICE with constrained friend. * constraint.cc (maybe_substitute_reqs_for): New. * decl.c (function_requirements_equivalent_p): Call it. * pt.c (tsubst_friend_function): Only substitute TEMPLATE_PARMS_CONSTRAINTS. (tsubst_template_parms): Copy constraints.
Jason Merrill committed -
Here the problem was that we were remembering the lookup in template scope, and then trying to reuse that lookup in the instantiation without substituting into it at all. The simplest solution is to not try to remember a lookup that finds a class-scope declaration, as in that case doing the normal lookup again at instantiation time will always find the right declarations. PR c++/93279 - ICE with lambda in member operator. * name-lookup.c (maybe_save_operator_binding): Don't remember class-scope bindings.
Jason Merrill committed -
GCC Administrator committed
-
- 24 Jan, 2020 25 commits
-
-
PR tree-optimization/92788 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX not EDGE_ABNORMAL. PR tree-optimization/92788 * g++.dg/pr92788.C: New test.
Jeff Law committed -
any_template_parm_r was looking at the args of an alias template-id, but we need to look at all args of a member alias/typedef, including implicit ones from the enclosing class. PR c++/93377 - ICE with member alias in constraint. * pt.c (any_template_parm_r): Look at template arguments for all aliases, not only alias templates.
Jason Merrill committed -
In Agner Fog's tables, vpermilp[sd] with immediates seem to be much faster than vpermpd with immediate, for a good reason, the former only permute something within the lanes and don't do anything intra-lane, while vpermpd can. So, functionality-wise, vpermilpd is more efficient subset of vpermpd. We use the same RTL for those though (and also for certain broadcast). Now, the problem was that the vpermpd pattern appeared first in sse.md, followed by the broadcast patterns, followed by the vpermilp[sd]. Which means unless -mavx -mno-avx2, we'd emit vpermpd instead of the more efficient alternatives. The following patch reorders them, so that vpermpd comes last, if we can match a broadcast, we do, if we can match a vpermilp[sd] that is not a broadcast, we will, otherwise fall back (of course only if -mavx2) to vpermpd. 2020-01-24 Jakub Jelinek <jakub@redhat.com> PR target/93395 * config/i386/sse.md (*avx_vperm_broadcast_v4sf, *avx_vperm_broadcast_<mode>, <sse2_avx_avx512f>_vpermil<mode><mask_name>, *<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Move before avx2_perm<mode>/avx512f_perm<mode>. * gcc.target/i386/pr93395.c: New test. * gcc.target/i386/avx512vl-vpermilpdi-1.c: Remove xfail.
Jakub Jelinek committed -
The following patch makes sure we punt in the 3 spots if precision is above MAX_BITSIZE_MODE_ANY_INT. 2020-01-24 Jakub Jelinek <jakub@redhat.com> PR target/93376 * simplify-rtx.c (simplify_const_unary_operation, simplify_const_binary_operation): Punt for mode precision above MAX_BITSIZE_MODE_ANY_INT.
Jakub Jelinek committed -
Like I mentioned in https://gcc.gnu.org/ml/gcc/2020-01/msg00157.html, The shift by a register should be just COSTS_N_INSNS (1) rather than COSTS_N_INSNS (2). This allows lshift_cheap_p to return true now and converting switches to be using shift and other like structures. I noticed this difference when I was working through PR 93131 and understanding what reassoc could handle. ChangeLog: * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change alu.shift_reg to 0.
Andrew Pinski committed -
Since e4511ca2 force_paren_expr can create a VIEW_CONVERT_EXPR so that we have something to set REF_PARENTHESIZED_P on, while not making the expression dependent. But tsubst_copy can't cope with such a VIEW_CONVERT_EXPR, because it's not location_wrapper_p, or a TEMPLATE_PARM_INDEX wrapped in a VIEW_CONVERT_EXPR. I think we need to teach tsubst_copy how to handle it. Setting EXPR_LOCATION_WRAPPER_P in force_paren_expr would make the ICE go away too, but tsubst_copy would lose the REF_PARENTHESIZED_P flag. 2020-01-24 Marek Polacek <polacek@redhat.com> PR c++/93299 - ICE in tsubst_copy with parenthesized expression. * pt.c (tsubst_copy): Handle a REF_PARENTHESIZED_P VIEW_CONVERT_EXPR. * g++.dg/cpp1y/paren5.C: New test.
Marek Polacek committed -
These testcases were failing on nios2-elf, which defaults to -fno-delete-null-pointer-checks. 2020-01-24 Sandra Loosemore <sandra@codesourcery.com> gcc/testsuite/ * g++.dg/cpp0x/constexpr-odr1.C: Add -fdelete-null-pointer-checks. * g++.dg/cpp0x/constexpr-odr2.C: Likewise. * g++.dg/cpp0x/nontype4.C: Likewise. * g++.dg/cpp1y/constexpr-new.C: Likewise. * g++.dg/cpp1y/new1.C: Likewise. * g++.dg/cpp1y/new2.C: Likewise. * g++.dg/cpp2a/constexpr-dynamic11.C: Likewise. * g++.dg/cpp2a/constexpr-dynamic17.C: Likewise. * g++.dg/cpp2a/constexpr-dynamic4.C: Likewise. * g++.dg/cpp2a/constexpr-new1.C: Likewise. * g++.dg/cpp2a/constexpr-new10.C: Likewise. * g++.dg/cpp2a/constexpr-new2.C: Likewise. * g++.dg/cpp2a/constexpr-new3.C: Likewise. * g++.dg/cpp2a/constexpr-new4.C: Likewise. * g++.dg/cpp2a/constexpr-new8.C: Likewise. * g++.dg/cpp2a/constexpr-new9.C: Likewise. * g++.dg/cpp2a/nontype-class1.C: Likewise.
Sandra Loosemore committed -
Another place we need to unshare cached expressions. PR c++/92852 - ICE with generic lambda and reference var. * constexpr.c (maybe_constant_value): Likewise.
Jason Merrill committed -
Jason Merrill committed
-
The _Eq and _Ord enumerations can be combined into one, reducing the number of constructors needed for the comparison category types. The redundant equal enumerator can be removed and equivalent used in its place. The _Less and _Greater enumerators can be renamed because 'less' and 'greater' are already reserved names anyway. * libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type. (__cmp_cat::_Ord::equivalent): Add enumerator. (__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less and greater. (partial_ordering, weak_ordering, strong_ordering): Remove constructors taking __cmp_cat::_Eq parameters. Use renamed enumerators.
Jonathan Wakely committed -
PR target/13721 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg for REGs. Call output_operand_lossage to get more reasonable diagnostics. PR target/13721 * gcc.target/h8300/pr13721.c: New test.
Jeff Law committed -
Jeff Law committed
-
2020-01-24 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use gcn_fp_compare_operator. (vec_cmpu<mode>di): Use gcn_compare_operator. (vec_cmp<u>v64qidi): Use gcn_compare_operator. (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator. (vec_cmpu<mode>di_exec): Use gcn_compare_operator. (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator. (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator. (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator. (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use gcn_fp_compare_operator. (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use gcn_fp_compare_operator. (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use gcn_fp_compare_operator. (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use gcn_fp_compare_operator.
Andrew Stubbs committed -
Whilst trying to convert the add vendor branch script to work with personal branches I encountered a minor issue where git would report ambiguous refs when checking out the new branch. It turns out that this is because git considers <me>/<topic> to be ambiguous if both refs/heads/<me>/<topic> and refs/remotes/<me>/<topic> exist in the list of known branches. Having thought about this a bit, I think the best solution is to adopt something more like the vendors space and call the remote users/<me> (this also works better if you want to set up remotes to track other users branches as well). So this patch has two parts. 1) It updates gcc-git-customization.sh to set up the new 'remote' and converts any existing remote and branches tracking that to the new format 2) It adds a new script to set up a personal branch on the gcc git repository. * gcc-git-customization.sh: Use users/<pfx> for the personal remote rather than just <pfx>. Convert any existing personal branches to the new remote. * git-add-user-branch.sh: New file.
Richard Earnshaw committed -
Patch by Maciej W. Rozycki. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216239
Ian Lance Taylor committed -
I noticed, but ignored this code when addressing p80005, but having fixed up defined(X) on the modules branch, I could see where it came from, and it's obviously wrong as we've just pulled out a string contant from the token. * expr.c (parse_has_include): Remove bogus controlling macro code.
Nathan Sidwell committed -
Provide means, in the form of a `--with-toolexeclibdir=' configuration option, to override the default installation directory for target libraries, otherwise known as $toolexeclibdir. This is so that it is possible to get newly-built libraries, particularly the shared ones, installed in a common place, so that they can be readily used by the target system as their host libraries, possibly over NFS, without a need to manually copy them over from the currently hardcoded location they would otherwise be installed in. In the presence of the `--enable-version-specific-runtime-libs' option and for configurations building native GCC the option is ignored. config/ * toolexeclibdir.m4: New file. gcc/ * doc/install.texi (Cross-Compiler-Specific Options): Document `--with-toolexeclibdir' option. libada/ * Makefile.in (configure_deps): Add `toolexeclibdir.m4'. * configure.ac: Handle `--with-toolexeclibdir='. * configure: Regenerate. libatomic/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libffi/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * include/Makefile.in: Regenerate. * man/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libgcc/ * Makefile.in (configure_deps): Add `toolexeclibdir.m4'. * configure.ac: Handle `--with-toolexeclibdir='. * configure: Regenerate. libgfortran/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libgomp/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libhsail-rt/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libitm/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libobjc/ * Makefile.in (aclocal_deps): Add `toolexeclibdir.m4'. * aclocal.m4: Include `toolexeclibdir.m4'. * configure.ac: Handle `--with-toolexeclibdir='. * configure: Regenerate. liboffloadmic/ * plugin/configure.ac: Handle `--with-toolexeclibdir='. * plugin/Makefile.in: Regenerate. * plugin/aclocal.m4: Regenerate. * plugin/configure: Regenerate. * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libphobos/ * m4/druntime.m4: Handle `--with-toolexeclibdir='. * m4/Makefile.in: Regenerate. * libdruntime/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libquadmath/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libsanitizer/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * asan/Makefile.in: Regenerate. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. libssp/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libstdc++-v3/ * acinclude.m4: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. * src/c++17/Makefile.in: Regenerate. * src/c++98/Makefile.in: Regenerate. * src/filesystem/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libvtv/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. zlib/ * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate.
Maciej W. Rozycki committed -
PR tree-optimization/92924 * libgcov-merge.c (merge_topn_values_set): Fix merging.
Jan Hubicka committed -
The testcase fails to link on targets without -pthread which is implied by -fopenmp. Use dg-require-effective-target fopenmp to avoid this problem. 2020-01-24 Christophe Lyon <christophe.lyon@linaro.org> PR debug/92763 * g++.dg/debug/pr92763.C: Require fopenmp.
Christophe Lyon committed -
libgomp/ChangeLog: Add entry for commit 4bd03ed6.
Frederik Harwath committed -
* Weaken expectation concerning acc_property_free_memory. Do not expect the value returned by CUDA since that value might have changed in the meantime. * Use correct type for the results of calls to acc_get_property in tests. libgomp/ * testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c (expect_device_properties): Remove "expected_free_mem" argument, change "expected_total_mem" argument type to size_t; change types of acc_get_property results to size_t, adapt format strings. * testsuite/libgomp.oacc-c-c++-common/acc_get_property.c: Use %zu instead of %zd to print size_t values. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-2.c: Adapt and rename to ... * testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c: ... this. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-3.c: Adapt and rename to ... * testsuite/libgomp.oacc-c-c++-common/acc_get_property-host.c: ... this. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
Frederik Harwath committed -
* target.def (flags_regnum): Also mention effect on delay slot filling. * doc/tm.texi: Regenerate. Previously only mentioned an effect on compare elimination.
Hans-Peter Nilsson committed -
PR analyzer/93367 reports a testsuite failure in abort.c on hppa64-hp-hpux11.11 when detecting if the analyzer "knows" that the condition holds after the assert. The root cause is that the assertion failure function in that configuration's <assert.h> is not marked with __attribute__ ((__noreturn__)). This patch reworks the test to avoid <assert.h> in favor of a custom implementation of assert, so that the test demonstrates the idea without relying on properties of <assert.h>. gcc/testsuite/ChangeLog: PR analyzer/93367 * gcc.dg/analyzer/abort.c: Remove include of <assert.h>. Replace use of assert with a custom assertion implementation.
David Malcolm committed -
GCC Administrator committed
-
In libgo CacheLinePadSize is defined by the generated file cpugen.go. Keep cpu_riscv64.go around, even though it is now empty, so that we will pick up changes to it in future merges. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216077
Ian Lance Taylor committed
-
- 23 Jan, 2020 6 commits
-
-
* config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
Jeff Law committed -
* config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of profiling label
Jeff Law committed -
I've noticed this test failed on x86_64-linux with -m32 or -mx32 testing, the triplet doesn't really say which actual multilib it is, and the test really works with lp64. 2020-01-23 Jakub Jelinek <jakub@redhat.com> PR inline-asm/93027 * gcc.target/i386/pr93027.c: Require lp64 target rather x86_64-*-*.
Jakub Jelinek committed -
writeargv writes out empty arguments in a way that expandargv skips them instead of preserving them. Fixed by writing out a pair of quotes for them. for libiberty/ChangeLog * argv.c (writeargv): Output empty args as "".
Alexandre Oliva committed -
The C++ headers #undef the functions we are testing for, just in case they're implemented as macros, so do that in the cross math decl tests as well. for libstdc++-v3/ChangeLog * crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros. * configure: Rebuild.
Alexandre Oliva committed -
Padding in mbstate_t objects may get the memcmp to fail. Attempt to avoid the failure with zero initialization. for libstdc++-v3/ChangeLog * testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
Alexandre Oliva committed
-