diff -Nrcpad gcc-14-20251219/LAST_UPDATED gcc-14-20251226/LAST_UPDATED
*** gcc-14-20251219/LAST_UPDATED	Fri Dec 19 22:32:20 2025
--- gcc-14-20251226/LAST_UPDATED	Fri Dec 26 22:32:18 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision abb54c2cbb1daeb4261e9023d929cc559eb4b901
--- 1 ----
! Obtained from git: releases/gcc-14 revision 039a62bd2e0c7e67a00e5f6a4727f6dc1999faaf
diff -Nrcpad gcc-14-20251219/MD5SUMS gcc-14-20251226/MD5SUMS
*** gcc-14-20251219/MD5SUMS	Fri Dec 19 22:32:24 2025
--- gcc-14-20251226/MD5SUMS	Fri Dec 26 22:32:22 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20251219.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20251226.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** fc9280b02bc68e4fb1ef8d51ccc25061  Change
*** 23,29 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! f26f688c8f3d04e5aec172ac659cbe0b  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 7fbd4899a46977ee139ece719e225fbe  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
*************** bc7394806417778d77541ba1ec0e4a70  gcc/BA
*** 505,511 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 160e72d531799929f1b8b89494dcda9a  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 505,511 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! a30882fccde51010b68f51806fd20ef7  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 541,547 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! b27cb5fe3f6485d6f805e4ab67ad9c61  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 541,547 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 15ef76124c5ce1eb2ec9388b5dad2135  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 553,559 ****
  4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
  496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 2aadd3caca03635929e0ec9bbb8f0039  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 553,559 ----
  4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
  496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 4bab73bc200800f90aa23d4451a59257  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** f61a98e52a715a073f777f982f1394b7  gcc/ad
*** 825,831 ****
  c04f30ccd26df7b20a118015913dc8d1  gcc/ada/gcc-interface/system.ads
  8abd80bc601182d50d4f835dcfb9350c  gcc/ada/gcc-interface/targtyps.cc
  9e3e5deb5e0b5742538534e1e5fbc6c6  gcc/ada/gcc-interface/trans.cc
! 3c37d58b666e9d4297a6d457cc811d5d  gcc/ada/gcc-interface/utils.cc
  24d282dce1b4ea4028f6526a978c21a0  gcc/ada/gcc-interface/utils2.cc
  436eced51949ed1ca279a6a8745fdc85  gcc/ada/gen_il-fields.ads
  fa8c0b5e369960e72685e36f3adce798  gcc/ada/gen_il-gen-gen_entities.adb
--- 825,831 ----
  c04f30ccd26df7b20a118015913dc8d1  gcc/ada/gcc-interface/system.ads
  8abd80bc601182d50d4f835dcfb9350c  gcc/ada/gcc-interface/targtyps.cc
  9e3e5deb5e0b5742538534e1e5fbc6c6  gcc/ada/gcc-interface/trans.cc
! 8b1671dbf899b300d7b95724d9cd2f46  gcc/ada/gcc-interface/utils.cc
  24d282dce1b4ea4028f6526a978c21a0  gcc/ada/gcc-interface/utils2.cc
  436eced51949ed1ca279a6a8745fdc85  gcc/ada/gen_il-fields.ads
  fa8c0b5e369960e72685e36f3adce798  gcc/ada/gen_il-gen-gen_entities.adb
*************** bf74f6e2c62b4e2464758bb57dc318f1  gcc/ad
*** 2876,2882 ****
  a42d1434a6e8051360f7eac7ca8b8621  gcc/ada/sem_ch11.ads
  ea7dc7e9dd9e49ac40842d1870c7901f  gcc/ada/sem_ch12.adb
  896f5b203b3fb877f57c4eaf1e9b3c4f  gcc/ada/sem_ch12.ads
! dbd738800bd8d52cac7c0cb6c761558c  gcc/ada/sem_ch13.adb
  d4c2fa9c2e05bd04b3cf5bb65c4bc03c  gcc/ada/sem_ch13.ads
  2f9b939583011a4cabb6b7a882b61f05  gcc/ada/sem_ch2.adb
  5d2d57f3675319ba7ce63149ee068264  gcc/ada/sem_ch2.ads
--- 2876,2882 ----
  a42d1434a6e8051360f7eac7ca8b8621  gcc/ada/sem_ch11.ads
  ea7dc7e9dd9e49ac40842d1870c7901f  gcc/ada/sem_ch12.adb
  896f5b203b3fb877f57c4eaf1e9b3c4f  gcc/ada/sem_ch12.ads
