aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/snames.adb-tmpl
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2020-03-03 12:44:18 +0100
committerPierre-Marie de Rodat <derodat@adacore.com>2020-06-09 04:09:06 -0400
commitfd66407104b2133f0e55deb84db787c692a21948 (patch)
tree628e3735093268193368896af1156e6831f4cb18 /gcc/ada/snames.adb-tmpl
parent2d6f6e08e69209d3df5b49b738c08ce3e921bf44 (diff)
downloadgcc-fd66407104b2133f0e55deb84db787c692a21948.zip
gcc-fd66407104b2133f0e55deb84db787c692a21948.tar.gz
gcc-fd66407104b2133f0e55deb84db787c692a21948.tar.bz2
[Ada] Implement AI12-0028: Import of variadic C functions
2020-06-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family. * freeze.adb (Freeze_Profile): Likewise. Add missing guard. * sem_mech.adb (Set_Mechanisms): Likewise. * lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic. * repinfo.adb (List_Subprogram_Info): Likewise. * sem_prag.adb (Set_Convention_From_Pragma): Move main checks for Stdcall to... (Process_Convention): ...here. Add checks for C_Variadic. * snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16. Use consistent format for subtype declarations. (Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16 and move Convention_CPP up. (Convention_C_Family): New subtype of Convention_Id. (Convention_C_Variadic): Likewise. (Foreign_Convention): Use explicit upper bound. Add pragma Inline for Is_Configuration_Pragma_Name, Is_Function_Attribute_Name, Is_Internal_Attribute_Name and Is_Procedure_Attribute_Name. * snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n. (Get_Convention_Name): Deal with Convention_Variadic_n. * types.h (Convention_Id): New typedef. * xsnamest.adb (Name2): New variable. (Is_Conv): New pattern. (Get_Subt1): Likewise. (Get_Subt2): Likewise. Output subtypes of Convention_Id into the C header file.
Diffstat (limited to 'gcc/ada/snames.adb-tmpl')
-rw-r--r--gcc/ada/snames.adb-tmpl42
1 files changed, 38 insertions, 4 deletions
diff --git a/gcc/ada/snames.adb-tmpl b/gcc/ada/snames.adb-tmpl
index a03cafb..ce9c63d 100644
--- a/gcc/ada/snames.adb-tmpl
+++ b/gcc/ada/snames.adb-tmpl
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2016, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, 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- --
@@ -155,6 +155,23 @@ package body Snames is
Convention_Ada_Pass_By_Reference;
when Name_Assembler => return Convention_Assembler;
when Name_C => return Convention_C;
+ when Name_C_Variadic_0 => return Convention_C_Variadic_0;
+ when Name_C_Variadic_1 => return Convention_C_Variadic_1;
+ when Name_C_Variadic_2 => return Convention_C_Variadic_2;
+ when Name_C_Variadic_3 => return Convention_C_Variadic_3;
+ when Name_C_Variadic_4 => return Convention_C_Variadic_4;
+ when Name_C_Variadic_5 => return Convention_C_Variadic_5;
+ when Name_C_Variadic_6 => return Convention_C_Variadic_6;
+ when Name_C_Variadic_7 => return Convention_C_Variadic_7;
+ when Name_C_Variadic_8 => return Convention_C_Variadic_8;
+ when Name_C_Variadic_9 => return Convention_C_Variadic_9;
+ when Name_C_Variadic_10 => return Convention_C_Variadic_10;
+ when Name_C_Variadic_11 => return Convention_C_Variadic_11;
+ when Name_C_Variadic_12 => return Convention_C_Variadic_12;
+ when Name_C_Variadic_13 => return Convention_C_Variadic_13;
+ when Name_C_Variadic_14 => return Convention_C_Variadic_14;
+ when Name_C_Variadic_15 => return Convention_C_Variadic_15;
+ when Name_C_Variadic_16 => return Convention_C_Variadic_16;
when Name_COBOL => return Convention_COBOL;
when Name_CPP => return Convention_CPP;
when Name_Fortran => return Convention_Fortran;
@@ -189,6 +206,23 @@ package body Snames is
return Name_Ada_Pass_By_Reference;
when Convention_Assembler => return Name_Assembler;
when Convention_C => return Name_C;
+ when Convention_C_Variadic_0 => return Name_C_Variadic_0;
+ when Convention_C_Variadic_1 => return Name_C_Variadic_1;
+ when Convention_C_Variadic_2 => return Name_C_Variadic_2;
+ when Convention_C_Variadic_3 => return Name_C_Variadic_3;
+ when Convention_C_Variadic_4 => return Name_C_Variadic_4;
+ when Convention_C_Variadic_5 => return Name_C_Variadic_5;
+ when Convention_C_Variadic_6 => return Name_C_Variadic_6;
+ when Convention_C_Variadic_7 => return Name_C_Variadic_7;
+ when Convention_C_Variadic_8 => return Name_C_Variadic_8;
+ when Convention_C_Variadic_9 => return Name_C_Variadic_9;
+ when Convention_C_Variadic_10 => return Name_C_Variadic_10;
+ when Convention_C_Variadic_11 => return Name_C_Variadic_11;
+ when Convention_C_Variadic_12 => return Name_C_Variadic_12;
+ when Convention_C_Variadic_13 => return Name_C_Variadic_13;
+ when Convention_C_Variadic_14 => return Name_C_Variadic_14;
+ when Convention_C_Variadic_15 => return Name_C_Variadic_15;
+ when Convention_C_Variadic_16 => return Name_C_Variadic_16;
when Convention_COBOL => return Name_COBOL;
when Convention_CPP => return Name_CPP;
when Convention_Entry => return Name_Entry;
@@ -425,9 +459,9 @@ package body Snames is
return N in First_Locking_Policy_Name .. Last_Locking_Policy_Name;
end Is_Locking_Policy_Name;
- -------------------------------------
- -- Is_Partition_Elaboration_Policy --
- -------------------------------------
+ ------------------------------------------
+ -- Is_Partition_Elaboration_Policy_Name --
+ ------------------------------------------
function Is_Partition_Elaboration_Policy_Name
(N : Name_Id) return Boolean