aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-05-11libgomp testsuite: Don't amend 'LD_LIBRARY_PATH' for system-provided HSA ↵Thomas Schwinge2-5/+0
Runtime library This is only active if GCC is 'configure'd with '--with-hsa-runtime=[...]' or '--with-hsa-runtime-lib=[...]' -- which nobody really is doing, as far as I can tell. 'libgomp/testsuite/lib/libgomp.exp:libgomp_init' states: # For build-tree testing, also consider the library paths used for builing. # For installed testing, we assume all that to be provided in the sysroot. if { $blddir != "" } { [...] global hsa_runtime_lib if { $hsa_runtime_lib != "" } { append always_ld_library_path ":$hsa_runtime_lib" } } However, the libgomp GCN plugin is unconditionally built against the GCC-shipped 'include/hsa*.h' header files, and at run time does 'dlopen("libhsa-runtime64.so.1")', so there is no system-provided HSA Runtime library "used for builing". It thus doesn't make sense to amend 'LD_LIBRARY_PATH' for system-provided HSA Runtime library. libgomp/ * testsuite/lib/libgomp.exp (libgomp_init): Don't 'append always_ld_library_path ":$hsa_runtime_lib"'. * testsuite/libgomp-test-support.exp.in (hsa_runtime_lib): Don't set.
2022-05-11docs: document --with-zstdMartin Liska1-0/+5
PR other/105527 gcc/ChangeLog: * doc/install.texi: Document the configure option --with-zstd.
2022-05-11i386: simplify cpu_feature handlingMartin Liska2-62/+67
The patch removes unneeded loops for cpu_features2 and CONVERT_EXPR that can be simplified with NOP_EXPR. gcc/ChangeLog: * common/config/i386/cpuinfo.h (has_cpu_feature): Directly compute index in cpu_features2. (set_cpu_feature): Likewise. * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove loop for cpu_features2 and use NOP_EXPRs.
2022-05-11[Ada] Proof of 'Image support for unsigned integersYannick Moy27-186/+793
Prove System.Image_U, making the connection with the space available in the string as computed with System.Width_U and the functions that support the other direction of 'Value in System.Value_U. The units that support 'Image cannot be marked Pure anymore, as they now depend on non-pure units. gcc/ada/ * libgnat/s-imaged.ads: Remove Pure. * libgnat/s-imagef.ads: Remove Pure. * libgnat/s-imager.ads: Remove Pure. * libgnat/s-imageu.adb: Add ghost code. * libgnat/s-imageu.ads: Add contracts. * libgnat/s-imde128.ads: Remove Pure. * libgnat/s-imde32.ads: Remove Pure. * libgnat/s-imde64.ads: Remove Pure. * libgnat/s-imfi128.ads: Remove Pure. * libgnat/s-imfi32.ads: Remove Pure. * libgnat/s-imfi64.ads: Remove Pure. * libgnat/s-imgflt.ads: Remove Pure. * libgnat/s-imglfl.ads: Remove Pure. * libgnat/s-imgllf.ads: Remove Pure. * libgnat/s-imglllu.ads: Instantiate with ghost subprograms. * libgnat/s-imgllu.ads: Instantiate with ghost subprograms. * libgnat/s-imgrea.ads: Remove Pure. * libgnat/s-imguns.ads: Instantiate with ghost subprograms. * libgnat/s-imguti.ads: Remove Pure. * libgnat/s-valueu.adb (Prove_Iter_Scan_Based_Number_Ghost, Prove_Scan_Only_Decimal_Ghost): New lemmas. * libgnat/s-valueu.ads (Uns_Option): Do not make type ghost to be able to use it as formal in instantiations. (Only_Decimal_Ghost): New ghost query. (Prove_Iter_Scan_Based_Number_Ghost, Prove_Scan_Only_Decimal_Ghost): New lemmas. * libgnat/s-widlllu.ads: Adapt to changes in Width_U. * libgnat/s-widllu.ads: Adapt to changes in Width_U. * libgnat/s-widthu.adb: Change generic function in generic package in order to complete the postcondition. Tighten the upper bound on the result by 1. * libgnat/s-widthu.ads: Same. * libgnat/s-widuns.ads: Adapt to changes in Width_U. * gcc-interface/Make-lang.in: Add dependencies on a-nubinu, a-numeri.ads and a-widuns.ads.
2022-05-11[Ada] Sort Detect_Blocking alphabetically among names and pragmasPiotr Trojanek1-2/+2
In GNAT User's Guide section about configuration pragmas the Detect_Blocking has been recently moved to an alphabetic order. This patch moves the its Name_Id and Pragma_Is in the source code to match this order. gcc/ada/ * snames.ads-tmpl (Detect_Blocking): Move after Default_Storage_Pool.
2022-05-11[Ada] Fix Compile_Time_(Error|Warning) as non-configuration pragmasPiotr Trojanek2-13/+4
Uses of Compile_Time_Error and Compile_Time_Warning as configuration pragmas were detected with a custom check in semantic analysis. Now they are detected with an existing general check in parser. gcc/ada/ * sem_prag.adb (Analyze_Pragma): Remove custom check for Compile_Time_Error and Compile_Time_Warning pragmas. * snames.ads-tmpl (Compile_Time_Error, Compile_Time_Warning): Move beyond Last_Configuration_Pragma_Name.
2022-05-11[Ada] Correctly reject record aggregate using bracketsMarc Poulhiès9-30/+39
Ada 2022 bracket syntax is only allowed for arrays and containers, not records. This change correctly rejects record aggregates using brackets along with few cases of brackets being used instead of parentheses. gcc/ada/ * libgnat/a-direct.adb (Start_Search_Internal): Use parentheses for record aggregate. * libgnat/a-stbubo.adb (Get_UTF_8): Likewise. * libgnat/a-stbuun.adb (Get_UTF_8): Likewise. * libgnat/a-stzbou.ads (Null_Bounded_Wide_Wide_String): Likewise. * libgnat/a-swmwco.ads (Lower_Case_Mapping, Basic_Mapping): Likewise. * libgnat/a-szmzco.ads (Lower_Case_Mapping, Basic_Mapping): Likewise. * libgnat/s-statxd.adb (Fields): Likewise. * libgnat/s-stausa.adb (Initialize): Likewise. * sem_aggr.adb (Resolve_Record_Aggregate): Reject aggregates using brackets.
2022-05-11[Ada] Fix unbalanced paren in documentation marker for GNAT StudioPiotr Trojanek11-48/+48
Unbalanced parens can be found when editing in emacs using the "check-parens" command. Offending occurrences must be examined manually, because few of them are intentional. Minor cleanup of typos in documentation. gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst, doc/gnat_rm/implementation_of_specific_ada_features.rst, doc/gnat_rm/representation_clauses_and_pragmas.rst, doc/gnat_rm/the_gnat_library.rst, doc/gnat_rm/the_implementation_of_standard_i_o.rst, doc/gnat_ugn/building_executable_programs_with_gnat.rst, doc/gnat_ugn/gnat_and_program_execution.rst, doc/gnat_ugn/platform_specific_information.rst: Fix unbalanced parentheses and brackets. * sem_prag.adb (pragma Obsolescent): Likewise. * gnat_rm.texi, gnat_ugn.texi: Regenerate.
2022-05-11[Ada] New No_Local_Tagged_Types restrictionMarc Poulhiès5-395/+425
Add new configuration restriction No_Local_Tagged_Types. This new restriction ensures at compile time that all tagged types are only declared at the library level. gcc/ada/ * libgnat/s-rident.ads (Restriction_Id): Add No_Local_Tagged_Types, update comment for adding new GNAT specific restriction. * restrict.ads (Implementation_Restriction): Add No_Local_Tagged_Types. * sem_ch3.adb (Analyze_Full_Type_Declaration): Add check for tagged type at library level. * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: Add No_Local_Tagged_Types description. * gnat_rm.texi: Regenerate.
2022-05-11[Ada] Fix spurious ambiguity for if_expression containing operatorEric Botcazou1-1/+1
It comes from a discrepancy in the analysis of binary operators, between the predefined ones for which we register an interpretation with the base type and the user-defined ones for which we register an interpretation with the subtype directly. This is harmless in almost all cases because the two interpretations do not differ by this type property only, but is problematic when the operation is the dependent expression of a conditional expression, because it causes two interpretations of the conditional expression to be registered, which this time differ by this type property only, thus making them impossible to be disambiguated later. gcc/ada/ * sem_ch4.adb (Analyze_User_Defined_Binary_Op): Use the base type in the interpretation of the operator.
2022-05-11[Ada] Fix style of body header boxesPiotr Trojanek3-3/+5
gcc/ada/ * sem_case.adb (Free_Value_Sets): Fix style in body header box. * sem_ch12.adb (Build_Subprogram_Wrappers): Likewise. * sem_util.adb (Statically_Denotes_Entity): Likewise.
2022-05-11[Ada] Do not create useless itype in Constrain_AccessEtienne Servais1-1/+4
In the case of a constrained access definition for a record component we are calling create_itype twice the former not being updated. This leads to a malformed node that crashes -gnatG when predicates are activated. Instead of creating a default Itype for Desig_Subtype, create it with the correct scope in each case. gcc/ada/ * sem_ch3.adb (Constrain_Access): Call Desig_Subtype in each if branch to avoid calling it twice.
2022-05-11[Ada] Detect infinite loops with operators in exit conditionsPiotr Trojanek1-7/+9
To warn about infinite loops we detect variables referenced in loop exit conditions. We handle references within boolean operators, i.e. comparison and negation, which are likely to appear at the top level of the condition (e.g. "X > 0"). However, we can easily handle all operators, because they are likely to appear inside the condition (e.g. "abs (X) > 0.0"). Cleanup related to a new restriction No_Uninitialized_Local_Scalars. gcc/ada/ * sem_warn.adb (Find_Var): Detect all operators; replace "condition" to "expression" in comments, because when this routine is called recursively it no longer examines the condition. (Is_Suspicious_Function_Name): Reduce scope of a local variable to avoid shadowing with a parameter of a nested Substring_Present function.
2022-05-11[Ada] Adapt proof of System.Arith_Double after update of Z3Yannick Moy1-2/+16
Update to version 4.8.14 of prover Z3 requires minor adjustments of the ghost code to add necessary intermediate assertions that drive the automatic proof. gcc/ada/ * libgnat/s-aridou.adb (Double_Divide, Scaled_Divide): Add intermediate assertions.
2022-05-11[Ada] Update categorization of implementation restrictionsPiotr Trojanek2-46/+40
Some of the restrictions were initially implemented as specific to GNAT, but now they are part of Ada; likewise, some of recently added restrictions were considered to be part of Ada, but are not yet in the standard. This patch updates their categorization based on Ada 202x Draft 32. Only a No_Implementation_Restrictions restriction, which is specific to GNAT, is affected. Cleanup related to a new restriction No_Uninitialized_Local_Scalars. gcc/ada/ * libgnat/s-rident.ads (Implementation_Restriction): Remove No_Dynamic_Attachment, No_Implementation_Attributes, No_Implementation_Pragmas, No_Local_Protected_Objects, No_Protected_Type_Allocators, No_Relative_Delay, No_Requeue_Statements, No_Select_Statements, No_Task_Termination, Pure_Barriers and Simple_Barriers; add No_Dynamic_Sized_Objects, No_Implicit_Protected_Object_Allocations, No_Implicit_Task_Allocations, No_Task_At_Interrupt_Priority and Static_Dispatch_Tables; sort alphabetically. * restrict.ads (Restriction_Id): Change Pure_Barriers and No_Task_Termination from GNAT to Ada restrictions.
2022-05-11[Ada] Fix "S p e c" and "B o d y" file headersPiotr Trojanek6-6/+6
Fix Spec/Body headers in .adb/.ads files, respectively; all violations detected with grep and manually filtered because of .tmpl files. gcc/ada/ * exp_atag.adb, lib-util.ads, libgnat/g-decstr.adb, libgnat/g-exptty.adb, libgnat/g-socpol.adb, libgnat/s-strhas.adb: Fix headers.
2022-05-11[Ada] Add SUSE 32bit dependencyJoao Azevedo2-4/+10
On SUSE 15, glibc-locale-base-32bit is needed to run 32bit versions of Libadalang tools. gcc/ada/ * doc/gnat_ugn/platform_specific_information.rst: Add glibc-locale-base-32bit as a dependency in SUSE distributions. * gnat_ugn.texi: Regenerate.
2022-05-11[Ada] Fix formatting glitches in GNAT User's GuidePiotr Trojanek4-12/+12
Only enhancement of formatting. gcc/ada/ * doc/gnat_ugn/gnat_and_program_execution.rst, doc/gnat_ugn/gnat_utility_programs.rst, doc/gnat_ugn/inline_assembler.rst: Fix typos and formatting glitches. * gnat_ugn.texi: Regenerate.
2022-05-11[Ada] Use pygments for Ada code examples of elaboration controlPiotr Trojanek1-26/+26
Only enhancement of formatting. gcc/ada/ * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Change blocks from plain code to Ada.
2022-05-11[Ada] Excess finalization on assignment with target name symbolGary Dismukes1-3/+9
In cases where the Ada 2022 feature of target name symbols (@) is used and the evaluation of the name is side-effect free, the compiler creates a temporary object to hold the value of the target object for use as the value of "@" symbols in the right-hand side expression. In the case where the target's type is controlled, or has controlled subcomponents, this can result in extra finalization calls (for the temporary object). The correction is to bypass the use of a temp and fall back on the more general approach of creating and calling a procedure with an in-out parameter for performing the assignment. gcc/ada/ * exp_ch5.adb (Expand_Assign_With_Target_Names): Bypass the temp object approach in the case where the type of the LHS is controlled or has controlled subcomponents (Needs_Finalization is True), and use the procedure approach instead.
2022-05-11[Ada] fix crash on Secondary_Stack_Size with discriminantBob Duff1-2/+2
This patch fixes a crash caused by specifying the Secondary_Stack_Size aspect of a task type as the value of a discriminant of the task type, and then declaring a record component whose type is the task type, constrained to a discriminant of the record. gcc/ada/ * sem_ch3.adb (Get_Discr_Value): Copy the result. Otherwise, the "tree" can be malformed (a DAG, not a tree) because Get_Discr_Value could be returning some subtree already attached to the tree.
2022-05-11[Ada] Reset Reachable field when mutating label into loop entityPiotr Trojanek1-0/+1
An entity flag Reachable now only applies to E_Label entities and needs to be explicitly reset when mutating labels into loop entities. Only needed to prevent cascaded errors when compiling a malicious ACATS test with -gnatq (try semantics, even if parse errors). Cleanup related to detection of uninitialized scalars with GOTO statements. gcc/ada/ * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on proper label entities.
2022-05-11[Ada] Fix layout of tables in PDF version of GNAT RMPiotr Trojanek1-0/+4
Tables with small left columns and large right columns had colliding text in the PDF version of GNAT RM. Spotted while adding description of pragma Ada_2022. gcc/ada/ * doc/gnat_rm/implementation_defined_characteristics.rst: Add tabularcolums directive, as explained in documentation of Sphinx and tabular LaTeX package.
2022-05-11[Ada] Fix layout in description of aspects and pragmasPiotr Trojanek3-40/+40
Remove extra whitespace in examples of pragmas and aspects. Spotted while adding description of pragma Ada_2022. gcc/ada/ * doc/gnat_rm/implementation_defined_aspects.rst, doc/gnat_rm/implementation_defined_pragmas.rst: Remove extra whitespace. * gnat_rm.texi: Regenerate.
2022-05-11[Ada] Fix markup in description of implementation-defined characteristicsPiotr Trojanek2-119/+36
Fix formatting of description lists, i.e. continuation lines are now indented like their preceding lines. Spotted while adding description of pragma Ada_2022. gcc/ada/ * doc/gnat_rm/implementation_defined_characteristics.rst: Remove extra indent in continuation lines; indent both descriptions of Max_Picture_Length. * gnat_rm.texi: Regenerate.
2022-05-11[Ada] Fix markup in description of pragma EliminatePiotr Trojanek2-25/+28
Fix formatting of a nested bullet lists. Spotted while adding description of pragma Ada_2022. gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst (Pragma Eliminate): Fix markup. * gnat_rm.texi: Regenerate.
2022-05-11[Ada] Suppress warning in g-sthcso for non-unix platformsJohannes Kliemann1-0/+5
gcc/ada/ * libgnat/g-sthcso.adb: Suppress warning about unneeded use type clause.
2022-05-11[Ada] Add guard for making only legal labels unreachablePiotr Trojanek1-1/+3
An entity flag Reachable now only applies to E_Label entities. We had an appropriate guard for setting this flag, but not for clearing. Cleanup related to detection of uninitialized scalars with GOTO statements. gcc/ada/ * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on proper label entities.
2022-05-11[Ada] Document pragma Ada_2022Piotr Trojanek4-841/+906
Pragma Ada_2022 is similar to existing pragma Ada_2012 and similarly deserves to be documented. gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst (Pragma Ada_2022): Copy description from pragma Ada 2012 and adapt. * doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration Pragmas): List pragma Ada 2022. * gnat_rm.texi, gnat_ugn.texi: Regenerate.
2022-05-11[Ada] Properly reject unsupported address specificationsSteve Baird3-19/+66
In the case of an object declaration with an indefinite nominal subtype (roughly speaking, that's an object that takes its bounds, discriminants, and/or tag from its explicit initial value), GNAT does not support address specifications unless the size of the object is known at compile time. In some cases, such unsupported address specifications were not properly rejected. This could lead to either an internal error during compilation or (in the class-wide case) to a warning accompanied by raising Program_Error at run time. gcc/ada/ * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Replace the existing check for an address specification for an object of a class-wide type with a more general check which rejects either the class-wide case or the case where the FE would (if the address specification were accepted) build a malformed tree (specifically, an object renaming declaration with a specified address). In the case where the check fails, reject the construct at compile time instead of generating an unconditional raise of Program_Error. * doc/gnat_rm/representation_clauses_and_pragmas.rst: Update documentation to reflect these changes. * gnat_rm.texi: Regenerate.
2022-05-11[Ada] Move Reachable flag to E_Label entitiesPiotr Trojanek1-1/+1
An entity flag Reachable is described as "defined in labels". It is only read and written for entities of kind E_Label (the code has necessary guards for that). There no need for this flag to be specified for all entities in the generated AST. Cleanup related to detection of uninitialized scalars with GOTO statements. gcc/ada/ * gen_il-gen-gen_entities.adb (Reachable): Move from Root_Entity_Type to E_Label.
2022-05-11[Ada] Set_Is_Known_Valid only if Safe_To_Capture_ValueAlexandre Oliva1-1/+4
Library-level variables with initializers could have Is_Known_Valid set when analyzing their definition, and the flag would only be cleared when analyzing a statement that assigned to them. Procedures and functions analyzed before the flag got cleared could skip validity checking for the corresponding variable. This patch fixes this problem: we no longer set Is_Known_Valid when analyzing initializers of library-level variables,and use the same Safe_To_Capture_Value predicate that prevents assignments from recording known-valid states. This causes any variable with an initialization value, that would have had its initializer value used as its known constant value if the use is analyzed before any assignment to the variable, to no longer be regarded as holding a constant value. Some might turn out to have a constant value, after all, but we don't know that yet: we can only tell after analyzing every subprogram that could possibly assign to it. At the points where Safe_To_Capture_Value calls are introduced, Never_Set_In_Source does not yet hold its final value. gcc/ada/ * exp_ch3.adb (Expand_N_Object_Declaration): Guard Set_Is_Known_Valid with Safe_To_Capture_Value.
2022-05-11[Ada] Avoid crash for -gnatR -gnatcBob Duff1-45/+38
If the -gnatR -gnatc are both given, then the compiler crashes. This patch fixes that, and avoids printing the uncomputed sizes and alignments that were causing the crash. (Previous versions of the compiler printed incorrect values in such cases.) gcc/ada/ * repinfo.adb (List_Object_Info): Do not try to print values that have not been computed (and so are No_Uint). (Rep_Not_Constant): Reverse sense and change name to Compile_Time_Known_Rep. This makes the code at call sites a little more readable. Simplify code to a single return statement.
2022-05-11bootstrap/105551 - restore nvptx buildRichard Biener1-4/+8
The following makes sure to disable var-tracking if only dwarf2-line debuginfo is present. 2022-05-11 Richard Biener <rguenther@suse.de> PR bootstrap/105551 * opts.cc (finish_options): Also disable var-tracking if !DWARF2_DEBUGGING_INFO.
2022-05-11Optimize movzwl + vmovd/vmovq to vmovw.liuhongt3-0/+164
Similarly optimize movl + vmovq to vmovd. gcc/ChangeLog: PR target/104915 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New pre_reload define_insn_and_split. (*vec_setv2di_0_zero_extendhi_1): Ditto. (*vec_set<mode>_0_zero_extendsi): Ditto. (*vec_setv2di_0_zero_extendsi_1): Ditto. (ssewvecmode): New mode attr. (ssewvecmodelower): Ditto. (ssepackmodelower): Ditto. gcc/testsuite/ChangeLog: * gcc.target/i386/pr104915-vmovd.c: New test. * gcc.target/i386/pr104915-vmovw.c: New test.
2022-05-11rs6000: Fix constraint v with rs6000_constraints[RS6000_CONSTRAINT_v]Kewen Lin1-1/+1
Currently we hardcode ALTIVEC_REGS for register constraint v and RS6000_CONSTRAINT_v looks confusing, this is to fix it with rs6000_constraints[RS6000_CONSTRAINT_v] to align with some other existing register constraints with RS6000_CONSTRAINT_*. gcc/ChangeLog: * config/rs6000/constraints.md (register constraint v): Use rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
2022-05-11opts: do not allow Separate+Joined ending with =Martin Liska9-17/+24
Do not allow strange option format: -msmall-data-limit= 11. For -output-pch we need to use Separate syntax as lang spec rules automatically append a space. PR target/105355 gcc/ChangeLog: * config/riscv/riscv.opt: Remove Separate from -msmall-data-limit=. * optc-gen.awk: Report error for the described situation. * gcc.cc: Use Separate syntax. * opts.cc (gen_command_line_string): Change option name. gcc/c-family/ChangeLog: * c-opts.cc (c_common_handle_option): Change option name. * c.opt: Remove Joined and use Separate option. gcc/cp/ChangeLog: * lang-specs.h: Use Separate syntax. gcc/objc/ChangeLog: * lang-specs.h: Use Separate syntax. gcc/objcp/ChangeLog: * lang-specs.h: Use Separate syntax.
2022-05-10MAINTAINERS: Remove myself from DCO sectionKewen Lin1-2/+0
ChangeLog: * MAINTAINERS: Remove myself from DCO section.
2022-05-11This patch skips constant folding for fmin/max when either argument is sNaN. ↵Haochen Gui2-5/+42
According to C standard, fmin(sNaN, sNaN)= qNaN, fmin(sNaN, NaN) = qNaN. gcc/ PR target/105414 * match.pd (minmax): Skip constant folding for fmin/fmax when both arguments are sNaN or one is sNaN and another is NaN. gcc/testsuite/ PR target/105414 * gcc.dg/pr105414.c: New.
2022-05-11Daily bump.GCC Administrator12-1/+586
2022-05-10Update gcc hr.poJoseph Myers1-5/+5
* hr.po: Update.
2022-05-10Fortran: check TEAM arguments to coarray intrinsicsHarald Anlauf2-0/+54
TEAM arguments to coarray intrinsics must be scalar expressions of type TEAM_TYPE of intrinsic module ISO_FORTRAN_ENV. gcc/fortran/ChangeLog: PR fortran/105526 * resolve.cc (check_team): New. (gfc_resolve_code): Add checks for arguments to coarray intrinsics FORM TEAM, CHANGE TEAM, and SYNC TEAM. gcc/testsuite/ChangeLog: PR fortran/105526 * gfortran.dg/coarray_50.f90: New test.
2022-05-10x86: Add .note.GNU-stack section only for LinuxH.J. Lu8-0/+16
Add .note.GNU-stack section only for Linux since it may not be supported on non-Linux OSes. __ELF__ isn't checked since these tests can only run on Linux/x86 ELF systems. PR target/105472 * gcc.target/i386/iamcu/asm-support.S: Add .note.GNU-stack section only for Linux. * gcc.target/x86_64/abi/asm-support.S: Likewise. * gcc.target/x86_64/abi/avx/asm-support.S: Likewise. * gcc.target/x86_64/abi/avx512f/asm-support.S: Likewise. * gcc.target/x86_64/abi/avx512fp16/asm-support.S: Likewise. * gcc.target/x86_64/abi/avx512fp16/m256h/asm-support.S: Likewise. * gcc.target/x86_64/abi/avx512fp16/m512h/asm-support.S: Likewise. * gcc.target/x86_64/abi/ms-sysv/do-test.S: Likewise.
2022-05-10isel: Fix up gimple_expand_vec_set_expr [PR105528]Jakub Jelinek2-1/+25
The following testcase ICEs (and only without -g), because we don't replace one VEC_COND_EXPR with .VCOND* call. We don't do that because gimple_expand_vec_set_expr adds some stmts before *gsi and then uses gsi_remove to remove it. gsi_remove moves the iterator to the next stmt and in the caller we then do gsi_next before looking at another stmt, which means we can skip processing of one stmt, which in this case happened to be a VEC_COND_EXPR but with -g is some debug stmt in between. As we always emit some stmts before it, it is easy to update the iterator to the last stmt emitted there, so that caller continues really with the next stmt. 2022-05-10 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/105528 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment. * gcc.dg/pr105528.c: New test.
2022-05-10doc: Fix mode iterator exampleSegher Boessenkool1-1/+1
The example missed the mode condition in the replacement text. 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org> * doc/md.texi (Defining Mode Iterators): Correct example replacement text.
2022-05-10c++: Remove SET_PACK_EXPANSION_PATTERN / SET_ARGUMENT_PACK_ARGSPatrick Palka6-38/+20
Unlike in C, in C++ the conditional operator yields an lvalue if both branches are lvalues, so these setter macros are unnecessary; we can just assign to PACK_EXPANSION_PATTERN and ARGUMENT_PACK_ARGS directly. gcc/cp/ChangeLog: * coroutines.cc (instantiate_coro_traits): Adjust accordingly. * cp-tree.def: Remove mention of SET_PACK_EXPANSION_PATTERN. * cp-tree.h (SET_PACK_EXPANSION_PATTERN): Remove. (SET_ARGUMENT_PACK_ARGS): Remove. * module.cc (trees_in::tree_node): Adjust accordingly. * parser.cc (make_char_string_pack): Likewise. (make_string_pack): Likewise. * pt.cc (make_pack_expansion): Likewise. (template_parm_to_arg): Likewise. (coerce_template_parameter_pack): Likewise. (extract_fnparm_pack): Likewise. (extract_locals_r): Likewise. (make_argument_pack): Likewise. (tsubst_argument_pack): Likewise. (lookup_init_capture_pack): Likewise. (type_unification_real): Likewise. (unify_pack_expansion): Likewise. (tsubst_initializer_list): Likewise.
2022-05-10c++: Harden *_PACK_EXPANSION and *_ARGUMENT_PACK macrosPatrick Palka2-13/+24
This makes the accessor macros for TYPE_/EXPR_PACK_EXPANSION and TYPE_/NONTYPE_ARGUMENT_PACK check the tree code of the argument. gcc/cp/ChangeLog: * cp-tree.h (PACK_EXPANSION_CHECK): Define. (PACK_EXPANSION_PATTERN): Use PACK_EXPANSION_CHECK. (SET_PACK_EXPANSION_PATTERN): Likewise. (PACK_EXPANSION_PARAMETER_PACKS): Likewise. (PACK_EXPANSION_EXTRA_ARGS): Likewise. (PACK_EXPANSION_LOCAL_P): Likewise. (PACK_EXPANSION_SIZEOF_P): Likewise. (PACK_EXPANSION_AUTO_P): Likewise. (PACK_EXPANSION_FORCE_EXTRA_ARGS_P): Likewise. (ARGUMENT_PACK_CHECK): Define. (ARGUMENT_PACK_ARGS): Use ARGUMENT_PACK_CHECK. (SET_ARGUMENT_PACK_ARGS): Likewise. * parser.cc (cp_parser_sizeof_pack): Check for error_mark_node before setting PACK_EXPANSION_SIZEOF_P.
2022-05-10libstdc++: Add <spanstream> declarations to <iosfwd> [PR105284]Jonathan Wakely4-4/+90
libstdc++-v3/ChangeLog: PR libstdc++/105284 * include/std/iosfwd: Add declarations for <spanstream> class templates and typedefs. * include/std/spanstream (basic_spanbuf, basic_ispanstream) (basic_ospanstream, basic_spanstream): Remove default template arguments. * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream> declarations. * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream> default arguments.
2022-05-10libstdc++: Add <syncstream> declarations to <iosfwd> [PR105284]Jonathan Wakely4-4/+353
libstdc++-v3/ChangeLog: PR libstdc++/105284 * include/std/iosfwd: Add declarations for <synstream> class templates and typedefs. * include/std/syncstream (basic_syncbuf, basic_osyncstream): Remove default template arguments. * testsuite/27_io/headers/iosfwd/synopsis.cc: New test. * testsuite/27_io/headers/iosfwd/types.cc: New test.
2022-05-10libiberty: fix wrong replacent in commentsMartin Liska1-4/+4
libiberty/ChangeLog: * regex.c: Restore comments.