Age | Commit message (Collapse) | Author | Files | Lines |
|
gcc/ada/
* sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update
when Warn_On_Obsolescent_Feature is set to True.
|
|
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.
|
|
gcc/ada/
* exp_ch6.adb (Expand_Branch): Properly anticipate expansion of
conditional expressions producing object declarations in
addition to assignment statements, and rename formal.
|
|
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.
|
|
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.
|
|
gcc/ada/
* doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".
|
|
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.
|
|
gcc/ada/
* sem_ch6.adb (Analyze_Expression_Function): Mark static
expression functions as inlined.
|
|
gcc/ada/
* contracts.adb (Is_Prologue_Renaming): This function was
missing support for E_Constant which can also be generated in
protected objects.
|
|
gcc/ada/
* bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible
strings. Code cleanup.
|
|
gcc/ada/
* sem_util.adb, sem_util.ads: Comment fix.
|
|
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.
|
|
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.
|
|
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.
|
|
gcc/ada/
* doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization.
* gnat_rm.texi: Regenerate.
|
|
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.
|
|
gcc/ada/
* exp_ch5.adb (Expand_N_Case_Statement): Do not generate
validity check when possible.
|
|
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.
|
|
gcc/ada/
* sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate
function to full view of the created type as well, if it was
created.
|
|
gcc/ada/
* exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of
Simple_Storage_Pool and Storage_Pool.
|
|
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.
|
|
gcc/ada/
* exp_util.ads: Reorder declaration.
|
|
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.
|
|
__int128 does not exist on 32-bit targets.
gcc/testsuite/ChangeLog:
* gcc.dg/pr97488.c: Add target int128 predicate.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
gcc/ChangeLog:
* doc/invoke.texi (OPptimize Options): Add missing closing
parenthesis.
|
|
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.
|
|
gcc/ada/
* exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
|
|
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.
|
|
gcc/ada/
* Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead
of s-taspri__posix-noaltstack.ads for s-taspri.ads.
|
|
gcc/ada/
* sem_ch13.adb (Add_Call): Remove excessive condition and
unnecessary call to Set_Has_Predicates.
|
|
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.
|
|
gcc/ada/
* sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.
|
|
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.
|
|
gcc/ada/
* contracts.adb (Process_Preconditions_For): Do not exclude
instances.
* sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
warning on internally generated variables.
|
|
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.
|
|
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.
|
|
gcc/ada/
* exp_attr.adb (Expand_N_Attribute_Reference): Check if type
depends on discriminant.
|
|
gcc/ada/
* libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
Iterate.
|