- Mar 21, 2023
-
-
Arsen Arsenović authored
maintainer-scripts/ChangeLog: * update_web_docs_git (CSS): Update CSS reference to point to /texinfo-manuals.css.
-
Arsen Arsenović authored
The @gol macro appears to have existed as a workaround for a bug in old versions of makeinfo and/or texinfo.tex, where they would, in some types of output, fail to emit line breaks in @gccoptlists. After updating texinfo.tex, I noticed that this behavior appears to no longer be exhibited, instead, both acted correctly and inserted newlines. The (groff) manual output also appears unaffected. gcc/ChangeLog: * doc/implement-c.texi: Remove usage of @gol. * doc/invoke.texi: Ditto. * doc/sourcebuild.texi: Ditto. * doc/include/gcc-common.texi: Remove @gol. In new Makeinfo and texinfo.tex versions, the bug it was working around appears to be gone. gcc/fortran/ChangeLog: * invoke.texi: Remove usages of @gol. * intrinsic.texi: Ditto.
-
Arsen Arsenović authored
gcc/ChangeLog: * doc/include/texinfo.tex: Update to 2023-01-17.19.
-
Arsen Arsenović authored
The @defbuiltin{,x} macros are convenience macros for the often-repeated task of defining a built-in function in extend.texi. Usage of this macro should lead to a higher degree of consistency across pieces of text written by different people, and provide a better reading experience, as they prevent easy-to-make errors, like forgetting index entries for these functions. gcc/ChangeLog: * doc/include/gcc-common.texi: Add @defbuiltin{,x} and @enddefbuiltin for defining built-in functions. * doc/extend.texi: Apply @defbuiltin{,x} to many, but not all, places where it should be used.
-
Arsen Arsenović authored
This commit addresses a few minor errors that were spotted while testing the GCC manual with a few people, and while working on wider changes. gcc/ChangeLog: * doc/extend.texi (Formatted Output Function Checking): New subsection for grouping together printf et al. (Exception handling) Fix missing @ sign before copyright header, which lead to the copyright line leaking into '(gcc)Exception handling'. * doc/gcc.texi: Set document language to en_US. (@copying): Wrap front cover texts in quotations, move in manual description text.
-
Arsen Arsenović authored
The GCC manual has multiple indices. By creating an appendix which lists them, we help makeinfo present a more accessible way for the reader to see all the indices. gcc/ChangeLog: * doc/gcc.texi: Add the Indices appendix, to make texinfo generate nice indices overview page.
-
Richard Biener authored
The following adds a missing range-op for __builtin_expect which helps -Wuse-after-free to detect the case a realloc original pointer is used when the result was NULL. The implementation should handle all argument one pass-through builtins we handle in the fnspec machinery, but that's defered to GCC 14. The gcc.dg/tree-ssa/ssa-lim-21.c testcase needs adjustment because for (int j = 0; j < m; j++) if (__builtin_expect (m, 0)) for (int i = 0; i < m; i++) is now correctly optimized to a unconditional jump by EVRP - m cannot be zero when the outer loop is entered. I've adjusted the outer loop to iterate 'n' times which makes us apply store-motion to 'count' and 'q->data1' but only out of the inner loop and as expected not apply store motion to 'q->data' at all. The gcc.dg/predict-20.c testcase relies on broken behavior of profile estimation when trying to handle __builtin_expect values flowing into PHI nodes. I have opened PR109210 and removed the expected matching from the testcase. PR tree-optimization/109170 * gimple-range-op.cc (cfn_pass_through_arg1): New. (gimple_range_op_handler::maybe_builtin_call): Handle __builtin_expect via cfn_pass_through_arg1. * gcc.dg/Wuse-after-free-pr109170.c: New testcase. * gcc.dg/tree-ssa/ssa-lim-21.c: Adjust. * gcc.dg/predict-20.c: Likewise.
-
Paul Thomas authored
2023-03-21 Paul Thomas <pault@gcc.gnu.org> gcc/fortran PR fortran/109206 * trans-array.cc (gfc_trans_array_constructor_value): Correct incorrect setting of typespec.
-
Paul Thomas authored
2023-03-21 Paul Thomas <pault@gcc.gnu.org> gcc/fortran PR fortran/109209 * resolve.cc (generate_component_assignments): Restore the exclusion of allocatable components from the loop. gcc/testsuite/ PR fortran/109209 * gfortran.dg/pr109209.f90: New test.
-
Gaius Mulley authored
The bootstrap tool mc is built using $(CXX) and it is missing $(CXXFLAGS). gcc/m2/ChangeLog: * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add $(CXXFLAGS). (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS). (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS). (m2/mc-boot/main.o): Add $(CXXFLAGS). Signed-off-by:
Gaius Mulley <gaiusmod2@gmail.com>
-
GCC Administrator authored
-
- Mar 20, 2023
-
-
Jonathan Wakely authored
libstdc++-v3/ChangeLog: * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix formatting.
-
Joseph Myers authored
* sv.po: Update.
-
Harald Anlauf authored
gcc/fortran/ChangeLog: PR fortran/109216 * invoke.texi: Correct documentation of how underscores are appended to external names.
-
Marek Polacek authored
When I implemented explicit(bool) in r9-3735, I added this code to add_template_candidate_real: + /* Now the explicit specifier might have been deduced; check if this + declaration is explicit. If it is and we're ignoring non-converting + constructors, don't add this function to the set of candidates. */ + if ((flags & LOOKUP_ONLYCONVERTING) && DECL_NONCONVERTING_P (fn)) + return NULL; but as this test demonstrates, that's incorrect when we're initializing from a {}: for list-initialization we consider explicit constructors and complain if one is chosen. PR c++/109159 gcc/cp/ChangeLog: * call.cc (add_template_candidate_real): Add explicit decls to the set of candidates when the initializer is a braced-init-list. libstdc++-v3/ChangeLog: * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error. * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise. * testsuite/23_containers/span/explicit.cc: Likewise. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/explicit16.C: New test.
-
Jakub Jelinek authored
The following two testcases are miscompiled, because we keep TREE_READONLY on the vars even when they are (possibly) dynamically initialized by a TLS wrapper function. Normally cp_finish_decl drops TREE_READONLY from vars which need dynamic initialization, but for TLS we do this kind of initialization upon every access to those variables. Keeping them TREE_READONLY means e.g. PRE can hoist loads from those before loops which contain the TLS wrapper calls, so we can access the TLS variables before they are initialized. 2023-03-20 Jakub Jelinek <jakub@redhat.com> PR c++/109164 * cp-tree.h (var_needs_tls_wrapper): Declare. * decl2.cc (var_needs_tls_wrapper): No longer static. * decl.cc (cp_finish_decl): Clear TREE_READONLY on TLS variables for which a TLS wrapper will be needed. * g++.dg/tls/thread_local13.C: New test. * g++.dg/tls/thread_local13-aux.cc: New file. * g++.dg/tls/thread_local14.C: New test. * g++.dg/tls/thread_local14-aux.cc: New file.
-
Michael Meissner authored
This patch reworks how the complex multiply and divide built-in functions are done. Previously GCC created built-in declarations for doing long double complex multiply and divide when long double is IEEE 128-bit. However, it did not support __ibm128 complex multiply and divide if long double is IEEE 128-bit. This code does not create the built-in declaration with the changed name. Instead, it uses the TARGET_MANGLE_DECL_ASSEMBLER_NAME hook to change the name before it is written out to the assembler file like it now does for all of the other long double built-in functions. 2023-03-20 Michael Meissner <meissner@linux.ibm.com> gcc/ PR target/109067 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete. (init_float128_ieee): Delete code to switch complex multiply and divide for long double. (complex_multiply_builtin_code): New helper function. (complex_divide_builtin_code): Likewise. (rs6000_mangle_decl_assembler_name): Add support for mangling the name of complex 128-bit multiply and divide built-in functions. gcc/testsuite/ PR target/109067 * gcc.target/powerpc/divic3-1.c: New test. * gcc.target/powerpc/divic3-2.c: Likewise. * gcc.target/powerpc/mulic3-1.c: Likewise. * gcc.target/powerpc/mulic3-2.c: Likewise.
-
Harald Anlauf authored
gcc/fortran/ChangeLog: PR fortran/109186 * simplify.cc (gfc_simplify_nearest): Fix off-by-one error in setting up real kind-specific maximum exponent for mpfr. gcc/testsuite/ChangeLog: PR fortran/109186 * gfortran.dg/nearest_6.f90: New test.
-
Peter Bergner authored
When we expand the __builtin_vec_xst_trunc built-in, we use the wrong mode for the MEM operand which causes an unrecognizable insn ICE. The solution is to use the correct TMODE mode. 2023-03-20 Peter Bergner <bergner@linux.ibm.com> gcc/ PR target/109178 * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode. gcc/testsuite/ PR target/109178 * gcc.target/powerpc/pr109178.c: New test.
-
Jakub Jelinek authored
I've noticed this testcase FAILs on i686-linux with -fstack-protector-strong. sizeof (auto_vec<int, 8>) == 16, which in this case contains 4-byte m_vec (which points to to m_auto), then 8-byte m_auto which contains just 8-byte m_vecpfx and finally 1 byte m_data, rest is padding. We then try to push 2 ints to it, so 8 bytes, starting at the end of m_vecpfx aka address of m_data, but there is just 1 byte + 3 bytes of padding. In the lp64 case, I think sizeof (auto_vec<int, 8>) == 24, because there is 8-byte m_vec, 8-byte m_vecpfx and 1-byte m_char all with 8-byte alignment. 2023-03-20 Jakub Jelinek <jakub@redhat.com> * g++.dg/torture/20230313.C (auto_vec): Change m_data type from char to char [2 * sizeof (int)].
-
Jonathan Wakely authored
The presence of a template-head on this constructor is a copy & paste error from the primary template. libstdc++-v3/ChangeLog: PR libstdc++/109182 * include/std/expected (expected<void>::expected(in_place_t)): Remove template-head.
-
Paul Thomas authored
2023-03-20 Paul Thomas <pault@gcc.gnu.org> gcc/fortran PR fortran/87127 * resolve.cc (check_host_association): If an external function is typed but not declared explicitly to be external, change the old symbol from a variable to an external function. gcc/testsuite/ PR fortran/87127 * gfortran.dg/external_procedures_4.f90: New test.
-
GCC Administrator authored
-
- Mar 19, 2023
-
-
Harald Anlauf authored
gcc/fortran/ChangeLog: PR fortran/85877 * resolve.cc (resolve_fl_procedure): Check for an explicit interface of procedures with the BIND(C) attribute (F2018:15.4.2.2). gcc/testsuite/ChangeLog: PR fortran/85877 * gfortran.dg/pr85877.f90: New test.
-
Thomas Koenig authored
gcc/fortran/ChangeLog: * gfortran.texi: Mention behavior on overflow.
-
Xin Liu authored
gcc/testsuite * gcc.target/mips/mips.exp (mips-dg-options): Disable micromips for MSA tests.
-
Gaius Mulley authored
The target independent documentation needs to be rebuilt together with the bootstrap tools after the library changes and after the <* noreturn *> attribute has been implemented. gcc/m2/ChangeLog: * Make-maintainer.in (gm2.maintainer-clean): Remove. (gm2.maintainer-help): Add gm2.maintainer-tools, gm2.maintainer-doc. Remove gm2.maintainer-clean. Change target-independent directory to target-independent/m2. * gm2-compiler/ppg.mod: Correct __FILE_ typo to __FILE__. * gm2-compiler/M2Options.def (SetAutoInit): Update comment. * gm2-compiler/M2Options.mod (SetAutoInit): Update comment. * gm2-gcc/m2color.cc (m2color_colorize_start): Rename name_len to _name_high. * gm2-gcc/m2color.def (colorize_start): change ARRAY OF CHAR to ADDRESS and add _name_high. * gm2-gcc/m2decl.cc (m2decl_BuildStartFunctionDeclaration): Change int to bool. * gm2-gcc/m2decl.h (m2decl_BuildStartFunctionDeclaration): Change int to bool. * gm2-gcc/m2expr.cc (m2expr_BuildBinarySetDo): Change int to bool. (m2expr_BuildIfConstInVar): Change int to bool. (m2expr_BuildIfNotConstInVar): Change int to bool. (m2expr_BuildIfVarInVar): Change int to bool. (m2expr_BuildIfNotVarInVar): Change int to bool. (m2expr_BuildForeachWordInSetDoIfExpr): Change int to bool. * gm2-gcc/m2expr.h (m2expr_BuildIfNotVarInVar): Change int to bool. (m2expr_BuildIfVarInVar): Change int to bool. (m2expr_BuildIfNotConstInVar): Change int to bool. (m2expr_BuildIfConstInVar): Change int to bool. * gm2-gcc/m2options.h (M2Options_SetAutoInit): Change int to bool. (M2Options_SetNilCheck): Change int to bool. (M2Options_SetReturnCheck): Change int to bool. (M2Options_SetCaseCheck): Change int to bool. (M2Options_SetCheckAll): Change int to bool. (M2Options_SetVerboseUnbounded): Change int to bool. (M2Options_SetUnboundedByReference): Change int to bool. (M2Options_SetOptimizing): Change int to bool. (M2Options_SetQuiet): Change int to bool. (M2Options_SetCpp): Change int to bool. (M2Options_SetM2g): Change int to bool. (M2Options_SetLowerCaseKeywords): Change int to bool. (M2Options_SetVerbose): Change int to bool. * gm2-gcc/m2treelib.cc (m2treelib_get_rvalue): Change int to bool. (m2treelib_get_field_no): Change int to bool. (m2treelib_get_set_value): Change int to bool. (m2treelib_get_set_address): Change int to bool. (m2treelib_get_set_address_if_var): Change int to bool. * gm2-gcc/m2treelib.def (get_set_address_if_var): Change int to bool. (get_set_address): Change int to bool. (get_set_value): Change int to bool. (get_field_no): Change int to bool. (get_rvalue): Change int to bool. * gm2-gcc/m2treelib.h (m2treelib_get_field_no): Change int to bool. (m2treelib_get_set_value): Change int to bool. (m2treelib_get_set_address): Change int to bool. (m2treelib_get_set_address_if_var): Change int to bool. * gm2-gcc/m2type.cc (m2type_BuildEndFunctionType): Change int to bool. * gm2-gcc/m2type.h (m2type_BuildEndFunctionType): Change int to bool. * gm2-libs-ch/dtoa.cc (dtoa_calcsign): Change int to bool. * gm2-libs-ch/ldtoa.cc (dtoa_calcsign): Change int to bool. (ldtoa_ldtoa): Change int to bool. * m2.flex (functionInfo): Change int to bool. (pushFunction): Change parameter from int to bool. * mc-boot/GDebug.cc (Debug_Halt): Rebuild. * mc-boot/GDebug.h (Debug_Halt): Rebuild. * mc-boot/GDynamicStrings.cc: Rebuild. * mc-boot/GDynamicStrings.h: Rebuild. * mc-boot/GFIO.cc: Rebuild. * mc-boot/GM2RTS.cc: Rebuild. * mc-boot/GM2RTS.h: Rebuild. * mc-boot/GPushBackInput.cc: Rebuild. * mc-boot/GRTExceptions.cc: Rebuild. * mc-boot/GRTint.cc: Rebuild. * mc-boot/GSysStorage.cc: Rebuild. * mc-boot/Gdecl.cc: Rebuild. * mc-boot/GsymbolKey.cc: Rebuild. * mc/symbolKey.mod: Rebuild. * target-independent/m2/Builtins.texi: Rebuild. * target-independent/m2/SYSTEM-iso.texi: Rebuild. * target-independent/m2/SYSTEM-pim.texi: Rebuild. * target-independent/m2/gm2-libs.texi: Rebuild. * tools-src/def2doc.py (PIM_Log): Change gm2-libs-pim to gm2-lib-log. Signed-off-by:
Gaius Mulley <gaiusmod2@gmail.com>
-
Stafford Horne authored
We should always carry the exceptions forward. This bug was found when working on testing glibc math tests, many tests were failing with Overflow and Underflow flags not set. This was traced to here. libgcc/ChangeLog: * config/or1k/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Remove statement clearing existing exceptions.
-
Jonny Grant authored
gcc/ChangeLog: * doc/extend.texi (Common Function Attributes) <nonnull>: Correct typo.
-
GCC Administrator authored
-
- Mar 18, 2023
-
-
David Malcolm authored
PR analyzer/109094 reports an ICE in the analyzer seen on qemu's target/i386/tcg/translate.c The issue turned out to be that when handling a longjmp, the code to pop the frames was generating an svalue for the result_decl of any popped frame that had a non-void return type (and discarding it) leading to "uninit" poisoned_svalue_diagnostic instances being saved since the result_decl is only set by the greturn stmt. Later, when checking the feasibility of the path to these diagnostics, m_check_expr was evaluated in the context of the frame of the longjmp, leading to an attempt to evaluate the result_decl of each intervening frames whilst in the context of the topmost frame, leading to an assertion failure in frame_region::get_region_for_local here: 919 case RESULT_DECL: 920 gcc_assert (DECL_CONTEXT (expr) == m_fun->decl); 921 break; This patch updates the analyzer's longjmp implementation so that it doesn't attempt to generate svalues for the result_decls when popping frames, fixing the assertion failure (and presumably fixing "uninit" false positives in a release build). gcc/analyzer/ChangeLog: PR analyzer/109094 * region-model.cc (region_model::on_longjmp): Pass false for new "eval_return_svalue" param of pop_frame. (region_model::pop_frame): Add new "eval_return_svalue" param and use it to suppress the call to get_rvalue on the result when needed by on_longjmp. * region-model.h (region_model::pop_frame): Add new "eval_return_svalue" param. gcc/testsuite/ChangeLog: PR analyzer/109094 * gcc.dg/analyzer/setjmp-pr109094.c: New test. Signed-off-by:
David Malcolm <dmalcolm@redhat.com>
-
Jonathan Wakely authored
libstdc++-v3/ChangeLog: PR libstdc++/109165 * testsuite/18_support/coroutines/hash.cc: Use const object in second call.
-
Paul Thomas authored
2023-03-18 Paul Thomas <pault@gcc.gnu.org> gcc/fortran PR fortran/103854 PR fortran/96122 PR fortran/37336 * class.cc (finalize_component): Include the missing arguments in the call to the component's finalizer wrapper. (has_finalizer_component): Do not return true for procedure pointer components. (finalizer_insert_packed_call): Remove the redundant argument in the call to the final subroutine. (generate_finalization_wrapper): Add support for assumed rank finalizers. (gfc_may_be_finalized): New helper function. * dump-parse-tree.cc (write_proc): Whitespace. * gfortran.h : Add prototype for gfc_may_be_finalized. * resolve.cc (resolve_function): Correct derived types that have an incomplete namespace. (resolve_where, gfc_resolve_where_code_in_forall, gfc_resolve_forall_body, gfc_resolve_code): Check that the op code is still EXEC_ASSIGN. If it is set lhs to must finalize. (is_finalizable_type): New function. (generate_component_assignments): Set must_finalize if needed. (gfc_resolve_finalizers): Error if assumed rank finalizer is not the only one. Warning on lack of scalar finalizer modified to account for assumed rank finalizers. (generate_final_call): New function. (generate_component_assignments): Enclose the outermost call in a block to capture automatic deallocation and final calls. Set must_finalize as required to satisfy the standards. Use an explicit pointer assignment for pointer components to capture finalization of the target. Likewise use explicit assignment for allocatable components. Do not use the temporary copy of the lhs in defined assignment if the component is allocatable. Put the temporary in the same namespace as the lhs symbol if the component may be finalized. Remove the leading assignment from the expansion of assignment of components that have their own defined assignment components. Suppress finalization of assignment of temporary components to the lhs. Make an explicit final call for the rhs function temporary if it exists. (gfc_resolve_code): Set must_finalize for assignments with an array constructor on the rhs. (gfc_resolve_finalizers): Ensure that an assumed rank finalizer is the only finalizer for that type and correct the surprising warning for the lack of a scalar finalizer. (check_defined_assignments): Handle allocatable components. (resolve_fl_derived): Set referenced the vtab for use associated symbols. (resolve_symbol): Set referenced an unreferenced symbol that will be finalized. * trans-array.cc (gfc_trans_array_constructor_value): Add code to finalize the constructor result. Warn that this feature was removed in F2018 and that it is suppressed by -std=2018. (trans_array_constructor): Add finalblock, pass to previous and apply to loop->post if filled. (gfc_add_loop_ss_code): Add se finalblock to outer loop post. (gfc_trans_array_cobounds, gfc_trans_array_bounds): Add any generated finalization code to the main block. (structure_alloc_comps): Add boolean argument to suppress finalization and use it for calls from gfc_deallocate_alloc_comp_no_caf. Otherwise it defaults to false. (gfc_copy_alloc_comp_no_fini): New wrapper for structure_alloc_comps. (gfc_alloc_allocatable_for_assignment): Suppress finalization by setting new arg in call to gfc_deallocate_alloc_comp_no_caf. (gfc_trans_deferred_array): Use gfc_may_be_finalized and do not deallocate the components of entities with a leading '_' in the name that are also marked as artificial. * trans-array.h : Add the new boolean argument to the prototype of gfc_deallocate_alloc_comp_no_caf with a default of false. Add prototype for gfc_copy_alloc_comp_no_fini. * trans-decl.cc(init_intent_out_dt): Tidy up the code. * trans-expr.cc (gfc_init_se): Initialize finalblock. (gfc_conv_procedure_call): Use gfc_finalize_tree_expr to finalize function results. Replace in-line block for class results with call to new function. (gfc_conv_expr): Finalize structure constructors for F2003 and F2008. Warn that this feature was deleted in F2018 and, unlike array constructors, is not default. Add array constructor finalblock to the post block. (gfc_trans_scalar_assign): Suppress finalization by setting new argument in call to gfc_deallocate_alloc_comp_no_caf. Add the finalization blocks to the main block. (gfc_trans_arrayfunc_assign): Use gfc_assignment_finalizer_call and ensure that finalization occurs after the evaluation of the rhs but using the initial value for the lhs. Finalize rhs function results using gfc_finalize_tree_expr. (trans_class_assignment, gfc_trans_assignment_1): As previous function, taking care to order evaluation, assignment and finalization correctly. * trans-io.cc (gfc_trans_transfer): Add the final block. * trans-stmt.cc (gfc_trans_call, gfc_trans_allocate): likewise. (trans_associate_var): Nullify derived allocatable components and finalize function targets with defined assignment components on leaving the block scope. (trans_allocate): Finalize source expressions, if required, and set init_expr artificial temporarily to suppress the finalization in gfc_trans_assignment. * trans.cc (gfc_add_finalizer_call): Do not finalize the temporaries generated in type assignment with defined assignment components. (gfc_assignment_finalizer_call): New function. (gfc_finalize_tree_expr): New function. * trans.h: Add finalblock to gfc_se. Add the prototypes for gfc_finalize_tree_expr and gfc_assignment_finalizer_call. gcc/testsuite/ PR fortran/64290 * gfortran.dg/finalize_38.f90 : New test. * gfortran.dg/finalize_38a.f90 : New test. * gfortran.dg/allocate_with_source_25.f90 : The number of final calls goes down from 6 to 4. * gfortran.dg/associate_25.f90 : Remove the incorrect comment. * gfortran.dg/auto_dealloc_2.f90 : Change the tree dump expr but the final count remains the same. * gfortran.dg/unlimited_polymorphic_8.f90 : Tree dump reveals foo.1.x rather than foo.0.x PR fortran/67444 * gfortran.dg/finalize_39.f90 : New test. PR fortran/67471 * gfortran.dg/finalize_40.f90 : New test. PR fortran/69298 PR fortran/70863 * gfortran.dg/finalize_41.f90 : New test. PR fortran/71798 * gfortran.dg/finalize_42.f90 : New test. PR fortran/80524 * gfortran.dg/finalize_43.f90 : New test. PR fortran/82996 * gfortran.dg/finalize_44.f90 : New test. PR fortran/84472 * gfortran.dg/finalize_45.f90 : New test. PR fortran/88735 PR fortran/93691 * gfortran.dg/finalize_46.f90 : New test. PR fortran/91316 * gfortran.dg/finalize_47.f90 : New test. PR fortran/106576 * gfortran.dg/finalize_48.f90 : New test. PR fortran/37336 * gfortran.dg/finalize_49.f90 : New test. * gfortran.dg/finalize_50.f90 : New test. * gfortran.dg/finalize_51.f90 : New test.
-
GCC Administrator authored
-
Peter Bergner authored
We ICE in combine_reload_insn if we've deleted the TO insn operand during processing, because lra_get_insn_recog_data doesn't expect to see the note that replaces the deleted insn. The solution here is to exit early if TO is a debug insn or note. 2023-03-17 Peter Bergner <bergner@linux.ibm.com> gcc/ PR rtl-optimization/109179 * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
-
- Mar 17, 2023
-
-
Hans-Peter Nilsson authored
Avoid unweildy structure-layout-specific message-matching expressions by exluding targets that lay out structures as if they had been specified with __attribute__ ((__packed__)), for tests where multiple messages depend on the structure layout. It's arguably a judgement call whether to skip some of these tests or add multiple lines of matches depending on the layout of structures. * gcc.dg/plugin/infoleak-2.c, gcc.dg/plugin/infoleak-CVE-2011-1078-1.c, gcc.dg/plugin/infoleak-CVE-2011-1078-2.c, gcc.dg/plugin/infoleak-CVE-2017-18549-1.c, gcc.dg/plugin/infoleak-CVE-2017-18550-1.c, gcc.dg/plugin/infoleak-antipatterns-1.c, gcc.dg/plugin/infoleak-fixit-1.c: Skip for default_packed targets.
-
Jason Merrill authored
When a lambda refers to a constant local variable in the enclosing scope, we tentatively capture it, but if we end up pulling out its constant value, we go back at the end of the lambda and prune any unneeded captures. Here while parsing the template we decided that the dim capture was unneeded, because we folded it away, but then we brought back the use in the template trees that try to preserve the source representation with added type info. So then when we tried to instantiate that use, we couldn't find what it was trying to use, and crashed. Fixed by not trying to prune when parsing a template; we'll prune at instantiation time. PR c++/108975 gcc/cp/ChangeLog: * lambda.cc (prune_lambda_captures): Don't bother in a template. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/lambda/lambda-const11.C: New test.
-
Jason Merrill authored
Since we aren't going through the normal call machinery, we need to check the dtor access specifically. PR c++/109172 gcc/cp/ChangeLog: * except.cc (build_throw): Check dtor access. gcc/testsuite/ChangeLog: * g++.dg/eh/dtor4.C: New test.
-
Jonathan Wakely authored
libstdc++-v3/ChangeLog: PR libstdc++/109165 * include/std/coroutine (hash<>::operator()): Add const. * testsuite/18_support/coroutines/hash.cc: New test.
-
Jason Merrill authored
do_friend was only considering class-qualified identifiers for the qualified-id case, but we also need to skip local scope when there's an explicit namespace scope. PR c++/69410 gcc/cp/ChangeLog: * friend.cc (do_friend): Handle namespace as scope argument. * decl.cc (grokdeclarator): Pass down in_namespace. gcc/testsuite/ChangeLog: * g++.dg/lookup/friend24.C: New test.
-