diff --git a/gcc/cobol/ChangeLog b/gcc/cobol/ChangeLog
index a9f47eb1113299bdb45f363110a1e98f17c58240..48e3995487b7bf53d5ed3364fc423807cbe51cc2 100644
--- a/gcc/cobol/ChangeLog
+++ b/gcc/cobol/ChangeLog
@@ -1,12 +1,6 @@
-2025-02-07  Robert Dubner <rdubner@symas.com>
-	* Modified configure.ac and Makefile.in to notices that MULTISUBDIR=/32 to
-	suppress 32-builds.
-	* Eliminate -Wunused-result warning in libgcobol.cc compilation
-
-2025-02-11  Robert Dubner <rdubner@symas.com>
-	* libgcobol quietly is not built for -m32 systems in a multi-lib build
-	* configure.ac allows COBOL only for x86_64 and aarch64 architectures.
-    Other systems get a warning and the COBOL language is suppressed.
+2025-02-16
+	* Added GTY(()) tags to gengen.h and structs.h.  Put includes for them into
+	cobol1.cc
 
 2025-01-28  Robert Dubner <rdubner@symas.com>
 	* Remove TRACE1 statements from parser_enter_file and parser_leave_file;
diff --git a/gcc/cobol/cobol1.cc b/gcc/cobol/cobol1.cc
index e5e1b9720c203fc600b88161b4b718c4ff8754e3..819e3e45f25629629aec5722be4992d1feb2c9f3 100644
--- a/gcc/cobol/cobol1.cc
+++ b/gcc/cobol/cobol1.cc
@@ -66,8 +66,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "exceptl.h"
 #include "exceptg.h"
 #include "util.h"
-#include "gengen.h"
-
+#include "gengen.h"   // This has some GTY(()) markers
+#include "structs.h"  // This has some GTY(()) markers
 
 /* Required language-dependent contents of a type.  */
 
@@ -639,11 +639,6 @@ cobol_name_mangler(const char *cobol_name_)
         }
     free(cobol_name);
 
-    if( getenv("SHOW_MANGLED") )
-      {
-      fprintf(stderr, "mangled %32s to %-32s in %s\n", cobol_name_, psz, __func__);
-      }
-
     for(size_t i=0; i<strlen(psz); i++)
       {
       if( psz[i] & 0x80 )
@@ -743,11 +738,6 @@ cobol_name_mangler_callback(const char *cobol_name_)
         }
     free(cobol_name);
 
-    if( getenv("SHOW_MANGLED") )
-      {
-      fprintf(stderr, "mangled %32s to %-32s in %s\n", cobol_name_, psz, __func__);
-      }
-
     for(size_t i=0; i<strlen(psz); i++)
       {
       if( psz[i] & 0x80 )
@@ -795,11 +785,6 @@ cobol_set_decl_assembler_name (tree decl)
       strcpy(mangled_name, name);
       }
 
-    if(getenv("SHOW_MANGLE"))
-        {
-        fprintf(stderr, "%s(): %30s becomes %30s\n", __func__, name, mangled_name);
-        }
-
     bool is_cobol_name(const char name[]);
 
     if( false ) {
@@ -809,12 +794,6 @@ cobol_set_decl_assembler_name (tree decl)
                 dbgmsg("Public/FileScope %s", name);
             }
         }
-
-    if(getenv("SEE_NAMES") && strncmp( name, "__", 2) )
-        {
-        fprintf(stderr, "set       %30.30s", name);
-        fprintf(stderr, "  to  %30.30s\n", mangled_name);
-        }
     }
 
     id = get_identifier(mangled_name);
diff --git a/gcc/cobol/gengen.cc b/gcc/cobol/gengen.cc
index f044d45e530593130918c9e329c14548444eb439..845d58b0cda7d2dc5c248f1d61093b432940a163 100644
--- a/gcc/cobol/gengen.cc
+++ b/gcc/cobol/gengen.cc
@@ -434,12 +434,6 @@ gg_assign(tree dest, const tree source)
   tree source_type = adjust_for_type(TREE_TYPE(source));
   bool p2 = saw_pointer;
 