! b1af0d85b8692052e12ebbe95a3c2da2  gcc/ada/sem_ch13.adb
  d4c2fa9c2e05bd04b3cf5bb65c4bc03c  gcc/ada/sem_ch13.ads
  2f9b939583011a4cabb6b7a882b61f05  gcc/ada/sem_ch2.adb
  5d2d57f3675319ba7ce63149ee068264  gcc/ada/sem_ch2.ads
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8061,8067 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 294a66aaf195e193ab0ddd3210cc4620  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 8061,8067 ----
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! d0c1c613553cf390b22ceea94a4d02d8  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** bc5d484f0195c40f96573375913aad6a  gcc/te
*** 105343,105348 ****
--- 105343,105349 ----
  899dd011c869ddd3d306efe8a8ba47c9  gcc/testsuite/gnat.dg/specs/aggr4_pkg.ads
  b028802f236df04a9a038de337a5c2dc  gcc/testsuite/gnat.dg/specs/aggr5.ads
  8317714735f6bcf3820730db670ecec1  gcc/testsuite/gnat.dg/specs/aggr6.ads
+ 8d9f49d860ee6a20314b8b77bfff71c6  gcc/testsuite/gnat.dg/specs/aggr9.ads
  03d5230a50a20391e0238f6841dcaf91  gcc/testsuite/gnat.dg/specs/ai_116.ads
  7d85593bd2feb29192cd8b150c52dde2  gcc/testsuite/gnat.dg/specs/alignment1.ads
  db9002fdffbd11c6e835ef0c4498b353  gcc/testsuite/gnat.dg/specs/alignment2.ads
diff -Nrcpad gcc-14-20251219/gcc/ChangeLog gcc-14-20251226/gcc/ChangeLog
*** gcc-14-20251219/gcc/ChangeLog	Fri Dec 19 22:32:05 2025
--- gcc-14-20251226/gcc/ChangeLog	Fri Dec 26 22:32:05 2025
***************
*** 1,3 ****
--- 1,20 ----
+ 2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	Backported from master:
+ 	2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	PR debug/121964
+ 	* dwarf2out.cc (gen_array_type_die): Add DW_AT_bit_stride attribute
+ 	for array types based on element type bit precision for integer and
+ 	boolean element types.
+ 
+ 2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	Backported from master:
+ 	2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* machmode.def (VECTOR_BOOL_MODE): Fix comment.
+ 
  2025-12-11  Vladimir N. Makarov  <vmakarov@redhat.com>
  
  	PR rtl-optimization/122215
diff -Nrcpad gcc-14-20251219/gcc/DATESTAMP gcc-14-20251226/gcc/DATESTAMP
*** gcc-14-20251219/gcc/DATESTAMP	Fri Dec 19 22:32:05 2025
--- gcc-14-20251226/gcc/DATESTAMP	Fri Dec 26 22:32:05 2025
***************
*** 1 ****
! 20251219
--- 1 ----
! 20251226
diff -Nrcpad gcc-14-20251219/gcc/ada/ChangeLog gcc-14-20251226/gcc/ada/ChangeLog
*** gcc-14-20251219/gcc/ada/ChangeLog	Fri Dec 19 22:32:05 2025
--- gcc-14-20251226/gcc/ada/ChangeLog	Fri Dec 26 22:32:05 2025
***************
*** 1,3 ****
--- 1,14 ----
+ 2025-12-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123060
+ 	* gcc-interface/utils.cc (update_pointer_to): Streamline.
+ 
+ 2025-12-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123060
+ 	* gcc-interface/utils.cc (update_pointer_to): Preserve the alias
+ 	sets present on the old pointer and old reference, if any.
+ 
  2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/123138
diff -Nrcpad gcc-14-20251219/gcc/ada/gcc-interface/utils.cc gcc-14-20251226/gcc/ada/gcc-interface/utils.cc
*** gcc-14-20251219/gcc/ada/gcc-interface/utils.cc	Fri Dec 19 22:32:05 2025
--- gcc-14-20251226/gcc/ada/gcc-interface/utils.cc	Fri Dec 26 22:32:05 2025
*************** update_pointer_to (tree old_type, tree n
*** 4460,4474 ****
  	  /* If there is no pointer pointing to NEW_TYPE yet, re-compute the
  	     TYPE_CANONICAL of the old pointer but pointing to NEW_TYPE, like
  	     build_pointer_type would have done for such a pointer, because we
! 	     will propagate it in the adjustment loop below.  */
  	  if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
  	    SET_TYPE_STRUCTURAL_EQUALITY (ptr);
  	  else if (TYPE_CANONICAL (new_type) != new_type
  		   || (TYPE_REF_CAN_ALIAS_ALL (ptr)
  		       && !lookup_attribute ("may_alias",
  					     TYPE_ATTRIBUTES (new_type))))
! 	    TYPE_CANONICAL (ptr)
! 	      = build_pointer_type (TYPE_CANONICAL (new_type));
  	}
  
        /* Now adjust them.  */
