aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2015-05-22 12:56:34 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2015-05-22 14:56:34 +0200
commit5c0c1090a714cb4b89f11d5333efd61dea5267f2 (patch)
tree273cf69c5b1bfe14c22f849a87162efda6f791c1 /gcc
parent57abdadd18b3addfc32fb32086862db3f8fdd7b1 (diff)
downloadgcc-5c0c1090a714cb4b89f11d5333efd61dea5267f2.zip
gcc-5c0c1090a714cb4b89f11d5333efd61dea5267f2.tar.gz
gcc-5c0c1090a714cb4b89f11d5333efd61dea5267f2.tar.bz2
einfo.ads (Is_Atomic_Or_VFA): Move to XEINFO INLINES section.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/einfo.ads2
-rw-r--r--gcc/ada/xeinfo.adb15
3 files changed, 16 insertions, 7 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index e1a0db0..fe2dbad 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,11 @@
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...
(Is_Volatile_Full_Access): ...this.
(Set_Has_Volatile_Full_Access): Rename into...
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index d5a10c2..4f54106 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -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);
diff --git a/gcc/ada/xeinfo.adb b/gcc/ada/xeinfo.adb
index 4df0974..7f90656 100644
--- a/gcc/ada/xeinfo.adb
+++ b/gcc/ada/xeinfo.adb
@@ -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- --
@@ -23,10 +23,10 @@
-- --
------------------------------------------------------------------------------
--- 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:
@@ -35,12 +35,12 @@
-- 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 & "; }");