| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(TYPE_RM_SIZE): Access TYPE_LANG_SLOT_1 directly for integral types.
* decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>: Remove useless
support code for packed array types and assert its uselessness.
<E_Signed_Integer_Subtype>: Reuse entity identifier in more places and
adjust for TYPE_RM_SIZE change.
<all> Fix nits in comments. Use Original_Array_Type accessor instead
of Associated_Node_For_Itype accessor for packed array types.
(make_packable_type): Likewise.
(maybe_pad_type): Likewise.
(set_rm_size): Likewise. Rework conditional statement. Adjust for
TYPE_RM_SIZE change.
(make_type_from_size): Adjust for TYPE_RM_SIZE change.
(rm_size): Fix nits in comments. Rework conditional statements.
* misc.c (gnat_print_type): Adjust for TYPE_RM_SIZE change.
* trans.c (Attribute_to_gnu): Fix nits in comments.
* utils.c (gnat_init_decl_processing): Use more appropriate function
to initialize the size_type_node. Adjust for TYPE_RM_SIZE change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146530 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
(gnat_to_gnu) <N_Unchecked_Type_Conversion>: Return the expression
if the conversion is on the LHS of an assignment and a no-op.
<all> Do not convert the result to the result type if the Parent
node is such a conversion.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146450 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
(Attribute_to_gnu): Do not call check_for_eliminated_entity.
(call_to_gnu): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146400 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
unit as the first global name at the very beginning.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146398 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
non-addressable parameter passed by reference, do not convert the
actual if its type is already the nominal type, unless it is of
self-referential size.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146367 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
a builtin type and give it a name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146347 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145841 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
underlying type.
* gcc-interface/trans.c (lvalue_required_p): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145663 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
Do not convert the result. Remove obsolete comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145662 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
DECL_CONTEXT.
(Subprogram_Body_to_gnu): Fix pasto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145661 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(void_type_decl_node): Remove.
(init_gigi_decls): Likewise.
(gnat_install_builtins): Declare.
(record_builtin_type): Likewise.
(create_type_stub_decl): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
(gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
artificial.
<E_Array_Subtype>: Use the index types, not only their name, in the
record giving the names of the bounds, if any.
For a packed array type, make it artificial only if the base type
was artificial as well. Remove redundant statement.
(gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
dummy types.
Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
(rest_of_type_decl_compilation_no_defer): Likewise.
* gcc-interface/misc.c (gnat_printable_name): Add missing guard.
* gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
and use create_type_stub_decl to build it.
(gnat_pushdecl): Rewrite condition.
(gnat_install_builtins): Remove bogus declaration.
(record_builtin_type): New function.
(finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
of types.
(create_type_stub_decl): New function.
(create_type_decl): Assert that the type is not dummy. If the type
hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
(build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
(build_vms_descriptor): Likewise.
(init_gigi_decls): Delete and move bulk of code to...
* gcc-interface/trans.c (gigi): ...here. Use record_builtin_type.
(emit_range_check): Add gnat_node parameter.
(emit_index_check): Likewise.
(emit_check): Likewise.
(build_unary_op_trapv): Likewise.
(build_binary_op_trapv): Likewise.
(convert_with_check): Likewise.
(Attribute_to_gnu): Adjust calls for above changes.
(call_to_gnu): Likewise.
(gnat_to_gnu): Likewise.
(assoc_to_constructor): Likewise.
(pos_to_constructor): Likewise.
(Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
(process_type): Do not create TYPE_DECL for dummy types.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145660 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* gcc-interface/trans.c: Fix formatting throughout. Fix comments.
* gcc-interface/utils.c: Fix comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145658 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
(Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
(call_to_gnu): Invoke it instead of manually checking.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145652 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
check processing, remove unintended TREE_TYPE walk on index type
to get to base type.
testsuite/
* gnat.dg/slice_enum.adb: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144774 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144324 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alias.c (record_alias_subset): Make global.
ada/
* gcc-interface/decl.c (enum alias_set_op): New enumeration.
(copy_alias_set): Rename into...
(relate_alias_sets): ...this. Add third parameter OP. Retrieve the
underlying array of unconstrained arrays for the new type as well.
If the old and new alias sets don't conflict, make one a subset of
the other as per the OP parameter.
(gnat_to_gnu_entity): Adjust calls to copy_alias_set.
<E_Record_Type>: Do not copy the alias set for derived types.
For all types, make the alias set of derived types a superset of
that of their parent type.
(make_aligning_type): Adjust calls to copy_alias_set.
(make_packable_type): Likewise.
* gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
Check for alias set conflict instead of strict equality to issue the
warning.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144084 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
to prevent exponential expansion during gimplification.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141885 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(MINUS_NOMOD_EXPR): Likewise.
* gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
unreachable.
<PLUS_NOMOD_EXPR>: New case.
<MINUS_NOMOD_EXPR>: Likewise.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
assignment statement instead of using an increment operator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141714 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141671 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
for empty range in original base type, not converted result type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141670 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
and result for call to __gnat_mulv64.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141668 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141667 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
overflow check for constant result.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141666 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
overflow check for addition/subtraction if neither operand is constant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141665 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
Generate a call to memmove for an assignment between overlapping
array slices.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141637 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
to use only a single check instead of three, and avoid unnecessary
COMPOUND_EXPR.
(emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
creating more opportunities for optimizations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141198 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* gcc-interface/trans.c (Pragma_to_gnu): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140904 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
debug info if necessary for the type padding the component type.
<E_Array_Subtype>: Likewise.
(maybe_pad_type): Emit the XVZ variable in units.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
(Subprogram_Body_to_gnu): Set the source line of the subprogram's node
on statements generated to initialize the parameter attributes cache.
Set the source line of the end label of the body on the special return
statement built for a procedure with copy-in copy-out parameters.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140513 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
unit as the first global name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140373 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
gcc-interface/gigi.h, gcc-interface/trans.c,
lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
comments.
* gnathtml.pl: Fix typos.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140356 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
(convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139468 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
for back-copy statements in lieu of that of the actual.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139161 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
* trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
* utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
use it. Calculate pointer range overflow using 64bit types.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138594 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
code. Do not get full definition of deferred constants with address
clause for a use. Do not ignore deferred constant definitions with
address clause. Ignore constant definitions already marked with the
error node.
<object>: Remove obsolete comment. For a deferred constant with
address clause, get the initializer from the full view.
* gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
Rework and remove obsolete comment.
<N_Object_Declaration>: For a deferred constant with address clause,
mark the full view with the error node.
* gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
formatting nits.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138513 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gnat_rm.texi: Document new mechanism Short_Descriptor.
* types.ads (Mechanism_Type): Modify range for new Short_Descriptor
mechanism values.
* sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
mechanism and Short_Descriptor mechanism values.
* snames.adb (preset_names): Add short_descriptor entry.
* snames.ads: Add Name_Short_Descriptor.
* types.h: Add new By_Short_Descriptor mechanism values.
* sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
mechanism and Short_Descriptor mechanism values.
* sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
values.
(Descriptor_Codes): Modify range for new mechanism values.
* treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
mechanism values.
* gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
(gnat_to_gnu_param): Handle By_Short_Descriptor.
* gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
(build_vms_descriptor32): New prototype.
(fill_vms_descriptor): Remove unneeded gnat_actual parameter.
* gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
argument in call fill_vms_descriptor.
* gcc-interface/utils.c (build_vms_descriptor32): Renamed from
build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
(build_vms_descriptor): Renamed from build_vms_descriptor64.
(convert_vms_descriptor32): New function.
(convert_vms_descriptor64): New function.
(convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
descriptors.
* gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
no longer needed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138473 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* arit64.c:
New file implementing __gnat_mulv64 signed integer multiplication with
overflow checking
* fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
* gcc-interface/gigi.h:
(standard_types): Add ADT_mulv64_decl
(mulv64_decl): Define subprogram declaration for __gnat_mulv64
* gcc-interface/utils.c:
(init_gigi_decls): Add initialization of mulv64_decl
* gcc-interface/trans.c:
(build_unary_op_trapv): New function
(build_binary_op_trapv): New function
(gnat_to_gnu): Use the above functions instead of
build_{unary,binary}_op
* gcc-interface/Makefile.in
(LIBGNAT_SRCS): Add arit64.c
(LIBGNAT_OBJS): Add arit64.o
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138384 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
ada/
* back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
* gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
Set precision to 1 for subtype of BOOLEAN_TYPE.
(set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
(make_type_from_size): Deal with BOOLEAN_TYPE.
* gcc-interface/misc.c (gnat_print_type): Likewise.
* gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
Set boolean_type_node as its translation in the table, as well
as boolean_false_node for False and boolean_true_node for True.
* gcc-interface/utils.c (gnat_init_decl_processing): Create custom
8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
(create_param_decl): Deal with BOOLEAN_TYPE.
(build_vms_descriptor): Likewise.
(build_vms_descriptor64): Likewise.
(convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138348 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gigi.h (build_vms_descriptor64): New function prototype.
(fill_vms_descriptor): Modified function prototype.
* utils.c (build_vms_descriptor64): New function.
* utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
* trans.c (call_to_gnu): Call fill_vms_descriptor with new third
argument.
* decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
64bit and 32bit descriptor and save the 64bit version as an alternate
TREE_TYPE in the parameter.
(make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
thin pointer.
* ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138307 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
check.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138261 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
to gcc-interface subdirectory.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138246 138bc75d-0d04-0410-961f-82ee72b054a4
|