aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2020-10-20[Ada] Make attribute Update an obsolescent featureClaire Dross1-0/+5
gcc/ada/ * sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update when Warn_On_Obsolescent_Feature is set to True.
2020-10-20[Ada] CUDA: build procedure calls instead of function callsRichard Kenner1-9/+9
gcc/ada/ * gnat_cuda.adb (Build_Register_Function_Call): Make procedure call instead of function, rename to Build_Register_Procedure_Call. (Build_CUDA_Init_Proc): Make procedure call instead of function.
2020-10-20[Ada] Crash on cond expression as actual for anonymous access formalJustin Squirek1-11/+16
gcc/ada/ * exp_ch6.adb (Expand_Branch): Properly anticipate expansion of conditional expressions producing object declarations in addition to assignment statements, and rename formal.
2020-10-20[Ada] Fixes for pretty command-line GNATprove output with -gnatdFYannick Moy2-40/+82
gcc/ada/ * errout.adb (Write_Source_Code_Line): Adopt display closer to GCC format. (Output_Messages): Deal specially with info messages. * erroutc.adb (Prescan_Message): Fix bug leading to check messages being considered as error messages in pretty output mode.
2020-10-20[Ada] Hang on cond expression as actual for anonymous access formalJustin Squirek1-6/+9
gcc/ada/ * exp_ch6.adb (Expand_Call_Helper): Properly handle the case where the condition of a conditional expression has been optimized out when calculating the value of an extra accessibility parameter.
2020-10-20[Ada] gnatpp: Fix documentation of threshold switchesBob Duff1-4/+4
gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".
2020-10-20[Ada] New warning on not fully initialized box aggregateArnaud Charlet19-47/+89
gcc/ada/ * sem_aggr.adb (Resolve_Aggregate): Warn on not fully initialized box aggregate. * sem_aggr.ads: Fix typo. * sem_res.adb (Resolve_Actuals): Fix typo in error message format marking it incorrectly as a continuation message. * sem_elab.adb (Check_Internal_Call_Continue): Similarly, add missing primary message in case of a call to an actual generic subprogram. * sem_warn.adb (Check_References): Do not warn on read but never assigned variables if the type is partially initialized. * libgnat/a-except.ads, libgnat/a-ststun.ads, libgnat/g-sechas.ads, libgnat/a-cbdlli.ads, libgnat/a-cfdlli.ads, libgnat/a-cobove.ads, libgnat/a-cohata.ads, libgnat/a-crbltr.ads, libgnat/a-cbmutr.ads, libgnat/a-crdlli.ads, libgnat/a-cbsyqu.ads: Address new warning. * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update doc on -gnatwv. * gnat_ugn.texi: Regenerate. gcc/testsuite/ * gnat.dg/opt11.adb: Add new expected warning.
2020-10-20[Ada] Inlining nonstatic calls to static expression functionsGary Dismukes1-0/+6
gcc/ada/ * sem_ch6.adb (Analyze_Expression_Function): Mark static expression functions as inlined.
2020-10-20[Ada] Crash on precondition, discriminant and protected objectsArnaud Charlet1-1/+1
gcc/ada/ * contracts.adb (Is_Prologue_Renaming): This function was missing support for E_Constant which can also be generated in protected objects.
2020-10-20[Ada] Issue with gnatbind -V switch and Ada 2012Arnaud Charlet1-14/+17
gcc/ada/ * bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible strings. Code cleanup.
2020-10-20[Ada] Fix comments as volatility properties can apply to objectsYannick Moy2-5/+5
gcc/ada/ * sem_util.adb, sem_util.ads: Comment fix.
2020-10-20[Ada] Spurious discriminant check on "for of" loopArnaud Charlet1-2/+26
gcc/ada/ * sem_ch8.adb (Check_Constrained_Object): Suppress discriminant checks when the type has default discriminants and comes from expansion of a "for of" loop.
2020-10-20[Ada] Flexible AST node structureBob Duff24-270/+317
gcc/ada/ * atree.ads: Make Default_Node a constant. Remove the modification of Comes_From_Source, and use a separate flag for that. Change Sloc to 0; it always overwritten, and never left as the No_Location value. (Print_Statistics): Move to spec so we can call it from gnat1drv. (Num_Nodes): Rename to clarify that this is approximate. Correct comment: nodes and entities are never deleted, the count is never decremented, and this is not used by Xref. (Initialize): Correct comment: Error_List is not created here. Other minor naming and comment changes. * atree.adb (Extend_Node, New_Copy, New_Entity, New_Node): Streamline these. Simplify and improve efficiency. Move code from Allocate_Initialize_Node to these, where it can be executed unconditionally. Take advantage of automatic zeroing of the Nodes table. (Allocate_Initialize_Node): Remove this. It was an efficiency bottleneck, and somewhat complicated, because it was called from 4 places, and had all sorts of conditionals to check where it was called from. Better to move most of that code to the call sites, where it can be executed (or not) unconditionally. (Allocate_New_Node): New procedure to partly replace Allocate_Initialize_Node (called from just 2 of those 4 places). (Comes_From_Source_Default): New flag written/read by Set_Comes_From_Source_Default/Get_Comes_From_Source_Default. This allows us to make Default_Node into a constant with all-zeros value. (Set_Paren_Count_Of_Copy): New procedure to avoid duplicated code. (Report): New procedure to encapsulate the call to the reporting procedure. (Atree_Private_Part): We now need a body for this package, to contain package body Nodes. (Approx_Num_Nodes_And_Entities): Was Num_Nodes. For efficiency, compute the answer from Nodes.Last. That way we don't need to increment a counter on every node creation. Other minor naming and comment changes. * gnat1drv.adb: Call Atree.Print_Statistics if -gnatd.A switch was given. Add comment documenting the new order dependency (we must process the command line before calling Atree.Initialize). * debug.adb: Document -gnatd.A. * einfo.adb, sinfo.adb: Remove useless Style_Checks pragmas. * nlists.ads (Allocate_List_Tables): Inline makes node creation a little faster. * nlists.adb (Initialize): Remove local constant E, which didn't seem to add clarity. * treepr.adb (Print_Init): Use renamed Approx_Num_Nodes_And_Entities function. * types.ads: Change the Low and High bounds as described above. * types.h: Change Low and High bounds to match types.ads. * sem_ch8.adb, namet.adb, namet.ads: Move the computation of Last_Name_Id from sem_ch8 to namet, and correct it to not assume Name_Ids are positive. * ali.adb, ali-util.adb, bindo-writers.adb, exp_dist.adb, fmap.adb, fname-uf.adb, osint.adb: Fix various hash functions to avoid assuming the various ranges are positive. Note that "mod" returns a nonnegative result when the second operand is positive. "rem" can return negative values in that case (in particular, if the first operand is negative, which it now is). * switch-c.adb: Allow switch -gnaten to control the value of Nodes_Size_In_Meg. * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Remove traling whitespaces. * opt.ads (Nodes_Size_In_Meg): New Variable.
2020-10-20[Ada] Fix internal error on bit-aligned component of function callEric Botcazou1-16/+21
gcc/ada/ * exp_util.adb (Remove_Side_Effects): Always generate a renaming that is handled by the front-end in the case of an indexed or a selected component whose prefix has a nonstandard representation.
2020-10-20[Ada] Document Ada.Task_InitializationPat Rogers2-725/+707
gcc/ada/ * doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization. * gnat_rm.texi: Regenerate.
2020-10-20[Ada] Display source code pointing at locations in messages for GNATproveYannick Moy4-11/+114
gcc/ada/ * errout.adb: (Error_Msg-Internal): Pass the location for a line insertion if any in the message. (Output_Messages: Add display of source code lines if -gnatdF is set. (Write_Source_Code_Line): Code clean up. * erroutc.adb (Prescan_Message): Apply prescan for continuation lines when -gnatdF is set, and record presence of line insertion. * erroutc.ads (Has_Insertion_Line): New global for prescan. (Error_Msg_Object): Add field to record line insertion if present. * errutil.adb (Error_Msg): Pass no location for Insertion_Sloc.
2020-10-20[Ada] Remove extra validity check in case statementArnaud Charlet1-1/+29
gcc/ada/ * exp_ch5.adb (Expand_N_Case_Statement): Do not generate validity check when possible.
2020-10-20[Ada] Ada_2020: Further code cleanup for container aggregatesEd Schonberg1-32/+37
gcc/ada/ * exp_aggr.adb (Expand_Iterated_Component): Reorganize code to ensure that Loop_Id is properly initialized on all paths, and remove code duplication.
2020-10-20[Ada] Propagate predicate function to a full view of a private subtypePiotr Trojanek1-0/+10
gcc/ada/ * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate function to full view of the created type as well, if it was created.
2020-10-20[Ada] Code clean upArnaud Charlet1-15/+4
gcc/ada/ * exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of Simple_Storage_Pool and Storage_Pool.
2020-10-20[Ada] Support for new aspect Subprogram_Variant on recursive subprogramsPiotr Trojanek23-130/+845
gcc/ada/ * aspects.ads: Introduce Subprogram_Variant aspect with the following properties: GNAT-specific, with mandatory expression, not a representation aspect, never delayed. * contracts.adb (Expand_Subprogram_Contract): Mention new aspect in the comment. (Add_Contract_Item): Support addition of pragma Subprogram_Variant to N_Contract node. (Analyze_Entry_Or_Subprogram_Contract): Mention new aspect in the comment; add pragma Subprogram_Variant to N_Contract node. (Build_Postconditions_Procedure): Adapt call to Insert_Before_First_Source_Declaration, which is now reused in expansion of new aspect. (Process_Contract_Cases_For): Also process Subprogram_Variant, which is stored in N_Contract node together with Contract_Cases. * contracts.ads (Analyze_Entry_Or_Subprogram_Contract): Mention new aspect in the comment. (Analyze_Entry_Or_Subprogram_Body_Contract): Likewise. * einfo.adb (Get_Pragma): Support retrieval of new pragma. * einfo.ads (Get_Pragma): Likewise. * exp_ch6.adb (Check_Subprogram_Variant): New routine for emitting call to check Subprogram_Variant expressions at run time. (Expand_Call_Helper): Check Subprogram_Variant expressions at recursive calls. * exp_prag.adb (Make_Op): Moved from expansion of pragma Loop_Variant to Exp_Util, so it is now reused for expansion of pragma Subprogram_Variant. (Process_Variant): Adapt call to Make_Op after moving it to Exp_Util. (Expand_Pragma_Subprogram_Variant): New routine. * exp_prag.ads (Expand_Pragma_Subprogram_Variant): Likewise. * exp_util.adb (Make_Variant_Comparison): Moved from Exp_Prag (see above). * exp_util.ads (Make_Variant_Comparison): Likewise. * inline.adb (Remove_Aspects_And_Pragmas): Handle aspect/pragma Subprogram_Variant just like similar contracts. * par-prag.adb (Prag): Likewise. * sem.adb (Insert_Before_First_Source_Declaration): Moved from Contracts (see above). * sem.ads (Insert_Before_First_Source_Declaration): Likewise. * sem_ch12.adb: Mention new aspect in the comment about "Implementation of Generic Contracts", just like similar aspects are mentioned there. * sem_ch13.adb (Insert_Pragma): Mention new aspect in the comment, because this routine is now used for Subprogram_Variant just like for other similar aspects. (Analyze_Aspect_Specifications): Mention new aspect in comments; it is handled just like aspect Contract_Cases. (Check_Aspect_At_Freeze_Point): Do not expect aspect Subprogram_Variant just like we don't expect aspect Contract_Cases. * sem_prag.adb (Ensure_Aggregate_Form): Now also used for pragma Subprogram_Variant, so update comment. (Analyze_Pragma): Add initial checks for pragma Subprogram_Variant. (Analyze_Subprogram_Variant_In_Decl_Part): New routine with secondary checks on the new pragma. (Sig_Flags): Handle references within pragma Subprogram_Variant expression just like references in similar pragma Contract_Cases. (Is_Valid_Assertion_Kind): Handle Subprogram_Variant just like other similar contracts. * sem_prag.ads (Analyze_Subprogram_Variant_In_Decl_Part): New routine. * sem_res.adb (Same_Or_Aliased_Subprograms): Moved to Sem_Util, so it can be reused for detection of recursive calls where Subprogram_Variant needs to be verified. * sem_util.adb (Is_Subprogram_Contract_Annotation): Handle new Subprogram_Variant annotation just like other similar annotations. (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above). * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new aspect in the comment. (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above). * sinfo.ads (N_Contract): Document handling of Subprogram_Variant. * snames.ads-tmpl: Add name for the internally generated procedure with checks for Subprogram_Variant expression, name for the new aspect and new pragma corresponding to aspect Subprogram_Variant.
2020-10-20[Ada] Minor reorder subprogram declarations alphabeticallyPiotr Trojanek1-5/+5
gcc/ada/ * exp_util.ads: Reorder declaration.
2020-10-20tree-optimization/97496 - avoid SLP externs in patternsRichard Biener2-1/+16
I forgot to guard the promotion to external for the case where the def is in a pattern. 2020-10-20 Richard Biener <rguenther@suse.de> PR tree-optimization/97496 * tree-vect-slp.c (vect_get_and_check_slp_defs): Guard extern promotion with not in pattern. * gcc.dg/vect/bb-slp-pr97496.c: New testcase.
2020-10-20Add { target int128 } to gcc.dg/pr97488.cAldy Hernandez1-1/+1
__int128 does not exist on 32-bit targets. gcc/testsuite/ChangeLog: * gcc.dg/pr97488.c: Add target int128 predicate.
2020-10-20IBM Z: Emit vector alignment hints for strlenStefan Schulze Frielinghaus1-4/+5
In case the vectorized version of strlen is used, then each memory access inside the loop is 16-byte aligned. Thus add this kind of information so that vector alignment hints can later on be emitted. gcc/ChangeLog: * config/s390/s390.c (s390_expand_vec_strlen): Add alignment for memory access inside loop.
2020-10-20Daily bump.GCC Administrator5-1/+428
2020-10-19Use precision and sign to compare types for rangesAndrew MacLeod4-11/+52
Sanity check ranges by comparing just SIGN and PRECISION. gcc/ PR tree-optimization/97360 * gimple-range.h (range_compatible_p): New. * gimple-range-gori.cc (is_gimple_logical_p): Use range_compatible_p. (range_is_either_true_or_false): Ditto. (gori_compute::outgoing_edge_range_p): Cast result to the correct type if necessary. (logical_stmt_cache::cacheable_p): Use range_compatible_p. * gimple-range.cc (gimple_ranger::calc_stmt): Check range_compatible_p before casting the range. (gimple_ranger::range_on_exit): Use range_compatible_p. (gimple_ranger::range_on_edge): Ditto. gcc/testsuite/ * gcc.dg/pr97360-2.c: New test.
2020-10-19testsuite: Enable and adjust powerpc vec-extract and vsu testcases.David Edelsohn30-32/+31
This patch remove unnecessary target requirements from many vec-extract testcases and enables the vsu testcases on AIX. gcc/testsuite/ChangeLog: * gcc.target/powerpc/sad-vectorize-1.c: Remove target. * gcc.target/powerpc/sad-vectorize-2.c: Remove target. * gcc.target/powerpc/vec-extract-v16qi-df.c: Remove target. * gcc.target/powerpc/vec-extract-v16qi.c: Remove target. * gcc.target/powerpc/vec-extract-v16qiu-df.c: Remove target. * gcc.target/powerpc/vec-extract-v16qiu.c: Remove target. * gcc.target/powerpc/vec-extract-v2df.c: Remove target. * gcc.target/powerpc/vec-extract-v2di.c: Require lp64. * gcc.target/powerpc/vec-extract-v4sf.c: Remove target. * gcc.target/powerpc/vec-extract-v4si-df.c: Remove target. * gcc.target/powerpc/vec-extract-v4si.c: Remove target. * gcc.target/powerpc/vec-extract-v4siu-df.c: Remove target. * gcc.target/powerpc/vec-extract-v4siu.c: Remove target. * gcc.target/powerpc/vec-extract-v8hi-df.c: Remove target. * gcc.target/powerpc/vec-extract-v8hi.c: Remove target. * gcc.target/powerpc/vec-extract-v8hiu-df.c: Remove target. * gcc.target/powerpc/vec-extract-v8hiu.c: Remove target. * gcc.target/powerpc/vec-init-1.c: Remove target. * gcc.target/powerpc/vec-init-2.c: Require lp64. * gcc.target/powerpc/vec-init-3.c: Require lp64. * gcc.target/powerpc/vec-init-4.c: Remove target. * gcc.target/powerpc/vec-init-5.c: Remove target. * gcc.target/powerpc/vec-init-6.c: Require lp64. * gcc.target/powerpc/vec-init-7.c: Require lp64. * gcc.target/powerpc/vec-init-8.c: Remove target. * gcc.target/powerpc/vec-init-9.c: Require lp64. * gcc.target/powerpc/vec-setup-double.c: Remove target. * gcc.target/powerpc/vec-setup-long.c: Remove target. * gcc.target/powerpc/vsu/vec-xl-len-13.c: Correct expected warnings. * gcc.target/powerpc/vsu/vsu.exp: Enable on AIX.
2020-10-19testsuite: Enable and adjust powerpc fold-vec-extract/insert testcases.David Edelsohn31-37/+39
This patch enables a number of testcases on non-Linux targets, adjusts the target requirements, and updates the expected results. gcc/testsuite/ChangeLog: * gcc.target/powerpc/fold-vec-extract-char.p7.c: Remove target. * gcc.target/powerpc/fold-vec-extract-char.p8.c: Remove target. * gcc.target/powerpc/fold-vec-extract-char.p9.c: Remove target. Expect 3 addi for ilp32. * gcc.target/powerpc/fold-vec-extract-double.p7.c: Remove target. Add -mbig-endian for Linux. * gcc.target/powerpc/fold-vec-extract-double.p8.c: Remove target. * gcc.target/powerpc/fold-vec-extract-float.p7.c: Remove target. * gcc.target/powerpc/fold-vec-extract-float.p8.c: Remove target. * gcc.target/powerpc/fold-vec-extract-float.p9.c: Require lp64. * gcc.target/powerpc/fold-vec-extract-int.p7.c: Remove target. * gcc.target/powerpc/fold-vec-extract-int.p8.c: Remove target. * gcc.target/powerpc/fold-vec-extract-int.p9.c: Remove target. Expect 3 addi for ilp32. * gcc.target/powerpc/fold-vec-extract-longlong.p7.c: Remove target. Expect 4 addi for ilp32. * gcc.target/powerpc/fold-vec-extract-longlong.p8.c: Remove target. Expect 4 addi for ilp32. * gcc.target/powerpc/fold-vec-extract-longlong.p9.c: Require lp64. * gcc.target/powerpc/fold-vec-extract-short.p7.c: Remove target. * gcc.target/powerpc/fold-vec-extract-short.p8.c: Remove target. * gcc.target/powerpc/fold-vec-extract-short.p9.c: Require lp64. * gcc.target/powerpc/fold-vec-insert-char-p8.c: Remove target. * gcc.target/powerpc/fold-vec-insert-char-p9.c: Remove target. * gcc.target/powerpc/fold-vec-insert-double.c: Remove target. * gcc.target/powerpc/fold-vec-insert-float-p8.c: Remove target. * gcc.target/powerpc/fold-vec-insert-float-p9.c: Remove target. * gcc.target/powerpc/fold-vec-insert-int-p8.c: Remove target. * gcc.target/powerpc/fold-vec-insert-int-p9.c: Remove target. Require 8 addi for ilp32. * gcc.target/powerpc/fold-vec-insert-longlong.c: Remove target. * gcc.target/powerpc/fold-vec-insert-short-p8.c: Remove target. * gcc.target/powerpc/fold-vec-insert-short-p9.c: Remove target. * gcc.target/powerpc/fold-vec-select-double.c: Remove target. * gcc.target/powerpc/fold-vec-select-float.c: Remove target. * gcc.target/powerpc/fold-vec-splats-int.c: Require lp64. * gcc.target/powerpc/fold-vec-splats-longlong.c: Require lp64.
2020-10-19coroutines: Emit error for invalid promise return types [PR97438].Iain Sandoe2-0/+55
At one stage, use cases were proposed for allowing the promise type to contain both return_value and return_void. That was not accepted into C++20, so we should reject it as per the PR. gcc/cp/ChangeLog: PR c++/97438 * coroutines.cc (struct coroutine_info): Add a field to record that we emitted a promise type error. (coro_promise_type_found_p): Check for the case that the promise type contains both return_void and return_value. Emit an error if so, with information about the wrong type methods. gcc/testsuite/ChangeLog: PR c++/97438 * g++.dg/coroutines/pr97438.C: New test.
2020-10-19cplxlower: Avoid a transform when looking at a default definitionMartin Jambor2-1/+42
In PR 97456, IPA-SRA triggers a bug in tree-complex.c where it converts: <bb 2> a$_M_value_21 = COMPLEX_EXPR <ISRA.18_10(D), ISRA.18_10(D)>; (where ISRA.18 is IPA-SRA created PARM_DECL with DECL_IGNORED_P set, which is why it only happens with IPA-SRA) into: <bb 2> a$_M_value_21 = COMPLEX_EXPR <a$_M_value$real_10(D), a$_M_value$real_10(D)>; i.e. it replaces two uses of the parameter default-def with two uninitialized default-defs of a new variable - all in hope to produce code with better debug info. This patch fixes it by avoiding the transform when the SSA_NAME to be replaced is a default definition. gcc/ChangeLog: 2020-10-19 Martin Jambor <mjambor@suse.cz> PR tree-optimization/97456 * tree-complex.c (set_component_ssa_name): Do not replace ignored decl default definitions with new component vars. Reorder if conditions. gcc/testsuite/ChangeLog: 2020-10-19 Martin Jambor <mjambor@suse.cz> PR tree-optimization/97456 * gcc.dg/tree-ssa/pr97456.c: New test.
2020-10-19preprocessor: Fix non-fn fn-like macro at EOF [PR97471]Nathan Sidwell1-0/+10
We inject EOF tokens between macro argument lists, but had confused/stale logic in the non-fn invocation. Renamed the magic 'eof' token, as it's now only used for macro argument termination. Always rewind the non-OPEN_PAREN token. libcpp/ * internal.h (struct cpp_reader): Rename 'eof' field to 'endarg'. * init.c (cpp_create_reader): Adjust. * macro.c (collect_args): Use endarg for separator. Always rewind in the not-fn case. gcc/testsuite/ * c-c++-common/cpp/pr97471.c: New.
2020-10-19rs6000: correct BE vextract_fp_from_short[hl] vperm masksDavid Edelsohn1-2/+2
xvcvhpsp instruction converts a vector of bfloat16 half precision to single precision. The intrinsics vextract_fp_from_shorth and vextract_fp_from_shortl select the high or low four elements of a half precision vector to convert. The intrinsics use vperm to select the appropriate portion of the half precision vector and redistribute the values for the xvcvhpsp instruction. The big endian versions of the masks for the intrinsics were initialized wrong. This patch replaces the masks with the correct values. This corrects the failure of builtins-3-p9-runnable.c testcase on big endian systems. Bootstrapped powerpc-ibm-aix7.2.3.0 Power9. gcc/ChangeLog: * config/rs6000/vsx.md (vextract_fp_from_shorth): Fix vals_be. (vextract_fp_from_shortl) Same.
2020-10-19Gracefully handle right shifts larger than the precision.Aldy Hernandez2-0/+15
gcc/ChangeLog: PR tree-optimization/97488 * range-op.cc (operator_lshift::op1_range): Handle large right shifts. gcc/testsuite/ChangeLog: * gcc.dg/pr97488.c: New test.
2020-10-19IPA: fix one more UBSAN errorMartin Liska1-1/+1
It fixes: /home/marxin/Programming/gcc2/gcc/ipa-modref-tree.h:482:22: runtime error: load of value 255, which is not a valid value for type 'bool' #0 0x18e5df3 in modref_tree<int>::merge(modref_tree<int>*, vec<modref_parm_map, va_heap, vl_ptr>*) /home/marxin/Programming/gcc2/gcc/ipa-modref-tree.h:482 #1 0x18dc180 in ipa_merge_modref_summary_after_inlining(cgraph_edge*) /home/marxin/Programming/gcc2/gcc/ipa-modref.c:1779 #2 0x18c1c72 in inline_call(cgraph_edge*, bool, vec<cgraph_edge*, va_heap, vl_ptr>*, int*, bool, bool*) /home/marxin/Programming/gcc2/gcc/ipa-inline-transform.c:492 #3 0x4a3589c in inline_small_functions /home/marxin/Programming/gcc2/gcc/ipa-inline.c:2216 #4 0x4a3b230 in ipa_inline /home/marxin/Programming/gcc2/gcc/ipa-inline.c:2697 #5 0x4a3d902 in execute /home/marxin/Programming/gcc2/gcc/ipa-inline.c:3096 #6 0x1edf831 in execute_one_pass(opt_pass*) /home/marxin/Programming/gcc2/gcc/passes.c:2509 #7 0x1ee26af in execute_ipa_pass_list(opt_pass*) /home/marxin/Programming/gcc2/gcc/passes.c:2936 #8 0x103f31b in ipa_passes /home/marxin/Programming/gcc2/gcc/cgraphunit.c:2700 #9 0x103fb40 in symbol_table::compile() /home/marxin/Programming/gcc2/gcc/cgraphunit.c:2777 #10 0x104092b in symbol_table::finalize_compilation_unit() /home/marxin/Programming/gcc2/gcc/cgraphunit.c:3022 #11 0x235723b in compile_file /home/marxin/Programming/gcc2/gcc/toplev.c:485 #12 0x235fff9 in do_compile /home/marxin/Programming/gcc2/gcc/toplev.c:2321 #13 0x23605fc in toplev::main(int, char**) /home/marxin/Programming/gcc2/gcc/toplev.c:2460 #14 0x4e2b93b in main /home/marxin/Programming/gcc2/gcc/main.c:39 #15 0x7ffff6f0ae09 in __libc_start_main ../csu/libc-start.c:314 #16 0x9a0be9 in _start (/home/marxin/Programming/gcc2/objdir/gcc/cc1+0x9a0be9) gcc/ChangeLog: * ipa-modref.c (compute_parm_map): Clear vector.
2020-10-19tree-optimization/97486 - avoid edge insertion in SLP vectorizingRichard Biener2-0/+36
This avoids edge inserting and eventual splitting during BB SLP vectorization for now. 2020-10-19 Richard Biener <rguenther@suse.de> PR tree-optimization/97486 * tree-vect-slp.c (vect_slp_function): Split after stmts ending a BB. * gcc.dg/vect/bb-slp-pr97486.c: New testcase.
2020-10-19doc: Add closing parenthesis to -ffat-lto-objects docsJonathan Wakely1-1/+1
gcc/ChangeLog: * doc/invoke.texi (OPptimize Options): Add missing closing parenthesis.
2020-10-19[Ada] Ada_2020: Implement Key_Expression for named container aggregatesEd Schonberg3-39/+149
gcc/ada/ * par-ch4.adb: (P_Aggregate_Or_Paren_Expr): Recognize Iterated_Element_Component. (P_Iterated_Component_Association): Rebuild node as an Iterated_ Element_Association when Key_Expression is present, and attach either the Loop_Parameter_Specification or the Iterator_Specification to the new node. * sem_aggr.adb: (Resolve_Container_Aggregate): Resolve_Iterated_Association handles bota Iterated_Component_ and Iterated_Element_Associations, in which case it analyzes and resoles the orresponding Key_Expression. * exp_aggr.adb (Expand_Iterated_Component): If a Key_Expression is present, use it as the required parameter in the call to the insertion routine for the destination container aggregate. Call this routine for both kinds of Iterated_Associations.
2020-10-19[Ada] Missing check on array concatenationArnaud Charlet1-2/+3
gcc/ada/ * exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
2020-10-19[Ada] Suppress warnings in expansion of "for ... of" loopsBob Duff1-1/+7
gcc/ada/ * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Set the Warnings_Off flag on the pointer object used in the expansion of iterators and similar.
2020-10-19[Ada] Use alternate stack for signal handling on PowerPC/LinuxEric Botcazou1-1/+1
gcc/ada/ * Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead of s-taspri__posix-noaltstack.ads for s-taspri.ads.
2020-10-19[Ada] Remove excessive guards in building predicate functionsPiotr Trojanek1-4/+4
gcc/ada/ * sem_ch13.adb (Add_Call): Remove excessive condition and unnecessary call to Set_Has_Predicates.
2020-10-19[Ada] Alternative display of multi-line messages for GNATproveYannick Moy3-15/+39
gcc/ada/ * debug.adb: Use debug switch -gnatdF for this alternative display of messages. * errout.adb (Output_Messages): Alternative display when -gnatdF is used. * erroutc.adb (Output_Msg_Text): Likewise.
2020-10-19[Ada] AI12-0352: Early derivation and equality of untagged typesArnaud Charlet1-2/+19
gcc/ada/ * sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.
2020-10-19[Ada] Compiler abort on in_out function parameter with type invariantEd Schonberg1-1/+7
gcc/ada/ * exp_ch6.adb (Add_View_Conversion_Invariants): Do not insert generated invariant checks when the call is a function call. These tests are properly inserted in the code in procedure Insert_Post_Call_Actions, which takes care of finding the proper insertion point for the checks. (Insert_Post_Call_Actions): Add question marks to indicate possible gap in handling function calls that appear as aggregate components.
2020-10-19[Ada] Wrong freezing for expression function with contracts in a genericArnaud Charlet2-2/+2
gcc/ada/ * contracts.adb (Process_Preconditions_For): Do not exclude instances. * sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious warning on internally generated variables.
2020-10-19[Ada] Implement initialization of CUDA runtimeGhjuvan Lacambre8-2/+731
gcc/ada/ * debug.adb: Document -gnatd_c flag as being used for CUDA. * gnat_cuda.ads: New file. * gnat_cuda.adb: New file. * rtsfind.ads: Add Interfaces_C_Strings package and RE_Fatbin_Wrapper, RE_Register_Fat_Binary, RE_Register_Fat_Binary_End, RE_Register_Function, RE_Chars_Ptr, RE_New_Char_Array entities. * rtsfind.adb: Create new Interfaces_C_Descendant subtype, handle it. * sem_ch7.adb (Analyze_Package_Body_Helper): Call CUDA init procedure. * sem_prag.adb (Analyze_Pragma): Call Add_Cuda_Kernel procedure. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add gnat_cuda.o.
2020-10-19[Ada] Expanded names in ghost assignmentsBob Duff10-202/+246
gcc/ada/ * ghost.adb (Whole_Object_Ref): New function to compute the name of the whole object. (Mark_And_Set_Ghost_Assignment): Rewrite to use Whole_Object_Ref. We need to partly analyze the left-hand side in order to distinguish expanded names and record components. * lib-xref.ads, lib-xref.adb (Deferred_References): Move table to body, and add Defer_Reference to update the table, avoiding duplicates. (Generate_Reference): Avoid duplicates. * sem_ch8.ads, sem_ch8.adb (Find_Direct_Name): Remove _OK parameters, which are no longer needed. Ignore errors in Ignore_Errors mode. * sem_util.ads, sem_util.adb (Preanalyze_Without_Errors): Make this public, so we can call it from Ghost. * errout.ads, scng.adb, sem_prag.adb: Minor.
2020-10-19[Ada] Do not replace bounds for packed arrays that depend on discriminantsGhjuvan Lacambre1-1/+5
gcc/ada/ * exp_attr.adb (Expand_N_Attribute_Reference): Check if type depends on discriminant.
2020-10-19[Ada] Ada2020: AI12-0304 Put_Image attrs of lang-def typesBob Duff2-10/+16
gcc/ada/ * libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call Iterate.