]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 22 Apr 2014 16:16:25 +0000 (16:16 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 22 Apr 2014 16:16:25 +0000 (16:16 +0000)
* fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
(Error_Msg_N): Likewise.
(Error_Msg_NE): Likewise.
(Get_External_Name_With_Suffix): Likewise.
* types.h (Fat_Pointer): Delete.
(String_Pointer): New type.
(DECLARE_STRING_POINTER): New macro.
* gcc-interface/decl.c (create_concat_name): Adjust.
* gcc-interface/trans.c (post_error): Likewise.
(post_error_ne): Likewise.
* gcc-interface/misc.c (internal_error_function): Likewise.

From-SVN: r209644

gcc/ada/ChangeLog
gcc/ada/fe.h
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/misc.c
gcc/ada/gcc-interface/trans.c
gcc/ada/types.h

index 2e3dc5058f3343813b79b3d5fa37a87cd00dc258..96bc09b95152f7f81d46a94bb109952e05a5ddd8 100644 (file)
@@ -1,3 +1,17 @@
+2014-04-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
+       (Error_Msg_N): Likewise.
+       (Error_Msg_NE): Likewise.
+       (Get_External_Name_With_Suffix): Likewise.
+       * types.h (Fat_Pointer): Delete.
+       (String_Pointer): New type.
+       (DECLARE_STRING_POINTER): New macro.
+       * gcc-interface/decl.c (create_concat_name): Adjust.
+       * gcc-interface/trans.c (post_error): Likewise.
+       (post_error_ne): Likewise.
+       * gcc-interface/misc.c (internal_error_function): Likewise.
+
 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
             Pierre-Marie de Rodat  <derodat@adacore.com>
 
index d9fe48b5baa291b5dc70b4d57651a67d379b893b..518382041d9894e29955b25cabd218f49e2c62ce 100644 (file)
@@ -39,7 +39,7 @@ extern "C" {
 /* comperr:  */
 
 #define Compiler_Abort comperr__compiler_abort
-extern int Compiler_Abort (Fat_Pointer, int, Fat_Pointer) ATTRIBUTE_NORETURN;
+extern int Compiler_Abort (String_Pointer, int, String_Pointer) ATTRIBUTE_NORETURN;
 
 /* csets: */
 
@@ -90,8 +90,8 @@ extern Node_Id Get_Attribute_Definition_Clause (Entity_Id, char);
 #define Error_Msg_NE              errout__error_msg_ne
 #define Set_Identifier_Casing     errout__set_identifier_casing
 
-extern void Error_Msg_N                  (Fat_Pointer, Node_Id);
-extern void Error_Msg_NE          (Fat_Pointer, Node_Id, Entity_Id);
+extern void Error_Msg_N                  (String_Pointer, Node_Id);
+extern void Error_Msg_NE          (String_Pointer, Node_Id, Entity_Id);
 extern void Set_Identifier_Casing (Char *, const Char *);
 
 /* err_vars: */
@@ -151,7 +151,7 @@ extern void Setup_Asm_Outputs               (Node_Id);
 
 extern void Get_Encoded_Name                   (Entity_Id);
 extern void Get_External_Name                  (Entity_Id, Boolean);
-extern void Get_External_Name_With_Suffix      (Entity_Id, Fat_Pointer);
+extern void Get_External_Name_With_Suffix      (Entity_Id, String_Pointer);
 
 /* exp_util: */
 
index 7c3f7e5ea7bd472312ae3bff38d6825446e22bd9..0873bae706a12fc78fb17d128f7a17f005a69c1f 100644 (file)
@@ -8861,8 +8861,10 @@ create_concat_name (Entity_Id gnat_entity, const char *suffix)
   if (suffix)
     {
       String_Template temp = {1, (int) strlen (suffix)};
-      Fat_Pointer fp = {suffix, &temp};
-      Get_External_Name_With_Suffix (gnat_entity, fp);
+      DECLARE_STRING_POINTER (sp);
+      sp.Bounds = &temp;
+      sp.Array = suffix;
+      Get_External_Name_With_Suffix (gnat_entity, sp);
     }
   else
     Get_External_Name (gnat_entity, 0);
index a5f2881d697bbc7fcb206f8e38a408347dc52009..33db181e61a4fc61a8537ccdea8b63e73318d17f 100644 (file)
@@ -283,8 +283,8 @@ internal_error_function (diagnostic_context *context,
   text_info tinfo;
   char *buffer, *p, *loc;
   String_Template temp, temp_loc;
-  Fat_Pointer fp, fp_loc;
-  expanded_location s;
+  DECLARE_STRING_POINTER (sp, sp_loc);
+  expanded_location xloc;
 
   /* Warn if plugins present.  */
   warn_if_plugins ();
@@ -311,21 +311,21 @@ internal_error_function (diagnostic_context *context,
 
   temp.Low_Bound = 1;
   temp.High_Bound = p - buffer;
-  fp.Bounds = &temp;
-  fp.Array = buffer;
+  sp.Bounds = &temp;
+  sp.Array = buffer;
 
-  s = expand_location (input_location);
-  if (context->show_column && s.column != 0)
-    asprintf (&loc, "%s:%d:%d", s.file, s.line, s.column);
+  xloc = expand_location (input_location);
+  if (context->show_column && xloc.column != 0)
+    asprintf (&loc, "%s:%d:%d", xloc.file, xloc.line, xloc.column);
   else
-    asprintf (&loc, "%s:%d", s.file, s.line);
+    asprintf (&loc, "%s:%d", xloc.file, xloc.line);
   temp_loc.Low_Bound = 1;
   temp_loc.High_Bound = strlen (loc);
-  fp_loc.Bounds = &temp_loc;
-  fp_loc.Array = loc;
+  sp_loc.Bounds = &temp_loc;
+  sp_loc.Array = loc;
 
   Current_Error_Node = error_gnat_node;
-  Compiler_Abort (fp, -1, fp_loc);
+  Compiler_Abort (sp, -1, sp_loc);
 }
 
 /* Perform all the initialization steps that are language-specific.  */
index 3482d2ce39b8b0e18f61b69090c3a7c6ab980f9e..0e55f94c8789558bcac04925166744db0638306e 100644 (file)
@@ -7833,7 +7833,6 @@ gnat_gimplify_stmt (tree *stmt_p)
              gnu_cond = build2 (ANNOTATE_EXPR, TREE_TYPE (gnu_cond), gnu_cond,
                                 build_int_cst (integer_type_node,
                                                annot_expr_ivdep_kind));
-
            if (LOOP_STMT_NO_VECTOR (stmt))
              gnu_cond = build2 (ANNOTATE_EXPR, TREE_TYPE (gnu_cond), gnu_cond,
                                 build_int_cst (integer_type_node,
@@ -9357,16 +9356,16 @@ void
 post_error (const char *msg, Node_Id node)
 {
   String_Template temp;
-  Fat_Pointer fp;
+  DECLARE_STRING_POINTER (sp);
 
   if (No (node))
     return;
 
   temp.Low_Bound = 1;
   temp.High_Bound = strlen (msg);
-  fp.Bounds = &temp;
-  fp.Array = msg;
-  Error_Msg_N (fp, node);
+  sp.Bounds = &temp;
+  sp.Array = msg;
+  Error_Msg_N (sp, node);
 }
 
 /* Similar to post_error, but NODE is the node at which to post the error and
@@ -9376,16 +9375,16 @@ void
 post_error_ne (const char *msg, Node_Id node, Entity_Id ent)
 {
   String_Template temp;
-  Fat_Pointer fp;
+  DECLARE_STRING_POINTER (sp);
 
   if (No (node))
     return;
 
   temp.Low_Bound = 1;
   temp.High_Bound = strlen (msg);
-  fp.Bounds = &temp;
-  fp.Array = msg;
-  Error_Msg_NE (fp, node, ent);
+  sp.Bounds = &temp;
+  sp.Array = msg;
+  Error_Msg_NE (sp, node, ent);
 }
 
 /* Similar to post_error_ne, but NUM is the number to use for the '^'.  */
index dd049db908a2134d58444ed8c6b25133437ee31a..268579ecefb1a6fd1462fd57bad9a6aec5314546 100644 (file)
@@ -76,11 +76,14 @@ typedef Char *Str;
 /* Pointer to string of Chars */
 typedef Char *Str_Ptr;
 
-/* Types for the fat pointer used for strings and the template it
-   points to.  */
-typedef struct {int Low_Bound, High_Bound; } String_Template;
-typedef struct {const char *Array; String_Template *Bounds; }
-       __attribute ((aligned (sizeof (char *) * 2))) Fat_Pointer;
+/* Types for the fat pointer used for strings and the template it points to.
+   On most platforms the fat pointer is naturally aligned but, on the rest,
+   it is given twice the natural alignment.  For maximum portability, we do
+   not overalign the type but only the objects.  */
+typedef struct { int Low_Bound, High_Bound; } String_Template;
+typedef struct { const char *Array; String_Template *Bounds; } String_Pointer;
+#define DECLARE_STRING_POINTER(...) \
+  __attribute__ ((aligned (sizeof (char *) * 2))) String_Pointer __VA_ARGS__
 
 /* Types for Node/Entity Kinds:  */