To handle code common to the old and the new CCG code generator.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

        * gnat1drv.adb, opt.ads, sem_ch7.adb: Introduce CCG_Mode.
diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb
--- 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
--- 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
--- 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


Reply via email to