https://gcc.gnu.org/g:ce5bc7cfad81ae5af0deab37cb97049d9701a53f

commit ce5bc7cfad81ae5af0deab37cb97049d9701a53f
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Sat Mar 15 21:17:05 2025 +0100

    Ajout type NULL_INITIALISATION

Diff:
---
 gcc/fortran/trans-descriptor.cc | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index 2be20e582bee..018af5b15d9c 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -1013,7 +1013,6 @@ class nullification : public modify_info
 class init_info : public modify_info
 {
 public:
-  virtual tree get_data_value () const { return NULL_TREE; }
   virtual bool is_initialization () const { return true; }
   virtual gfc_typespec *get_type () const { return nullptr; }
   virtual bt get_type_type (const gfc_typespec &) const;
@@ -1029,16 +1028,9 @@ class default_init : public init_info
 {
 private:
   const symbol_attribute &attr; 
-  bool initialize_data () const { return !attr.pointer || (gfc_option.rtcheck 
& GFC_RTCHECK_POINTER); }
 
 public:
   default_init (const symbol_attribute &arg_attr) : attr(arg_attr) { }
-  virtual tree get_data_value () const {
-    if (!initialize_data ())
-      return NULL_TREE;
-
-    return null_pointer_node;
-  }
 };
 
 class null_init : public init_info
@@ -1048,7 +1040,6 @@ private:
 
 public:
   null_init(gfc_typespec &arg_ts) : ts(arg_ts) { }
-  virtual tree get_data_value () const { return null_pointer_node; }
   virtual gfc_typespec *get_type () const { return &ts; }
 };
 
@@ -1078,6 +1069,7 @@ enum descr_change_type {
   EXPLICIT_NULLIFICATION,
   INITIALISATION,
   DEFAULT_INITIALISATION,
+  NULL_INITIALISATION,
   SCALAR_VALUE
 };
 
@@ -1143,10 +1135,11 @@ get_descr_data_value (const descr_change_info &info)
       return NULL_TREE;
 
     case EXPLICIT_NULLIFICATION:
+    case NULL_INITIALISATION:
       return null_pointer_node;
 
     case INITIALISATION:
-      return info.u.initialization_info->get_data_value ();
+      return NULL_TREE;
 
     case DEFAULT_INITIALISATION:
       if (!info.u.default_init.attr->pointer
@@ -1179,6 +1172,7 @@ get_descr_span (const descr_change_info &info)
     case EXPLICIT_NULLIFICATION:
     case INITIALISATION:
     case DEFAULT_INITIALISATION:
+    case NULL_INITIALISATION:
       return NULL_TREE;
 
     case SCALAR_VALUE:
@@ -1203,6 +1197,7 @@ get_descr_caf_token (const descr_change_info &info)
     case EXPLICIT_NULLIFICATION:
     case INITIALISATION:
     case DEFAULT_INITIALISATION:
+    case NULL_INITIALISATION:
       return null_pointer_node;
 
     case SCALAR_VALUE:

Reply via email to