aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2022-04-22 08:32:37 +0000
committerPierre-Marie de Rodat <derodat@adacore.com>2022-05-30 08:29:02 +0000
commit764169055b5b083f1f2167122c637ddc72c58095 (patch)
treea6dd33e12a1048741b5a0cd431db16aa299755a6
parent40e01041b3593c72f3d52013953fbfbe0011abb8 (diff)
[Ada] Introduce Opt.CCG_Mode
To handle code common to the old and the new CCG code generator. gcc/ada/ * gnat1drv.adb, opt.ads, sem_ch7.adb: Introduce CCG_Mode.
-rw-r--r--gcc/ada/gnat1drv.adb1
-rw-r--r--gcc/ada/opt.ads3
-rw-r--r--gcc/ada/sem_ch7.adb4
3 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb
index 49ddf03d04b..5c6fd92a825 100644
--- a/gcc/ada/gnat1drv.adb
+++ b/gcc/ada/gnat1drv.adb
@@ -180,6 +180,7 @@ procedure Gnat1drv is
-- Set all flags required when generating C code
if Generate_C_Code then
+ CCG_Mode := True;
Modify_Tree_For_C := True;
Transform_Function_Array := True;
Unnest_Subprogram_Mode := True;
diff --git a/gcc/ada/opt.ads b/gcc/ada/opt.ads
index 2ce24eec332..c2abbcee8ef 100644
--- a/gcc/ada/opt.ads
+++ b/gcc/ada/opt.ads
@@ -262,6 +262,9 @@ package Opt is
-- Set to True to build, bind and link all the sources of a project file
-- (switch -B)
+ CCG_Mode : Boolean := False;
+ -- Set to True when running as CCG (either via -gnatceg or via -emit-c)
+
Check_Aliasing_Of_Parameters : Boolean := False;
-- GNAT
-- Set to True to detect whether subprogram parameters and function results
diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb
index c43686b10ee..03aecc0c932 100644
--- a/gcc/ada/sem_ch7.adb
+++ b/gcc/ada/sem_ch7.adb
@@ -409,7 +409,7 @@ package body Sem_Ch7 is
-- should occur, so we need to catch all cases where the
-- subprogram may be inlined by the client.
- if not Generate_C_Code
+ if not CCG_Mode
and then (Is_Inlined (Decl_Id)
or else Has_Pragma_Inline (Decl_Id))
then
@@ -431,7 +431,7 @@ package body Sem_Ch7 is
-- unless we generate C code since inlining is then
-- handled by the C compiler.
- if not Generate_C_Code
+ if not CCG_Mode
and then (Is_Inlined (Decl_Id)
or else Has_Pragma_Inline (Decl_Id))
then