-  if( getenv("X2") )
-    {
-    fprintf(stderr, "dest is %s%s;",     show_type(dest_type), p1 ? "_P" : "");
-    fprintf(stderr, " source is %s%s\n", show_type(source_type), p2 ? "_P" : "");
-    }
-
   bool okay = dest_type == source_type;
 
   if( !okay )
@@ -464,31 +458,23 @@ gg_assign(tree dest, const tree source)
     }
   else
     {
-    if( true || getenv("X1") )
+    // We are doing an assignment where the left- and right-hand types are not
+    // the same.  This is a compilation-time error, since we want the caller to
+    // have sorted the types out explicitly.  If we don't throw an error here,
+    // the gimple reduction will do so.  Better to do it here, when we know
+    // where we are.
+    dbgerr("Inefficient assignment");
+    if(DECL_P(dest) && DECL_NAME(dest))
       {
-      dbgerr("Inefficient assignment");
-      if(DECL_P(dest) && DECL_NAME(dest))
-        {
-        dbgerr("   Destination is %s", IDENTIFIER_POINTER(DECL_NAME(dest)));
-        }
-      dbgerr("   dest type   is %s%s", show_type(dest_type), p2 ? "_P" : "");
-      if(DECL_P(source) && DECL_NAME(source))
-        {
-        dbgerr("   Source      is %s", IDENTIFIER_POINTER(DECL_NAME(source)));
-        }
-      dbgerr("   source type is %s%s", show_type(source_type), p2 ? "_P" : "");
-      gcc_assert(false);
+      dbgerr("   Destination is %s", IDENTIFIER_POINTER(DECL_NAME(dest)));
       }
-
-    // The C equivalent would be "dest = source"
-    // Note that we cast the source to the type of the dest
-    tree stmt = build2_loc( location_from_lineno(),
-                            MODIFY_EXPR,
-                            TREE_TYPE(dest),
-                            dest,
-                            gg_cast(TREE_TYPE(dest), source)
-                          );
-    gg_append_statement(stmt);
+    dbgerr("   dest type   is %s%s", show_type(dest_type), p2 ? "_P" : "");
+    if(DECL_P(source) && DECL_NAME(source))
+      {
+      dbgerr("   Source      is %s", IDENTIFIER_POINTER(DECL_NAME(source)));
+      }
+    dbgerr("   source type is %s%s", show_type(source_type), p2 ? "_P" : "");
+    gcc_assert(false);
     }
   }
 
diff --git a/gcc/cobol/gengen.h b/gcc/cobol/gengen.h
index 0d29d62cd62f5f4c56ced119dbfe77078c070305..ea4e9c9034dd7349720cf4dc45d204da773b8aa6 100644
--- a/gcc/cobol/gengen.h
+++ b/gcc/cobol/gengen.h
@@ -263,23 +263,23 @@ extern struct cbl_translation_unit_t gg_trans_unit;
 
 #define current_function (&gg_trans_unit.function_stack.back())
 
-extern tree char_nodes[256]       GTY(());
-extern tree pvoid_type_node       GTY(());
-extern tree integer_minusone_node GTY(());
-extern tree integer_two_node      GTY(());
-extern tree integer_eight_node    GTY(());
-extern tree size_t_zero_node      GTY(());
-extern tree int128_zero_node      GTY(());
-extern tree int128_five_node      GTY(());
-extern tree int128_ten_node       GTY(());
-extern tree bool_true_node        GTY(());
-extern tree bool_false_node       GTY(());
-extern tree char_ptr_type_node    GTY(());
-extern tree uchar_ptr_type_node   GTY(());
-extern tree wchar_ptr_type_node   GTY(());
-extern tree long_double_ten_node  GTY(());
-extern tree sizeof_size_t         GTY(());
-extern tree sizeof_pointer        GTY(());
+extern GTY(()) tree char_nodes[256]      ;
+extern GTY(()) tree pvoid_type_node      ;
+extern GTY(()) tree integer_minusone_node;
+extern GTY(()) tree integer_two_node     ;
+extern GTY(()) tree integer_eight_node   ;
+extern GTY(()) tree size_t_zero_node     ;
+extern GTY(()) tree int128_zero_node     ;
+extern GTY(()) tree int128_five_node     ;
+extern GTY(()) tree int128_ten_node      ;
+extern GTY(()) tree bool_true_node       ;
+extern GTY(()) tree bool_false_node      ;
+extern GTY(()) tree char_ptr_type_node   ;
+extern GTY(()) tree uchar_ptr_type_node  ;
+extern GTY(()) tree wchar_ptr_type_node  ;
+extern GTY(()) tree long_double_ten_node ;
+extern GTY(()) tree sizeof_size_t        ;
+extern GTY(()) tree sizeof_pointer       ;
 
 // These routines happen when beginning to process a new file, which is also
 // known, in GCC, as a "translation unit"
