- 25 Aug, 2019 2 commits
-
-
* config/i386/gmm_malloc.h: Only use <errno.h> and errno if __STDC_HOSTED__. From-SVN: r274915
Gerald Pfeifer committed -
From-SVN: r274907
GCC Administrator committed
-
- 24 Aug, 2019 4 commits
-
-
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg01674.html cp/ * class.c (check_for_overrides): Conversion operators need checking too. testsuite/ * g++.dg/inherit/virtual14.C: New. From-SVN: r274903
Nathan Sidwell committed -
2019-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/91390 PR fortran/91519 * frontend-passes.c (check_externals_procedure): New function. If a procedure is not in the translation unit, create an "interface" for it, including its formal arguments. (check_externals_code): Use check_externals_procedure for common code with check_externals_expr. (check_externals_expr): Vice versa. * gfortran.h (gfc_get_formal_from_actual-arglist): New prototype. (gfc_compare_actual_formal): New prototype. * interface.c (compare_actual_formal): Rename to (gfc_compare_actual_formal): New function, make global. (gfc_get_formal_from_actual_arglist): Make global, and move here from * trans-types.c (get_formal_from_actual_arglist): Remove here. (gfc_get_function_type): Use gfc_get_formal_from_actual_arglist. 2019-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/91390 PR fortran/91519 * gfortran.dg/bessel_3.f90: Add type mismatch errors. * gfortran.dg/coarray_7.f90: Rename subroutines to avoid additional errors. * gfortran.dg/g77/20010519-1.f: Add -std=legacy. Remove warnings for ASSIGN. Add warnings for type mismatch. * gfortran.dg/goacc/acc_on_device-1.f95: Add -std=legacy. Add catch-all warning. * gfortran.dg/internal_pack_9.f90: Rename subroutine to avoid type error. * gfortran.dg/internal_pack_9.f90: Add -std=legacy. Add warnings for type mismatch. * gfortran.dg/pr39937.f: Add -std=legacy and type warnings. Move here from * gfortran.fortran-torture/compile/pr39937.f: Move to gfortran.dg. From-SVN: r274902
Thomas Koenig committed -
/cp 2019-08-24 Paolo Carlini <paolo.carlini@oracle.com> * semantics.c (finish_switch_cond): Improve error message location. /testsuite 2019-08-24 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/conversion/simd4.C: Test all the locations. From-SVN: r274901
Paolo Carlini committed -
From-SVN: r274898
GCC Administrator committed
-
- 23 Aug, 2019 25 commits
-
-
* decl2.c (decl_dependent_p): New. (mark_used): Check it instead of just processing_template_decl. From-SVN: r274894
Jason Merrill committed -
From-SVN: r274893
Jason Merrill committed -
* decl.c (grokdeclarator): Return error_mark_node for an invalid trailing return type. * g++.dg/parse/operator8.C: New test. From-SVN: r274891
Marek Polacek committed -
Record when a local pointer variable is set to a value such that indirecting through the pointer does not require a write barrier. Use that to eliminate write barriers when indirecting through that local pointer variable. Only keep this information per-block, so it's not all that applicable. This reduces the number of write barriers generated when compiling the runtime package from 553 to 524. The point of this is to eliminate a bad write barrier in the bytes function in runtime/print.go. Mark that function nowritebarrier so that the problem does not recur. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/191581 From-SVN: r274890
Ian Lance Taylor committed -
We used to implement darn with unspecs, not unspec_volatiles, which means two darn instructions could be CSEd together. This testcase tests it by adding together four random numbers. If all is well that means we get four darn instructions, because such a small loop is unrolled fine at -O2 already. If things go bad, combine will combine it all to one darn and a shift left by two. gcc/testsuite/ PR target/91481 * gcc.target/powerpc/darn-3.c: New testcase. From-SVN: r274889
Segher Boessenkool committed -
* cp-tree.h (cp_warn_deprecated_use_scopes): Declare. * decl.c (grokdeclarator): Call cp_warn_deprecated_use_scopes. (type_is_deprecated): Likewise. * decl2.c (cp_warn_deprecated_use_scopes): New function. * name-lookup.c (handle_namespace_attrs): Handle attribute deprecated. * parser.c (cp_parser_namespace_alias_definition): Call cp_warn_deprecated_use_scopes. (cp_parser_using_declaration): Likewise. (cp_parser_using_directive): Likewise. * semantics.c (finish_id_expression_1): Likewise. * g++.dg/cpp0x/attributes-namespace1.C: New test. * g++.dg/cpp0x/attributes-namespace2.C: New test. * g++.dg/cpp0x/attributes-namespace3.C: New test. * g++.dg/cpp0x/attributes-namespace4.C: New test. * g++.dg/cpp0x/attributes-namespace5.C: New test. * g++.dg/cpp1z/namespace-attribs.C: Adjust. * g++.dg/cpp1z/namespace-attribs2.C: Adjust. From-SVN: r274888
Marek Polacek committed -
* Makefile.tpl (HOST_EXPORTS): Add CXX_FOR_BUILD. * Makefile.in: Regenerate. From-SVN: r274887
Michael Forney committed -
Building for i686-mingw32 target (with some local changes) produced an error error: ISO C++ forbids declaration of 'lstat' with no type [-fpermissive] in libstdc++-v3/src/filesystem/ops-common.h. This patch adds the missing return type. OK to commit (trunk and GCC 9 branch)? Note 1: I haven't run the testsuite with this patch, but it fixes the build failure I see (in sources with other local changes). Note 2: I don't know why this hasn't produced build failures for other people, but the missing return type looks wrong in any case even if other local changes are for some reason needed for it to produce an error. * src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (std::filesystem::__gnu_posix::lstat): Add return type. From-SVN: r274885
Joseph Myers committed -
From-SVN: r274868
Joseph Myers committed -
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg01674.html * class.c (check_for_override): Checking IDENTIFIER_VIRTUAL_P is sufficient, reorder DECL_OVERRIDE_P check. From-SVN: r274867
Nathan Sidwell committed -
* config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI machine mode for unspec_volatile operand. * gcc.target/mips/get-fcsr-3.c: New test. From-SVN: r274863
Mihailo Stojanovic committed -
gcc/testsuite/ChangeLog: * gcc.dg/pr78973.c: Make functions static to avoid failures with -fpic * gcc.dg/pr78973-2.c: Same. From-SVN: r274860
Martin Sebor committed -
gcc/testsuite/ChangeLog: * gcc.dg/Warray-bounds-36.c: Make functions static to avoid failures with -fpic. * gcc.dg/Warray-bounds-41.c: Same. From-SVN: r274859
Martin Sebor committed -
Deprecate -mneon-for-64bits since it no longer has any effect after the DImode codegen improvements. gcc/ * gcc/doc/invoke.texi (mneon-for-64bits): Deprecate option. * gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate option. * gcc/config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove. (prefer_neon_for_64bits): Remove. * gcc/config/arm/arm.c (prefer_neon_for_64bits): Remove. (tune_params): Remove PREF_NEON_64_FALSE uses. (arm_option_override): Remove prefer_neon selection code. (arm_print_tune_info): Remove prefer_neon_for_64bits. * gcc/config/arm/arm-protos.h (tune_params): Remove prefer_neon_for_64bits. (prefer_neon_for_64bits): Remove. From-SVN: r274858
Wilco Dijkstra committed -
Prevent lines overlapping the right hand margin, this occurred for references in the "See also:" section, it is prevented by placing references on their own lines. Two example programs overlapped the right hand margin: fixed by adjusting the position and of the comments. Some tables had overlapping colums: the column widths were adjusted accordingly. From-SVN: r274857
Mark Eggleston committed -
When we are parsing a source file, the very first token might be a PRAGMA_GCC_PCH_PREPROCESS. This indicates that we are going read in a PCH file (named as the value of the pragma). If we don't see this pragma, then we know that it's OK to release any resources that the host might have set aside for the PCH file. This fixes a thinko in the current implementation, in that the decision to release resources was happening unconditionally right after the first token is extracted but before it's been checked or acted upon. This leads to the pch bug (seen on Darwin), because we actually do release resources - which are subsequently (reasonably) assumed to be available when reading a PCH file. We then get random crashes or hangs depending on the interaction between unmmap and malloc. The bug is present everywhere but doesn't show on (say) Linux, since the release of PCH resources is a NOP there. This effects all the c-family front ends, because they all use c_lex_with_flags () to implement this. The solution is to check for the PRAGMA_GCC_PCH_PREPROCESS and only call c_common_no_more_pch () when that is not the first token. A secondary effect of the collection is that the name of the PCH file can be collected during the ggc_pch_read() reset of state. Therefore we should issue any diagnostic that might name the file before the collections are triggered. gcc/c-family/ 2019-08-23 Iain Sandoe <iain@sandoe.co.uk> PR pch/61250 * c-lex.c (c_lex_with_flags): Don't call c_common_no_more_pch () from here. gcc/c/ 2019-08-23 Iain Sandoe <iain@sandoe.co.uk> PR pch/61250 * c-parser.c (c_parse_file): Call c_common_no_more_pch () after determining that the first token is not PRAGMA_GCC_PCH_PREPROCESS. gcc/cp/ 2019-08-23 Iain Sandoe <iain@sandoe.co.uk> PR pch/61250 * parser.c (cp_parser_initial_pragma): Call c_common_no_more_pch () after determining that the first token is not PRAGMA_GCC_PCH_PREPROCESS. gcc/ 2019-08-23 Iain Sandoe <iain@sandoe.co.uk> PR pch/61250 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure and issue any diagnostics needed before collecting the pre-PCH state. From-SVN: r274856
Iain Sandoe committed -
PR middle-end/91283 * common.opt (fexcess-precision=): Add Optimization flag. Use flag_excess_precision variable instead of flag_excess_precision_cmdline. * flags.h (class target_flag_state): Remove x_flag_excess_precision member. (flag_excess_precision): Don't define. * langhooks.c (lhd_post_options): Set flag_excess_precision instead of flag_excess_precision_cmdline. Remove comment. * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision and x_flag_excess_precision instead of frontend_set_flag_excess_precision_cmdline and x_flag_excess_precision_cmdline. (fast_math_flags_set_p): Use x_flag_excess_precision instead of x_flag_excess_precision_cmdline. * toplev.c (init_excess_precision): Remove. (lang_dependent_init_target): Don't call it. ada/ * gcc-interface/misc.c (gnat_post_options): Set flag_excess_precision instead of flag_excess_precision_cmdline. brig/ * brig-lang.c (brig_langhook_post_options): Set flag_excess_precision instead of flag_excess_precision_cmdline. c-family/ * c-common.c (c_ts18661_flt_eval_method): Use flag_excess_precision instead of flag_excess_precision_cmdline. * c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): Likewise. * c-opts.c (c_common_post_options): Likewise. d/ * d-lang.cc (d_post_options): Set flag_excess_precision instead of flag_excess_precision_cmdline. fortran/ * options.c (gfc_post_options): Set flag_excess_precision instead of flag_excess_precision_cmdline. Remove comment. go/ * go-lang.c (go_langhook_post_options): Set flag_excess_precision instead of flag_excess_precision_cmdline. lto/ * lto-lang.c (lto_post_options): Set flag_excess_precision instead of flag_excess_precision_cmdline. Remove comment. From-SVN: r274850
Jakub Jelinek committed -
2019-08-23 Martin Liska <mliska@suse.cz> * lto-wrapper.c (run_gcc): When setting jobserver set also parallel to 1. This was done so before r273908. From-SVN: r274849
Martin Liska committed -
Documentation of all intrinsics now have their sections in a consistent order. Empty sections have been removed. Stray words have been removed. Text in a wrong section has been moved. A missing standard was inserted. From-SVN: r274848
Mark Eggleston committed -
The specific intrinsics ZABS and CDABS return REAL(8) not COMPLEX(8). From-SVN: r274847
Mark Eggleston committed -
re PR target/91306 ([MSP430] libgcc/crtstuff.c: Alignment of frame_dummy .init_array entry is too big) 2019-08-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> PR target/91306 * crtstuff.c (__CTOR_LIST__): Align to the "__alignof__" the array element type, instead of "sizeof" the element type. (__DTOR_LIST__): Likewise. (__TMC_LIST__): Likewise. (__do_global_dtors_aux_fini_array_entry): Likewise. (__frame_dummy_init_array_entry): Likewise. (__CTOR_END__): Likewise. (__DTOR_END__): Likweise. (__FRAME_END__): Likewise. (__TMC_END__): Likewise. From-SVN: r274846
Jozef Lawrynowicz committed -
This patch adds '-mcpu' options for following CPUs: Cortex-M35P, Cortex-A77, Cortex-A76AE. Related specifications are as following: https://developer.arm.com/ip-products/processors/cortex-m https://developer.arm.com/ip-products/processors/cortex-a 2019-08-23 Dennis Zhang <dennis.zhang@arm.com> * config/arm/arm-cpus.in (cortex-m35p): New entry. (cortex-a76ae): Likewise. (cortex-a77): Likewise * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Likewise. * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae, cortex-a77 CPU options. From-SVN: r274845
Dennis Zhang committed -
2019-08-23 Martin Liska <mliska@suse.cz> * profile.c (instrument_values): Do not set 0 as last argument. * tree-profile.c (gimple_gen_interval_profiler): Remove last argument. (gimple_gen_pow2_profiler): Likewise. (gimple_gen_topn_values_profiler): Likewise. (gimple_gen_ic_profiler): Likewise. (gimple_gen_time_profiler): Likewise. (gimple_gen_average_profiler): Likewise. (gimple_gen_ior_profiler): Likewise. * value-prof.c (dump_histogram_value): Use default in switch statement instead of HIST_TYPE_MAX. (stream_in_histogram_value): Likewise. (gimple_duplicate_stmt_histograms): Do not use NULL for implicitly set arguments. (gimple_divmod_values_to_profile): Do not use reserve+quick_push. (gimple_indirect_call_to_profile): Likewise. (gimple_find_values_to_profile): Use implicit function call arguments. * value-prof.h (gimple_alloc_histogram_value): Set default values. (gimple_gen_interval_profiler): Remove last argument. (gimple_gen_pow2_profiler): Likewise. (gimple_gen_topn_values_profiler): Likewise. (gimple_gen_ic_profiler): Likewise. (gimple_gen_time_profiler): Likewise. (gimple_gen_average_profiler): Likewise. (gimple_gen_ior_profiler): Likewise. From-SVN: r274844
Martin Liska committed -
From-SVN: r274843
GCC Administrator committed -
* parser.c (cp_parser_condition): Handle prefix attributes. * g++.dg/cpp0x/gen-attrs-70.C: New test. From-SVN: r274839
Marek Polacek committed
-
- 22 Aug, 2019 9 commits
-
-
intrinsic.c (add_subroutines): ERRMSG is INTENT(INOUT) in co_broadcast, co_max, co_min, co_reduce, and co_sum. 2019-08-22 Steven G. Kargl <kargl@gcc.gnu.org> * intrinsic.c (add_subroutines): ERRMSG is INTENT(INOUT) in co_broadcast, co_max, co_min, co_reduce, and co_sum. From-SVN: r274838
Steven G. Kargl committed -
PR middle-end/91490 - bogus argument missing terminating nul warning on strlen of a flexible array member gcc/c-family/ChangeLog: PR middle-end/91490 * c-common.c (braced_list_to_string): Add argument and overload. Handle flexible length arrays and unions. gcc/testsuite/ChangeLog: PR middle-end/91490 * c-c++-common/Warray-bounds-7.c: New test. * gcc.dg/Warray-bounds-39.c: Expect either -Warray-bounds or -Wstringop-overflow. * gcc.dg/strlenopt-78.c: New test. gcc/ChangeLog: PR middle-end/91490 * builtins.c (c_strlen): Rename argument and introduce new local. Set no-warning bit on original argument. * expr.c (string_constant): Pass argument type to fold_ctor_reference. Fold empty and zero constructors into empty strings. * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST for missing initializers. * tree.c (build_string_literal): Handle optional argument. * tree.h (build_string_literal): Add defaulted argument. * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check no-warning bit on original expression. From-SVN: r274837
Martin Sebor committed -
* gcc.target/i386/minmax-4.c: Add -mno-stackrealign to dg-options. * gcc.target/i386/minmax-5.c: Likewise. * gcc.target/i386/minmax-6.c: Likewise. * gcc.target/i386/minmax-7.c: Likewise. * gcc.target/i386/pr91154.c: Likewise. From-SVN: r274836
Rainer Orth committed -
Every call to darn should deliver a *new* random number; such calls should not be CSEd together. So they should be unspec_volatile, not plain unspec. PR target/91481 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, and UNSPEC_DARN_RAW. (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and UNSPECV_DARN_RAW. (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. (darn): Use an unspec_volatile, and UNSPECV_DARN. From-SVN: r274835
Segher Boessenkool committed -
* config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... * config/rs6000/rs6000.md (unspec): ... here. * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, cmpeqb, *cmpeqb_internal): Delete, move to... * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, cmpeqb, *cmpeqb_internal): ... here. From-SVN: r274834
Segher Boessenkool committed -
c-parser.c (c_parser_declaration_or_fndef): Set DECL_ARGUMENTS of a FUNCTION_DECL to the right value in the presence of... * c-parser.c (c_parser_declaration_or_fndef): Set DECL_ARGUMENTS of a FUNCTION_DECL to the right value in the presence of nested declarators. From-SVN: r274828
Eric Botcazou committed -
We currently have a nasty error when trying to use the __crc* intrinsics with an -mfloat-abi=hard. That is because the target pragma guarding them uses armv8-a+crc that does not include fp by default. So we get errors like: error: '-mfloat-abi=hard': selected processor lacks an FPU This patch fixes that by using an FP-enabled arch target pragma to guard these intrinsics when floating-point is available. That way both the softfloat and hardfloat variants work. * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32 intrinsics if __ARM_FP. Use __ARM_FEATURE_CRC32 ifdef guard. * gcc.target/arm/acle/crc_hf_1.c: New test. From-SVN: r274827
Kyrylo Tkachov committed -
Remove the remaining Neon adddi3, subdi3 and negdi2 patterns. As a result adddi3, subdi3 and negdi2 can now always be expanded early irrespectively of whether Neon is available. Also expand the extenddi patterns at the same time. Several Neon arch attributes are no longer used and removed. Code generation is improved in all cases, saving another 400-500 instructions from the PR77308 testcase (total improvement is over 1700 instructions with -mcpu=cortex-a57 -O2). Bootstrap & regress OK on arm-none-linux-gnueabihf --with-cpu=cortex-a57 gcc/ * config/arm/arm.md (neon_for_64bits): Remove. (avoid_neon_for_64bits): Remove. (arm_adddi3): Always split early. (arm_subdi3): Always split early. (negdi2): Remove Neon expansion. (split zero_extend): Split before reload. (split sign_extend): Split before reload. From-SVN: r274825
Wilco Dijkstra committed -
Like the logical operations, expand all shifts early rather than only sometimes. The Neon shift expansions are never emitted (not even with -fneon-for-64bits), so they are not useful. So all the late expansions and Neon shift patterns can be removed, and shifts are more optimized as a result. Since some extend patterns use Neon DImode shifts, remove the Neon extend variants and related splits. A simple example now generates the same efficient code after this patch with -mfpu=neon and -mfpu=vfp (previously just the fact of having Neon enabled resulted inefficient code for no reason). unsigned long long f(unsigned long long x, unsigned long long y) { return x & (y >> 33); } Before: strd r4, r5, [sp, #-8]! lsr r4, r3, #1 mov r5, #0 and r1, r1, r5 and r0, r0, r4 ldrd r4, r5, [sp] add sp, sp, #8 bx lr After: and r0, r0, r3, lsr #1 mov r1, #0 bx lr Bootstrap and regress OK on arm-none-linux-gnueabihf --with-cpu=cortex-a57 gcc/ * config/arm/iterators.md (qhs_extenddi_cstr): Update. (qhs_extenddi_cstr): Likewise. * config/arm/arm.md (ashldi3): Always expand early. (ashlsi3): Likewise. (ashrsi3): Likewise. (zero_extend<mode>di2): Remove Neon variants. (extend<mode>di2): Likewise. * config/arm/neon.md (ashldi3_neon_noclobber): Remove. (signed_shift_di3_neon): Likewise. (unsigned_shift_di3_neon): Likewise. (ashrdi3_neon_imm_noclobber): Likewise. (lshrdi3_neon_imm_noclobber): Likewise. (<shift>di3_neon): Likewise. (split extend): Remove DI extend split patterns. gcc/testsuite/ * gcc.target/arm/neon-extend-1.c: Remove test. * gcc.target/arm/neon-extend-2.c: Remove test. From-SVN: r274824
Wilco Dijkstra committed
-