--- 4460,4482 ----
  	  /* If there is no pointer pointing to NEW_TYPE yet, re-compute the
  	     TYPE_CANONICAL of the old pointer but pointing to NEW_TYPE, like
  	     build_pointer_type would have done for such a pointer, because we
! 	     will propagate it in the adjustment loop below.  But make sure to
! 	     preserve an alias set already present on the old pointer.  */
  	  if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
  	    SET_TYPE_STRUCTURAL_EQUALITY (ptr);
  	  else if (TYPE_CANONICAL (new_type) != new_type
  		   || (TYPE_REF_CAN_ALIAS_ALL (ptr)
  		       && !lookup_attribute ("may_alias",
  					     TYPE_ATTRIBUTES (new_type))))
! 	    {
! 	      const alias_set_type set
! 		= TYPE_STRUCTURAL_EQUALITY_P (ptr)
! 		  ? TYPE_ALIAS_SET (ptr)
! 		  : TYPE_ALIAS_SET (TYPE_CANONICAL (ptr));
! 	      TYPE_CANONICAL (ptr)
! 		= build_pointer_type (TYPE_CANONICAL (new_type));
! 	      TYPE_ALIAS_SET (TYPE_CANONICAL (ptr)) = set;
! 	    }
  	}
  
        /* Now adjust them.  */
*************** update_pointer_to (tree old_type, tree n
*** 4496,4510 ****
  	  /* If there is no reference pointing to NEW_TYPE yet, re-compute the
  	     TYPE_CANONICAL of the old reference but pointing to NEW_TYPE, like
  	     build_reference_type would have done for such a reference, because
! 	     we will propagate it in the adjustment loop below.  */
  	  if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
  	    SET_TYPE_STRUCTURAL_EQUALITY (ref);
  	  else if (TYPE_CANONICAL (new_type) != new_type
  		   || (TYPE_REF_CAN_ALIAS_ALL (ref)
  		       && !lookup_attribute ("may_alias",
  					     TYPE_ATTRIBUTES (new_type))))
! 	    TYPE_CANONICAL (ref)
! 	      = build_reference_type (TYPE_CANONICAL (new_type));
  	}
  
        /* Now adjust them.  */
--- 4504,4526 ----
  	  /* If there is no reference pointing to NEW_TYPE yet, re-compute the
  	     TYPE_CANONICAL of the old reference but pointing to NEW_TYPE, like
  	     build_reference_type would have done for such a reference, because
! 	     we will propagate it in the adjustment loop below.  But make sure
! 	     to preserve an alias set already present on the old reference.  */
  	  if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
  	    SET_TYPE_STRUCTURAL_EQUALITY (ref);
  	  else if (TYPE_CANONICAL (new_type) != new_type
  		   || (TYPE_REF_CAN_ALIAS_ALL (ref)
  		       && !lookup_attribute ("may_alias",
  					     TYPE_ATTRIBUTES (new_type))))
! 	    {
! 	      const alias_set_type set
! 		= TYPE_STRUCTURAL_EQUALITY_P (ref)
! 		  ? TYPE_ALIAS_SET (ref)
! 		  : TYPE_ALIAS_SET (TYPE_CANONICAL (ref));
! 	      TYPE_CANONICAL (ref)
! 		= build_reference_type (TYPE_CANONICAL (new_type));
! 	      TYPE_ALIAS_SET (TYPE_CANONICAL (ref)) = set;
! 	    }
  	}
  
        /* Now adjust them.  */
diff -Nrcpad gcc-14-20251219/gcc/ada/sem_ch13.adb gcc-14-20251226/gcc/ada/sem_ch13.adb
*** gcc-14-20251219/gcc/ada/sem_ch13.adb	Fri Dec 19 22:32:06 2025
--- gcc-14-20251226/gcc/ada/sem_ch13.adb	Fri Dec 26 22:32:06 2025
*************** package body Sem_Ch13 is
*** 16793,16807 ****
        -----------------------
  
        procedure Resolve_Operation (Subp_Id : Node_Id) is
-          Subp : Entity_Id;
- 
           I  : Interp_Index;
           It : Interp;
  
        begin
           if not Is_Overloaded (Subp_Id) then
