* [Ada] Assorted gigi tweaks
@ 2019-10-11 9:33 Eric Botcazou
0 siblings, 0 replies; only message in thread
From: Eric Botcazou @ 2019-10-11 9:33 UTC (permalink / raw)
To: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 350 bytes --]
Tested on x86_64-suse-linux, applied on the mainline.
2019-10-11 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (elaborate_reference_1): Specifically deal with
pointer displacement.
* gcc-interface/decl.c (components_to_record): Use proper name.
* gcc-interface/trans.c (Sloc_to_locus): Use standard types.
--
Eric Botcazou
[-- Attachment #2: p.diff --]
[-- Type: text/x-patch, Size: 2080 bytes --]
Index: gcc-interface/decl.c
===================================================================
--- gcc-interface/decl.c (revision 276873)
+++ gcc-interface/decl.c (working copy)
@@ -6782,6 +6782,15 @@ elaborate_reference_1 (tree ref, void *d
elaborate_reference_1 (TREE_OPERAND (ref, 0), data),
TREE_OPERAND (ref, 1), NULL_TREE);
+ /* If this is the displacement of a pointer, elaborate the pointer and then
+ displace the result. The actual purpose here is to drop the location on
+ the expression, which may be problematic if replicated on references. */
+ if (TREE_CODE (ref) == POINTER_PLUS_EXPR
+ && TREE_CODE (TREE_OPERAND (ref, 1)) == INTEGER_CST)
+ return build2 (POINTER_PLUS_EXPR, TREE_TYPE (ref),
+ elaborate_reference_1 (TREE_OPERAND (ref, 0), data),
+ TREE_OPERAND (ref, 1));
+
sprintf (suffix, "EXP%d", ++er->n);
return
elaborate_expression_1 (ref, er->entity, suffix, er->definition, false);
@@ -7923,7 +7932,7 @@ components_to_record (Node_Id gnat_compo
&& !(Is_Packed (gnat_record_type)
? has_non_packed_fixed_size_field
: Optimize_Alignment_Space (gnat_record_type))
- && !debug__debug_flag_dot_r);
+ && !Debug_Flag_Dot_R);
const bool w_reorder
= (Convention (gnat_record_type) == Convention_Ada
&& Warn_On_Questionable_Layout
Index: gcc-interface/trans.c
===================================================================
--- gcc-interface/trans.c (revision 276864)
+++ gcc-interface/trans.c (working copy)
@@ -10848,8 +10848,8 @@ Sloc_to_locus (Source_Ptr Sloc, location
}
Source_File_Index file = Get_Source_File_Index (Sloc);
- Logical_Line_Number line = Get_Logical_Line_Number (Sloc);
- Column_Number column = (clear_column ? 0 : Get_Column_Number (Sloc));
+ Line_Number_Type line = Get_Logical_Line_Number (Sloc);
+ Column_Number_Type column = (clear_column ? 0 : Get_Column_Number (Sloc));
line_map_ordinary *map = LINEMAPS_ORDINARY_MAP_AT (line_table, file - 1);
/* We can have zero if pragma Source_Reference is in effect. */
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-10-11 9:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-11 9:33 [Ada] Assorted gigi tweaks Eric Botcazou
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).