https://gcc.gnu.org/g:890daad3215bacf6ee6874b21239600f2c4674ac

commit 890daad3215bacf6ee6874b21239600f2c4674ac
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 7230fe88905f..d83ae26a7af4 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -1026,7 +1026,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;
@@ -1042,16 +1041,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
@@ -1061,7 +1053,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; }
 };
 
@@ -1091,6 +1082,7 @@ enum descr_change_type {
   EXPLICIT_NULLIFICATION,
   INITIALISATION,
   DEFAULT_INITIALISATION,
+  NULL_INITIALISATION,
   SCALAR_VALUE
 };
 
@@ -1156,10 +1148,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
@@ -1192,6 +1185,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:
@@ -1216,6 +1210,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