einfo.ads (Is_Atomic_Or_VFA): Move to XEINFO INLINES section.
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 22 May 2015 12:56:34 +0000 (12:56 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 22 May 2015 12:56:34 +0000 (14:56 +0200)
2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>

* einfo.ads (Is_Atomic_Or_VFA): Move to XEINFO INLINES section.
* xeinfo.adb: Replace a-einfo.h with einfo.h throughout.
Add pattern to translate "or else" into "||".

From-SVN: r223562

gcc/ada/ChangeLog
gcc/ada/einfo.ads
gcc/ada/xeinfo.adb

index e1a0db0dd3201c60eec5ee5103a69a2b638a982d..fe2dbad0f3413f69ea9333a28a7eae1fbdaef810 100644 (file)
@@ -1,3 +1,9 @@
+2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Is_Atomic_Or_VFA): Move to XEINFO INLINES section.
+       * xeinfo.adb: Replace a-einfo.h with einfo.h throughout.
+       Add pattern to translate "or else" into "||".
+
 2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
 
        * einfo.ads (Has_Volatile_Full_Access): Rename into...
index d5a10c2826024e76afeed7f9511b94c92997e50c..4f54106cbb1d5b24b894a84b202ab3ccecaa31c7 100644 (file)
@@ -8313,6 +8313,7 @@ package Einfo is
    pragma Inline (Is_Assignable);
    pragma Inline (Is_Asynchronous);
    pragma Inline (Is_Atomic);
+   pragma Inline (Is_Atomic_Or_VFA);
    pragma Inline (Is_Bit_Packed_Array);
    pragma Inline (Is_Called);
    pragma Inline (Is_Character_Type);
@@ -9054,7 +9055,6 @@ package Einfo is
    --  be handled by xeinfo.
 
    pragma Inline (Base_Type);
-   pragma Inline (Is_Atomic_Or_VFA);
    pragma Inline (Is_Base_Type);
    pragma Inline (Is_Package_Or_Generic_Package);
    pragma Inline (Is_Packed_Array);
index 4df0974d6098fb9a2bd623e5849cd39f5f91148d..7f906562ab4b5217afd3ae109cc288ea811ae22f 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2011, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2015, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
---  Program to construct C header file a-einfo.h (C version of einfo.ads spec)
+--  Program to construct C header file einfo.h (C version of einfo.ads spec)
 --  for use by Gigi. This header file contains all definitions and access
 --  functions, but does not contain set procedures, since Gigi is not allowed
---  to modify the GNAT tree)
+--  to modify the GNAT tree.
 
 --    Input files:
 
 
 --    Output files:
 
---       a-einfo.h     Corresponding c header file
+--       einfo.h       corresponding C header file
 
 --  Note: It is assumed that the input files have been compiled without errors
 
 --  An optional argument allows the specification of an output file name to
---  override the default a-einfo.h file name for the generated output file.
+--  override the default einfo.h file name for the generated output file.
 
 --  Most, but not all of the functions in Einfo can be inlined in the C header.
 --  They are the functions identified by pragma Inline in the spec. Functions
@@ -129,6 +129,7 @@ procedure XEinfo is
    Get_B1   : constant Pattern := BreakX (' ') * A & " in " & Rest * B;
    Get_B2   : constant Pattern := BreakX (' ') * A & " = " & Rest * B;
    Get_B3   : constant Pattern := BreakX (' ') * A & " /= " & Rest * B;
+   Get_B4   : constant Pattern := BreakX (' ') * A & " or else " & Rest * B;
    To_Paren : constant Pattern := wsp * Filler & '(';
    Get_Fml  : constant Pattern := Break (" :") * Formal & wsp & ':' & wsp
                                   & BreakX (" );") * Formaltyp;
@@ -253,7 +254,7 @@ begin
    if Argument_Count > 0 then
       Create (Ofile, Out_File, Argument (1));
    else
-      Create (Ofile, Out_File, "a-einfo.h");
+      Create (Ofile, Out_File, "einfo.h");
    end if;
 
    Open (InB, In_File, "einfo.adb");
@@ -489,6 +490,8 @@ begin
          Replace (M, A & " == " & B);
          Match (Expr, Get_B3, M);
          Replace (M, A & " != " & B);
+         Match (Expr, Get_B4, M);
+         Replace (M, A & " || " & B);
          Put_Line (Ofile, "");
          Sethead (Fline, "");
          Put_Line (Ofile, C & "   { return " & Expr & "; }");