!             Subp := Entity (Subp_Id);
!             if not Pred (Subp) then
                 Error_Msg_NE
                   ("improper aggregate operation for&", Subp_Id, Typ);
              end if;
--- 16793,16804 ----
        -----------------------
  
        procedure Resolve_Operation (Subp_Id : Node_Id) is
           I  : Interp_Index;
           It : Interp;
  
        begin
           if not Is_Overloaded (Subp_Id) then
!             if not Pred (Entity (Subp_Id)) then
                 Error_Msg_NE
                   ("improper aggregate operation for&", Subp_Id, Typ);
              end if;
*************** package body Sem_Ch13 is
*** 16811,16819 ****
              Get_First_Interp (Subp_Id, I, It);
              while Present (It.Nam) loop
                 if Pred (It.Nam) then
                    Set_Is_Overloaded (Subp_Id, False);
                    Set_Entity (Subp_Id, It.Nam);
-                   exit;
                 end if;
  
                 Get_Next_Interp (I, It);
--- 16808,16828 ----
              Get_First_Interp (Subp_Id, I, It);
              while Present (It.Nam) loop
                 if Pred (It.Nam) then
+                   if Present (Entity (Subp_Id)) then
+                      --  ??? Cope with the obsolete renaming of Append_Vector
+                      --  in Ada.Containers.Vectors retained for compatibility.
+ 
+                      if No (Alias (Entity (Subp_Id)))
+                        and then No (Alias (It.Nam))
+                      then
+                         Error_Msg_N
+                           ("& must denote exactly one subprogram", Subp_Id);
+                      end if;
+ 
+                      exit;
+                   end if;
                    Set_Is_Overloaded (Subp_Id, False);
                    Set_Entity (Subp_Id, It.Nam);
                 end if;
  
                 Get_Next_Interp (I, It);
diff -Nrcpad gcc-14-20251219/gcc/testsuite/ChangeLog gcc-14-20251226/gcc/testsuite/ChangeLog
*** gcc-14-20251219/gcc/testsuite/ChangeLog	Fri Dec 19 22:32:07 2025
--- gcc-14-20251226/gcc/testsuite/ChangeLog	Fri Dec 26 22:32:07 2025
***************
*** 1,3 ****
--- 1,18 ----
+ 2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	Backported from master:
+ 	2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	PR debug/121964
+ 	* g++.target/aarch64/dwarf-bit-stride-func.C: New test.
+ 	* g++.target/aarch64/dwarf-bit-stride-pragma.C: New test.
+ 	* g++.target/aarch64/dwarf-bit-stride-pragma-sme.C: New test.
+ 	* g++.target/aarch64/sve/dwarf-bit-stride.C: New test.
+ 	* gcc.target/aarch64/dwarf-bit-stride-func.c: New test.
+ 	* gcc.target/aarch64/dwarf-bit-stride-pragma.c: New test.
+ 	* gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c: New test.
+ 	* gcc.target/aarch64/sve/dwarf-bit-stride.c: New test.
+ 
  2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* gnat.dg/reduce4.adb: New test.
diff -Nrcpad gcc-14-20251219/gcc/testsuite/gnat.dg/specs/aggr9.ads gcc-14-20251226/gcc/testsuite/gnat.dg/specs/aggr9.ads
*** gcc-14-20251219/gcc/testsuite/gnat.dg/specs/aggr9.ads	Thu Jan  1 00:00:00 1970
--- gcc-14-20251226/gcc/testsuite/gnat.dg/specs/aggr9.ads	Fri Dec 26 22:32:12 2025
***************
*** 0 ****
--- 1,26 ----
+ -- PR ada/123289
+ -- { dg-do compile }
+ -- { dg-options "-gnat2022" }
+ 
+ package Aggr9 is
+ 
+    type JSON_Value is tagged null record;
+    type JSON_Object is new JSON_Value with null record
+      with Aggregate => (Empty => Empty, Add_Named => Insert); -- { dg-error "exactly one" }
+    type JSON_Integer is new JSON_Value with null record
+      with Integer_Literal => From_Universal_Image;
+ 
+    function Empty return JSON_Object
+    is (null record);
+ 
+    procedure Insert
+       (O : in out JSON_Object; Key : String; Value : JSON_Integer'Class)
+    is null;
+ 
+    procedure Insert (O : in out JSON_Object; Key : String; Value : String)
+    is null;
+ 
+    function From_Universal_Image (Value : String) return JSON_Integer
+    is (null record);
+ 
+ end Aggr9;