diff --git a/gcc/cobol/genutil.cc b/gcc/cobol/genutil.cc
index 54f7a0b91e9c47bab575969ccf967c84c09ca55f..c58a34c3d159a0519f57867fae8abaf96e910ec6 100644
--- a/gcc/cobol/genutil.cc
+++ b/gcc/cobol/genutil.cc
@@ -1801,14 +1801,6 @@ set_exception_code_func(ec_type_t ec, int line, int from_raise_statement)
     gg_printf("set_exception_code: set it to ZERO\n", NULL_TREE);
     gg_assign(var_decl_exception_code, integer_zero_node);
     }
-  if( getenv("SHOW_EC") )
-    {
-    gg_printf("set_exception_code(0x%x) %s at line %d\n",
-              build_int_cst_type(INT, (ec)),
-              gg_string_literal(ec_type_str(ec)),
-              build_int_cst_type(INT, line),
-              NULL_TREE);
-    }
   }
 
 bool
diff --git a/gcc/cobol/structs.cc b/gcc/cobol/structs.cc
index 82ae717649f046b49535c380cf816b2fe07b9ddc..a8e96ad11617e0019c0878341ec0f2b6c1a8e623 100644
--- a/gcc/cobol/structs.cc
+++ b/gcc/cobol/structs.cc
@@ -157,11 +157,8 @@ tree cblc_field_p_type_node;
 tree cblc_field_pp_type_node;
 tree cblc_file_type_node;
 tree cblc_file_p_type_node;
-//tree cblc_resolved_p_type_node;
 tree cblc_goto_type_node;
-tree cblc_goto_p_type_node;
 tree cblc_int128_type_node;
-tree cblc_subscript_type_node;
 
 // The following functions return type_decl nodes for the various structures
 
@@ -349,7 +346,6 @@ create_our_type_nodes()
         cblc_file_type_node               = create_cblc_file_t();
         cblc_file_p_type_node             = build_pointer_type(cblc_file_type_node);
         cblc_int128_type_node             = create_cblc_int128_t();
-        cblc_subscript_type_node          = create_cblc_subscript_t();
         }
     }
 
diff --git a/gcc/cobol/structs.h b/gcc/cobol/structs.h
index af0cd60e67be91deb5b559bd39eb47cf61be0049..618d8f0780f46c4fbfd9cc59b779cb468ca889c1 100644
--- a/gcc/cobol/structs.h
+++ b/gcc/cobol/structs.h
@@ -49,16 +49,13 @@ extern void member2(tree var, const char *member_name, const char *submember, in
 extern void member2(tree var, const char *member_name, const char *submember, tree value);
 extern void member3(tree var, const char *mem, const char *sub1, const char *sub2, tree value);
 
-extern tree cblc_field_type_node;
-extern tree cblc_field_p_type_node;
-extern tree cblc_field_pp_type_node;
-extern tree cblc_file_type_node;
-extern tree cblc_file_p_type_node;
-extern tree cblc_resolved_p_type_node;
-extern tree cblc_goto_type_node;
-extern tree cblc_goto_p_type_node;
-extern tree cblc_int128_type_node;
-extern tree cblc_subscript_type_node;
+extern GTY(()) tree cblc_field_type_node;
+extern GTY(()) tree cblc_field_p_type_node;
+extern GTY(()) tree cblc_field_pp_type_node;
+extern GTY(()) tree cblc_file_type_node;
+extern GTY(()) tree cblc_file_p_type_node;
+extern GTY(()) tree cblc_goto_type_node;
+extern GTY(()) tree cblc_int128_type_node;
 
 extern void create_our_type_nodes();