From 9d3c8b0f2d9d21d00d00bf36b36ee6271ff50b00 Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 22 May 2015 12:56:34 +0000 Subject: [PATCH] 2015-05-22 Eric Botcazou * 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 "||". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223562 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/einfo.ads | 2 +- gcc/ada/xeinfo.adb | 15 +++++++++------ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index e1a0db0dd32..fe2dbad0f34 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,11 @@ 2015-05-22 Eric Botcazou + * 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 + * 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 d5a10c28260..4f54106cbb1 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 4df0974d609..7f906562ab4 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 & "; }"); -- 2.11.4.GIT