diff options
author | Arnaud Charlet <charlet@adacore.com> | 2022-04-22 08:32:37 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2022-05-30 08:29:02 +0000 |
commit | 764169055b5b083f1f2167122c637ddc72c58095 (patch) | |
tree | a6dd33e12a1048741b5a0cd431db16aa299755a6 | |
parent | 40e01041b3593c72f3d52013953fbfbe0011abb8 (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.adb | 1 | ||||
-rw-r--r-- | gcc/ada/opt.ads | 3 | ||||
-rw-r--r-- | gcc/ada/sem_ch7.adb | 4 |
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 |